servlet 常用知识点
来源:互联网 发布:学画画的软件 编辑:程序博客网 时间:2024/05/08 15:41
//[1]HTTP 协议
HTTP头信息 请求头 : GET /*** HTTP/1.0
Accept:text/html;*/* 浏览器支持的格式
状态码 以 1开头 信息状态码 表示请求已经接受,正在被处理
以 3 开头 全是转接 重定向 301 表示永久重定向 302 表示临时的重定向
以 2 开头 正确状态码 200 一切正确
以 4 开头 请求错误 404 一般为浏览器路径错误,找不到资源
401 表示没有访问权限
405 表示servlet 只接受 get 请求,但是浏览器进行了post 请求导致,找不到dopost 方法。
以 5开头 服务器错误 500 一般为程序代码出现问题
{nullIndexException ,等发生的问题 }
创建servlet 类的三种形式
【1】实现Servlet 接口
(【1.1】需要配置web.xml 中的 <servlet>
<servlet-name>Demo01</servlet-name> 名字随意
<servlet-class>cn.edu.aynu.Demo01</servlet-class> 包名.类名
</servlet>
<servlet-mapping> mapping 映射
<servlet-name>Demo01</servlet-name>
<url-pattern>/Demo01</url-pattern> 浏览器所需要的打的地址 需要加一个"/"
// 可以配置多个 url-pattern 参数
</servlet-mapping>
【1.2】创建出来的五个方法。
public void destroy() {} 销毁方法
public ServletConfig getServletConfig() {} 返回servlet配置信息
public String getServletInfo() {}
public void init(ServletConfig arg0) throws ServletException {} 初始化servlet
public void service(ServletRequest request, ServletResponse response){} 执行请求
(init() service() destory() 是三个生命周期方法
init() 只执行一次,在浏览器发送请求时
service() 执行多次,浏览器请求几次,就执行几次
destory() 只执行一次,当关闭web服务器的时候执行
)
)
【2】继承 GenericServlet 类
【2.1】 还需要配置 web.xml 中servelt 的信息
<servlet-name>Demo01</servlet-name> 名字随意
<servlet-class>cn.edu.aynu.Demo01</servlet-class> 包名.类名
</servlet>
<servlet-mapping> mapping 映射
<servlet-name>Demo01</servlet-name>
<url-pattern>/Demo01</url-pattern> 浏览器所需要的打的地址 需要加一个"/"
// 可以配置多个 url-pattern 参数
</servlet-mapping>
【2.2】 它实现的方法只有 service() 来处理请求
【3】继承HttpServlet 类
一般就是用 doGet 和 doPost 方法
不需要手动配置参数值
doGet() 处理 get请求
doPost() 处理post 请求
解决get 和 post 请求中文乱码的问题
get 没有请求体,请求由于在地址栏将参数提交,所以只能使用传统方式进行解码
username = new String(username.getBytes("iso-8859-1"),"utf-8");
response.setCharacterEncoding("utf-8");
post 请求由于在请求体中,将参数提交。
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//[1]规定服务器按照UTF-8 的方式编码
//[2]浏览器按照UTF-8 方式编码
三个域对象 request , ServletContext ,session
域对象的方法 setAttribute("name",value) getAttribute("name") removeAttribute()
在重定向的时候, request 域对象,不能携带数据传递到另一个serrvlet 中去。
但是可以使用 ServletContext,来设置参数,可以传递数据。
转发时,使用request 和 ServletContext 都可以使用。
生命周期 ServletContext > request
ServletContext 在部署web应用时,服务器就已经创建了,在第一次访问前,servletContext 就已经创建完成了。
在服务器关闭后,servletcontext 才销毁掉,或者重新部署应用时,原servletContext 才会被销毁掉。
注意; 在浏览器关闭后,servletContext 并不会销毁
request 在第一次访问时创建,在一次访问完成后就销毁了。
中文乱码问题:
get请求处理中文乱码方法:
由于get请求,所有的参数都在地址中,并没有请求体,所以需要使用传统的方法来解决中文乱码
在服务器端,使用的编码方式是iso-8859-1 ,所以先以这个编码转成 btyes 数组,再编码成utf-8
username = new String (username.getBytes("iso-8859-1"),"utf-8");
response.setCharacterEncoding("utf-8"); // 设置响应的编码方式
post请求处理中文乱码方法;
由于post请求,请求的参数都在请求体中,所以设置请求体的编码是 utf-8,响应方式是 utf-8 就可以了
request.setCharacterEncoding("utf-8"); // 请求体的编码方式
response.setContentType("text/html;charset=utf-8");
// [1] 规定服务器按utf-8 编码
// [2] 浏览器按utf-8 解码
缺省的servlet 比如404 的页面,就是由缺省的servlet 来设置的
<url-pattern>/</url-pattern> 中间只有一个 “/” 的就是缺省servlet。
“*”是通配符,可以匹配任何字符
在 <url-pattern> 中的参数要么是以 / 开头,要么以 * 开头
三种跳转页面方法 重定向 转发(转发包含) 自动刷新
// 设置状态码
response.setStatus(302); // status 意思 状态
重定向 需要浏览器两次访问服务器
response.setRedivect("/Demo01/Bsevlet"); 也可以直接写 Aservlet ,在地址栏自动生成 /项目名/servlet 名
转发
RequestDispatcher dispatcher = request.getRequestDispatcher("/Bserrvlet"); // 路径直接就是 web.xml 中的地址
dispatcher.forWard(request,response);
使用这样的方法,可以访问WEB-INF 中的内容。 浏览器一次访问服务器
不能输出 Aservlet 中的内容,只能输出Bservlet 中的内容
转发包含
RequestDispatcher dispatcher = request.getRequestDispatcher("/Bserrvlet"); // 路径直接就是 web.xml 中的地址
dispatcher.include(request,response);
可以携带 Aservlet 的数据到 Bservlet 中去
自动刷新
response.setHeader("Refresh","1;url=http://loaclhost:8080/Demo01/Bservlet"); // 1 就是隔一秒 刷新
这个方法在有时候使用的时候会出现问题,浏览器不响应。
如果不写网址 就是自动刷新自己。
HTTP头信息 请求头 : GET /*** HTTP/1.0
Accept:text/html;*/* 浏览器支持的格式
状态码 以 1开头 信息状态码 表示请求已经接受,正在被处理
以 3 开头 全是转接 重定向 301 表示永久重定向 302 表示临时的重定向
以 2 开头 正确状态码 200 一切正确
以 4 开头 请求错误 404 一般为浏览器路径错误,找不到资源
401 表示没有访问权限
405 表示servlet 只接受 get 请求,但是浏览器进行了post 请求导致,找不到dopost 方法。
以 5开头 服务器错误 500 一般为程序代码出现问题
{nullIndexException ,等发生的问题 }
创建servlet 类的三种形式
【1】实现Servlet 接口
(【1.1】需要配置web.xml 中的 <servlet>
<servlet-name>Demo01</servlet-name> 名字随意
<servlet-class>cn.edu.aynu.Demo01</servlet-class> 包名.类名
</servlet>
<servlet-mapping> mapping 映射
<servlet-name>Demo01</servlet-name>
<url-pattern>/Demo01</url-pattern> 浏览器所需要的打的地址 需要加一个"/"
// 可以配置多个 url-pattern 参数
</servlet-mapping>
【1.2】创建出来的五个方法。
public void destroy() {} 销毁方法
public ServletConfig getServletConfig() {} 返回servlet配置信息
public String getServletInfo() {}
public void init(ServletConfig arg0) throws ServletException {} 初始化servlet
public void service(ServletRequest request, ServletResponse response){} 执行请求
(init() service() destory() 是三个生命周期方法
init() 只执行一次,在浏览器发送请求时
service() 执行多次,浏览器请求几次,就执行几次
destory() 只执行一次,当关闭web服务器的时候执行
)
)
【2】继承 GenericServlet 类
【2.1】 还需要配置 web.xml 中servelt 的信息
<servlet-name>Demo01</servlet-name> 名字随意
<servlet-class>cn.edu.aynu.Demo01</servlet-class> 包名.类名
</servlet>
<servlet-mapping> mapping 映射
<servlet-name>Demo01</servlet-name>
<url-pattern>/Demo01</url-pattern> 浏览器所需要的打的地址 需要加一个"/"
// 可以配置多个 url-pattern 参数
</servlet-mapping>
【2.2】 它实现的方法只有 service() 来处理请求
【3】继承HttpServlet 类
一般就是用 doGet 和 doPost 方法
不需要手动配置参数值
doGet() 处理 get请求
doPost() 处理post 请求
解决get 和 post 请求中文乱码的问题
get 没有请求体,请求由于在地址栏将参数提交,所以只能使用传统方式进行解码
username = new String(username.getBytes("iso-8859-1"),"utf-8");
response.setCharacterEncoding("utf-8");
post 请求由于在请求体中,将参数提交。
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//[1]规定服务器按照UTF-8 的方式编码
//[2]浏览器按照UTF-8 方式编码
三个域对象 request , ServletContext ,session
域对象的方法 setAttribute("name",value) getAttribute("name") removeAttribute()
在重定向的时候, request 域对象,不能携带数据传递到另一个serrvlet 中去。
但是可以使用 ServletContext,来设置参数,可以传递数据。
转发时,使用request 和 ServletContext 都可以使用。
生命周期 ServletContext > request
ServletContext 在部署web应用时,服务器就已经创建了,在第一次访问前,servletContext 就已经创建完成了。
在服务器关闭后,servletcontext 才销毁掉,或者重新部署应用时,原servletContext 才会被销毁掉。
注意; 在浏览器关闭后,servletContext 并不会销毁
request 在第一次访问时创建,在一次访问完成后就销毁了。
中文乱码问题:
get请求处理中文乱码方法:
由于get请求,所有的参数都在地址中,并没有请求体,所以需要使用传统的方法来解决中文乱码
在服务器端,使用的编码方式是iso-8859-1 ,所以先以这个编码转成 btyes 数组,再编码成utf-8
username = new String (username.getBytes("iso-8859-1"),"utf-8");
response.setCharacterEncoding("utf-8"); // 设置响应的编码方式
post请求处理中文乱码方法;
由于post请求,请求的参数都在请求体中,所以设置请求体的编码是 utf-8,响应方式是 utf-8 就可以了
request.setCharacterEncoding("utf-8"); // 请求体的编码方式
response.setContentType("text/html;charset=utf-8");
// [1] 规定服务器按utf-8 编码
// [2] 浏览器按utf-8 解码
缺省的servlet 比如404 的页面,就是由缺省的servlet 来设置的
<url-pattern>/</url-pattern> 中间只有一个 “/” 的就是缺省servlet。
“*”是通配符,可以匹配任何字符
在 <url-pattern> 中的参数要么是以 / 开头,要么以 * 开头
三种跳转页面方法 重定向 转发(转发包含) 自动刷新
// 设置状态码
response.setStatus(302); // status 意思 状态
重定向 需要浏览器两次访问服务器
response.setRedivect("/Demo01/Bsevlet"); 也可以直接写 Aservlet ,在地址栏自动生成 /项目名/servlet 名
转发
RequestDispatcher dispatcher = request.getRequestDispatcher("/Bserrvlet"); // 路径直接就是 web.xml 中的地址
dispatcher.forWard(request,response);
使用这样的方法,可以访问WEB-INF 中的内容。 浏览器一次访问服务器
不能输出 Aservlet 中的内容,只能输出Bservlet 中的内容
转发包含
RequestDispatcher dispatcher = request.getRequestDispatcher("/Bserrvlet"); // 路径直接就是 web.xml 中的地址
dispatcher.include(request,response);
可以携带 Aservlet 的数据到 Bservlet 中去
自动刷新
response.setHeader("Refresh","1;url=http://loaclhost:8080/Demo01/Bservlet"); // 1 就是隔一秒 刷新
这个方法在有时候使用的时候会出现问题,浏览器不响应。
如果不写网址 就是自动刷新自己。
0 0
- servlet 常用知识点
- Servlet常用知识点
- servlet知识点
- servlet知识点
- Servlet知识点
- servlet知识点
- Servlet知识点
- servlet知识点:servlet的配置
- 常用知识点
- 常用知识点
- JSP、Servlet注意知识点
- JSP-SERVLET知识点
- J2EE Servlet 知识点
- servlet相关知识点
- Servlet知识点总结
- servlet&jsp知识点
- servlet知识点概述
- jsp/servlet核心知识点
- MyBatis SQL语句 符号不兼容 大于号 小于号 (XML转义字符)
- PS安装
- response字符编码解决中文乱码
- SerrvletContext 和 rerquest 两个域对象
- Gold Balanced Lineup ( hash )
- servlet 常用知识点
- 下载图片--解决中文乱码
- MARK
- 随机数排序
- Light OJ--1080-----Binary Simulation树状数组
- Struts2文件下载中文名乱码
- request 转发,转发包含,重定向
- 对象复制非静态数据
- SQLServor 基本操作