java servlet
回顾
1三要素是什么?
入口(login.html) 处理(LoginServlet.java) 出口 (success.jsp)
2如何访问servlet
http://IP:port/project/urlpattern
urlpattern ---->web.xml中找
3 request 和 response的区别?
Request请求 Broswer---->Tomcat login.html--->LoginSevlet.java
Response返回 Tomcat---->Broswer
4 doGet 和 doPost的区别?
doGet <a href=url> 超链接用的默认方式 get 不解中文决乱么
<form action=url method=get >
明文传递方式 浏览器中可以看到传递的信息
不安全,并且数据量大的时候会缺损数据
doPost <form action=url method=post > 解决中文乱码
密文传递方式 浏览器看不到传递的信息
安全,并且数据量大的时候不会缺损数据
5如何解决乱码问题?
Request请求有乱码
request.setCharacterEncoding("UTF-8");
Reponse返回有乱
response.setCharacterEncoding("UTF-8");
6 如何取得请求中的值 ?
String value=request.getParameter(“控件名”); 单个值
String [] values=request.getParmeterValues(“控件名”); 同名多个值
7 常见的错误:404 、500?
404 路径错误---解决思路 跟踪路径
500 代码错误---解决思路 jsp/servlet中代码错误
获取不到值null 在console里面去找到错误的位置。
8 servlet中得到流的方法?
字符流 response.getWriter( )----->PrintWriter
字节流 response.getOutputStream()-->OutputStream
9 如何跳转到出口?
//跳转并且可以传递数据
request.getRequestDispatcher("success.jsp").forward(request, response);
//重新定向 跳转不传递数据
//response.sendRedirect("success.html");
10如何将数据传递到出口?
//保存数据
request.setAttribute("name", username);
request.setAttribute("password", pwd);
//获取数据
用户名是:${ name} ,密码: ${password}。
11 Servlet的生命周期
Servlet的生命周期是由tomcat服务器来控制的。
1 构造方法:
创建servlet对象的时候调用。默认情况下,第一访问servlet就会创建servlet对象只创建一次。说明servlet对象在tomcat中是单实例的。
2初始化 init方法
当创建完servlet对象的时候会调用init()方法,只调用一次。
3 调用服务 service 方法 其中就包含doGet doPost等方法
每次发送请求的时候调用。可以调用n次。
4 销毁 destory 方法
销毁servlet对象的时候调用,停止服务器或者重新部署的web项目的时候销毁servlet就会调用destory方法
12 Servlet时序图

