servlet总结

1、所有的JSP最终都会转换成servlet。

2、web.xml是servlet的入口,配置1)、名称;2)、mapping映射

      


firstServlet

lee.FirstServlet


1




firstServlet

/aa

3、servlet实现类必须继承HttpServlet类,默认的post、get和service方法方法关系如下:

servlet总结_第1张图片

doGet()和doPost()方法源码解析

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取协议 
        String protocol = req.getProtocol();
//获取http.method_get_not_supported的国际化字符串
        String msg = lStrings.getString("http.method_get_not_supported");
        if(protocol.endsWith("1.1")) {
//如果是HTTP/1.1,返回405禁止访问方法错误
            resp.sendError(405, msg);
        } else {
//如果不是HTTP/1.1,返回400错误的请求错误  
            resp.sendError(400, msg);
        }
 
    }
 
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String protocol = req.getProtocol();
        String msg = lStrings.getString("http.method_post_not_supported");
        if(protocol.endsWith("1.1")) {
            resp.sendError(405, msg);
        } else {
            resp.sendError(400, msg);
        }
 
}


所有如果不区分post和get时可以直接重写service方法要其直接返回结果转向到页面,如果要区分时需要重写post和get。

4、servlet生命周期:

Servlet生命周期分为三个阶段:

  1,初始化阶段  调用init()方法

  2,响应客户请求阶段  调用service()方法

  3,终止阶段  调用destroy()方法

Servlet初始化阶段:

  在下列时刻Servlet容器装载Servlet:

    1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的之间添加如下代码:

1

    2,在Servlet容器启动后,客户首次向Servlet发送请求

    3,Servlet类文件被更新后,重新装载Servlet

  Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。

Servlet响应请求阶段:

  对于用户到达Servlet的请求,Servlet容器会创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service方法。service方法从ServletRequest对象获得客户请求信息,处理该请求,并通过ServletResponse对象向客户返回响应信息。

  对于Tomcat来说,它会将传递过来的参数放在一个Hashtable中,该Hashtable的定义是:

private  Hashtable paramHashStringArray = new  Hashtable();

  这是一个String-->String[]的键值映射。

  HashMap线程不安全的,Hashtable线程安全。

-----------------------------------------------------------------------------------------------------------------------------------

Servlet终止阶段:

  当WEB应用被终止,或Servlet容器终止运行,或Servlet容器重新装载Servlet新实例时,Servlet容器会先调用Servlet的destroy()方法,在destroy()方法中可以释放掉Servlet所占用的资源。




你可能感兴趣的:(servlet,Java)