Servlet生命周期和处理Http请求与响应
- servlet的生命周期:
1.容器开启并加载servlet;
2.调用init()方法对servlet进行初始化;
3.当请求到来调用service()方法处理请求,发送响应;
4.调用destory()方法销毁servlet;
- servlet处理Http响应
来看看http的响应信息结构包括:状态行、响应头、空行、消息体;
状态行中各个状态码代表的意思:
100-199:消息;
200-299:响应成功;
300-399:页面重定向;
400-499:客户端发生错误;
500-599:服务器端发生错误;
我们也可以手动来设置状态码:response.setError(状态码);
设置响应头:response.setHeader(键,值);
设置消息体(常用):
1.传输文本:response.getWriter();
2.传输二进制文件:response.getOutputStream();
请求的重定向:response.sendRedirect();
重定向原理:当一个请求到来时如果要进行重定向,服务器会在状态行发送一个302的状态码,把发送一个location的响应头,客户端获得一个302的状态码后会将地址栏修改为响应头的location,然后再次发送一个请求,在整个过程中客户端发送了两次请求;
- servlet处理Http请求
来看看http的请求信息结构包括:请求行、请求头、空行、消息体;
获取属性方法:request.getParemeter(name); request.getParemeterValues(name);
内部转发:
RequestDispather dis = request.getRequestDispather("转发地址");
dis.include(request,response);
dis.forward(request,response);
修正乱码方法1:在页面中统一字符编码:<%@page ContentType="text/html;charset=utf-8" %>
修正乱码方法2:例:String name=request.getParemeter("name");
byte[] bt = name.getBytes("ISO8859-1");
name = new String(bt,"gbk");