Java Web编程--servlet生命周期和处理Http请求与响应

来源:百度文库 编辑:神马文学网 时间:2024/05/01 20:54:32
  • 我们首先来看看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");