6个回答
展开全部
Servlet生命周期是指:Servlet实例从创建到响应客户请求直至销毁的过程。Servlet容器控制着Servlet的生命周期。首次调用Servlet时由Servlet容器创建Servlet实例。
Servlet生命周期的3个方法:
·init():创建Servlet实例后进行初始化。实现ServletConfig接口的对象作为参数进行传递。在初始化过程中,Servlet容器使用ServletConfig接口将信息传递给Servlet,如Servlet参数名称,初始化参数的值,Servlet实例名称等。
语法:public void init(ServletConfig config) throws ServletException
注:config作为参数传递给init()方法实现ServletConfig接口的对象。
·service():响应客户端发出的请求。service()方法接受ServletRequest接口和ServletResponse接口的对象来处理请求和发送响应。
语法:public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException
·destroy():释放Servlet实例,清楚所持有的资源,如内存和文件处理线程。
语法:public void destroy()
注:要实例化一个Servlet,Servlet容器必须先找到Servlet类,加载Servlet类并创建Servlet对象。然后调用init()方法初始化Servlet。ServletConfig接口对象作为参数传递给init()方法,ServletConfig接口对象提供对ServletContext接口的访问。Servlet容器使用ServletContext接口与Servlet容器进行通信。
如果初始化Servlet失败,则抛出UnavailableException或ServletException异常,并再次常识实例化和初始化Servlet。然后将ServletRequest和ServletResponse接口对象作为参数传递给service()方法,该方法将处理请求并返回异常。如果响应请求是引发异常,则调用destroy()方法来卸载Servlet实例,以确保在内存中所有的持续状态和Servlet的当前状态是同步的。
Servlet生命周期的3个方法:
·init():创建Servlet实例后进行初始化。实现ServletConfig接口的对象作为参数进行传递。在初始化过程中,Servlet容器使用ServletConfig接口将信息传递给Servlet,如Servlet参数名称,初始化参数的值,Servlet实例名称等。
语法:public void init(ServletConfig config) throws ServletException
注:config作为参数传递给init()方法实现ServletConfig接口的对象。
·service():响应客户端发出的请求。service()方法接受ServletRequest接口和ServletResponse接口的对象来处理请求和发送响应。
语法:public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException
·destroy():释放Servlet实例,清楚所持有的资源,如内存和文件处理线程。
语法:public void destroy()
注:要实例化一个Servlet,Servlet容器必须先找到Servlet类,加载Servlet类并创建Servlet对象。然后调用init()方法初始化Servlet。ServletConfig接口对象作为参数传递给init()方法,ServletConfig接口对象提供对ServletContext接口的访问。Servlet容器使用ServletContext接口与Servlet容器进行通信。
如果初始化Servlet失败,则抛出UnavailableException或ServletException异常,并再次常识实例化和初始化Servlet。然后将ServletRequest和ServletResponse接口对象作为参数传递给service()方法,该方法将处理请求并返回异常。如果响应请求是引发异常,则调用destroy()方法来卸载Servlet实例,以确保在内存中所有的持续状态和Servlet的当前状态是同步的。
展开全部
Tomcat处理用户请求,我们可以清晰的看到容器Servlet的生命周期管理过程:
1、客户发出请求—>Web 服务器转发到Web容器Tomcat;
2、Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;
3、从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程;
4、Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法;
5、假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
6、Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);;调用destroy()方法(对应6步)。
1、客户发出请求—>Web 服务器转发到Web容器Tomcat;
2、Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;
3、从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程;
4、Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法;
5、假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
6、Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);;调用destroy()方法(对应6步)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
--------------servlet生命周期-----------------------------------------
只有一个对象
第一次请求的时候被初始化,只一遍
初始化后先调用init方法,只一遍
每个请求,调用一遍service->受保护的service->doGet/doPost。 以多线程的方式运行。不要在servlet中设计成员变量。
卸载前调用destroy方法
才子_辉祝您愉快!
只有一个对象
第一次请求的时候被初始化,只一遍
初始化后先调用init方法,只一遍
每个请求,调用一遍service->受保护的service->doGet/doPost。 以多线程的方式运行。不要在servlet中设计成员变量。
卸载前调用destroy方法
才子_辉祝您愉快!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
servlet是Tomcat核心组件,又Tomcat容器进行创建和声明生命周期的管理,一般开发中,servlet里面有init初始化方法,该方法在servlet生命周期里面,只执行一次,一般用于初始化配置文件等等,对于浏览器发出的请求,需要重写doGet/doPost方法,servlet对象只创建一次,是多在多线程方式下运行的,且servlet是线程不安全的,所以,不要在servlet中设计全局变量或者静态变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
servlet生命周期:
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询