13 servlet自动加载
在web.xml中加入
<load-on-startup> 1</load-on-startup>
里面的数字越小加载级别越高
当tomcat启动的时候,就去运行web.xml解析里面的内容,当发现有自动加载的数据时候,就会运行加载。
|
<servlet> <servlet-name>sl</servlet-name> <servlet-class>com.bw.servlet.LoginServlet</servlet-class> <load-on-startup>3</load-on-startup> </servlet> |
14 ServletConfig 对象
主要是加载servlet的初始化参数,在web应用中可以存在多个ServletConfig对象
|
<servlet> <servlet-name>sl</servlet-name> <servlet-class>com.bw.servlet.LoginServlet</servlet-class> <init-param> <param-name>username</param-name> <param-value>godyang</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>123456</param-value> </init-param> </servlet> |
15 ServletContext对象
上下文对象,表示当前的web应用(项目)环境。一个web应用只有一个ServletContext对象
上下文参数配置 它是全局的 所有的servlet都可以访问
|
<context-param> <param-name>ecode</param-name> <param-value>UTF-8</param-value> </context-param> |
|
// 获取上下文对象 ServletContext sc = this.getServletContext(); String contextParamValue = sc.getInitParameter("ecode"); System.out.println("contextParamValue=" + contextParamValue); |
|
//项目路径 String path=sc.getContextPath(); System.out.println("path="+path); //文件发布后(tomcat/webapps)的真实路径 String realPath=sc.getRealPath("counter.txt"); System.out.println("realPath="+realPath ); //获取文件流 InputStream is=sc.getResourceAsStream("C:\\Tomcat\\webapps\\webThree\\WEB-INF\\classes\\counter.txt"); |
java servlet的更多相关文章
- java servlet 几种页面跳转的方法及传值
java servlet 几种页面跳转的方法及传值 java web 页面之间传值有一下这几种方式1.form 表单传递参数2.url地址栏传递参数3.session4.cookie5.appli ...
- Java Servlet与Web容器之间的关系
自从计算机软件开发进入网络时代,就开始涉及到通讯问题.在客户/服务器(也叫C/S应用)时期,每个软件都有自己的客户端和服务器端软件.并且客户端和服务器端之间的通讯协议差别也很大.后来随着互联网的发展, ...
- java servlet调用带有多个返回结果集的存储过程
一.mysql存储过程 这里我先说下我这个功能实现的逻辑及途中遇到的一些问题.这个存储过程一共带两个输入参数,一共关联到两张表的查询,每个参数都对应查询表中的一个判断,所以一共返回了两个结果集(当然要 ...
- java servlet+mysql全过程(原创)
前段时间写过一篇 servlet+oracle的文章,但是那是因为公司有可能接那么一个项目,然后我当时也比较闲,所以随便学了下,那玩意是白去研究了,因为公司后面并没接到那项目. 这次学servlet用 ...
- java servlet+oracle 新手可看
最近公司领导告诉接下去接的一个产品,可能会涉及到oracle数据库,以前用得最多的是mssql,前些时间学了下mysql也算少许用过.oracle没接触过.应为我之前做过.net开发,所以数据访问接口 ...
- Java Servlet完全教程
Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...
- Java Servlet系列之Servlet生命周期
Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Se ...
- JAVA SERVLET专题(上)
SERVLET简介 ·Java Servlet 是和平台无关的服务器端组件,它运行在Servlet容器中.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和 ...
- Java Servlet——改进的CGI
一.关于Servlet 在上一篇随笔中,我们看到了CGI存在的不足,其每次请求都需加载和运行一个CGI程序.若使用Java编写CGI程序,需要为每个请求都启动一个系统进程以及JVM,其执行效率大大降低 ...
- Java Servlet 技术简介
Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...
随机推荐
- JUC学习笔记--Thread多线程基础
实现多线程的两种方法 java 实现多线程通过两种方式1.继承Thread类 ,2.实现Runnable接口 class Newthead extends Thread{ public void ru ...
- Docker 学习之命令详解
1. docker version docker version 显示 Docker 版本信息. 2. docker info docker info 显示 Docker 系统信息,包括镜像和容器数. ...
- R语言获取数据类型信息的一些有用函数
向量.因子.时间序列x[i]: 矩阵.数据框x[i, j] x[i, ] x[, j]: 数组就是根据维度多打几个逗号而已x[i, j, k, -]: 列表要用双重中括号x[[i]]. 特殊的 ...
- 逆向工程学习第二天--动手开发自己的第一个shellcode
一个简单的c语言添加windows管理员账号的小程序,之前在渗透的时候经常用到,现在拿它来做自己的第一个shellcode. C代码: #pragma comment(lib, "netap ...
- 了不起的全能MAC系统监测工具iStat Menus 5下载
iStat Menus 5 是一款由软件开发商 Bjango 制作的 System Monitor (工具,也是笔者电脑里的必装应用之一,它能让用户最快速.最直观地了解到几乎各硬件所有的运行状态,其中 ...
- Linux系统资源查看
以下Linux系统资源查看命令中,较常用的为vmstat 与 lsof vmstat [刷新延时 刷新次数] ucm@ucm-Aspire-TC-:~$ vmstat procs ---------- ...
- ruby 基础知识三 读写文件
1.File 中参数的含义 r 只读模式.文件指针被放置在文件的开头.这是默认模式. r+ 读写模式.文件指针被放置在文件的开头. w 只写模式.如果文件存在,则重写文件.如果文件不存在,则创建一个新 ...
- SQL Server 2008在Windows 10上不支持
https://support.microsoft.com/en-us/kb/2681562 For SQL Server 2008 R2 SQL Server 2008 R2 is not supp ...
- [译]IIS 8.0应用初始化
原文 代码 或者点这 通过IIS 8.0应用初始化特性管理员可以配置IIS为一个网站或多个网站提前执行初始化任务.当应用在初始化期间,可以通过配置先返回一个静态页面知道应用的初始化任务完成. 通过配置 ...
- CSS布局奇淫技巧之--各种居中
居中是我们使用css来布局时常遇到的情况.使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍. 注:本文所讲方法除了特别说明 ...