栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

谈servlet生命周期

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

谈servlet生命周期

        servlet的生命周期是由容器进行管理,而容器就是所谓的应用服务器或者web服务器,但是咱们这里是指Tomcat服务器。所以运行在Tomcat上的servlet的生命周期就是Tomcat在管理。这里生命周期主要经历三个阶段。

        第一个就是init()初始化这个方法:这个方法的其实是servlet接口中的一个抽象方法,在servlet的实现类GenericServlet中实现,在GenericServlet中对init方法的实现其实就是一个空的方法体,如果你自己有任何初始化只需要在自己的Servlet中对init方法进行重写,因为Servlet继承了HttpServlet,而HttpServlet又继承了GenericServlet,所以可以直接在自己的Servlet中直接重写init方法。当客户端浏览器第一次发送请求Servlet 时,Tomcat容器会实例化这个Servlet(这里只是会实例化一次,请求结束后,会把这个实例对象保存在缓存当中,下个请求会优先到缓存中找实例对象),然后实例会调用init这个方法进行初始化。(注意这里的init方法并不是进行实例对象,而是初始化对象)



		 
		 
			helloworld
			com.bjsxt.servlet.HelloWorld
		 
		 
			helloworld
			/hello
		 

        第二个就是service服务:其实Servlet是基于单进程多线程运行的,我们在前期工作中会在web.xml(项目的配置文件)文件中配置Servlet与URL的绑定,Tomcat会对请求的解析获取到请求行、请求头、请求体,然后放入HttpRequest中。首先Tomcat会根据解析到URL在缓存中寻找对应的实例对象,如果找到并会在一个新的线程中执行Service方法。如果在缓存中找不到对应的实例对象,那么Tomcat就会实例新的对象,会在web.xml文件中找到对应的项目名利用JAVA的反射机制进行实例化。这时候根据请求时基于什么方式进行发送,这里假设是根据get方法进行发送的,那么在自己的Service中重写了toget方法,所以就会产生响应。

public class HelloWorld extends HttpServlet
{
	public void doGet(HttpServletRequest request,HttpServletResponse response)
	throws ServletException,IOException
	{
		PrintWriter out=response.getWriter();
		out.println("");
		out.println("");
		out.println(" ITBZ ");
		out.println("");
		out.println("HelloWorld");
		out.println("");
		out.println("");
		out.flush();
		out.close();
		
	
	
	}
}

        第三个就是destroy()销毁:当Tomcat关闭时会销毁缓存中的Servlet实例对象,但是在销毁之前会调用一次destroy()方法,这里需要注意下destroy()方法并不是用来销毁Servlet对象的,只是用来释放资源的。跟init方法一样,这个destroy也是在GenericServlet中进行实现,也是一个空方法体,可以在自己的Servlet中进行重写。

   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号