Servlet的生命周期(面试题)以及配置xml文件(二)

一.Servlet生命周期:

当servlet被第一次访问的时候,init()方法会被调用。Servlet的实例默认情况下是第一次被访问的时候创建(这个可以是更改的),第二次访问不会了。Servlet的实例是单例的,Servlet每次请求会被调用。当Servlet对象销毁时会调用这个方法destroy()。

 

                    Servlet对象实例化(创建)  ——> Servlet对象初始化——> 处理请求 ——>  Servlet对象销毁(服务器关闭或崩溃了)    

                        大致在这几个方法中体现:        init();                        service();            destroy();

 


二.专注Http请求的Servlet

 

        Servlet(一个标准)接口  ——> GenericServlet是Servlet接口子类——>HttpServlet是GenericServlet的子类(一个专门处理http请求的Servlet)

                        

Servlet的生命周期(面试题)以及配置xml文件(二)

 

httpServlet中的需要了解的几个方法

 

①doGet(HttpServletRequest req, HttpServletResponse resp);   是给Get方式的Http的请求做响应。

②doPost(HttpServletRequest req, HttpServletResponse resp);  是给POST方式的Http的请求做响应。

③service(HttpServletRequest arg0, HttpServletResponse arg1);响应请求,请求并将其分配到该类中定义的doXXX方法。

 

 


 

 

三.Tomcat启动创建Servlet实例

 

①怎么添加在Tomcat启动创建Servlet实例?

                在Web.xml文件中,<Servlet>下添加一个元素对象<load-on-startup>1<load-on-startup>里面必须是大于等于0的整数。

所有添加了<load-on-startup>子元素的Servlet。都会在Tomcat启动时创建Servlet对象。只是被创建,但没有处理请求。但我们知道在Servlet生命周期中init()方法会在Servlet对象创建时被调用。所以你可以在init()方法中做一些输出,查看是否在Tomcat启动时被调用了它。

 

                <load-on-startup>元素的值是一个序号,Tomcat会使用这个序号给多个Servlet排序,然后再Tomcat启动时会按照这个顺序来创建Servlet实例对象。

 

Servlet的生命周期(面试题)以及配置xml文件(二)