
1、Servlet介绍
什么是Servlet:
百度的解释是“小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容”。Servlet是Java语言里面的一个接口,任何直接或间接实现了Servlet接口的类都可称为Servlet类。
Servlet与Tomcat的关系:
Tomcat 是Web应用服务器,是Servlet的容器。Tomcat 作为Servlet容器,在启动时可以创建Servlet类的实例,调用init()方法对Servlet进行初始化,同时负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户。可以说,Servlet是一种运行在支持Java语言的服务器上的组件。在web.xml文件中,通过<servlet>标签配置Servlet类的相关信息,详细配置请见。web项目访问jsp路径
2、Servlet接口
先看源码:
init():初始化方法,在Tomcat对Servlet实例化后,Servlet容器会调用init()方法来初始化该对象,让Servlet对象在处理客户请求前可以完成一些初始化工作,例如:建立的连接,获取配置信息等。在Servlet的整个生命周期中,init()方法自始至终只会被调用一次。init()方法有一个类型为ServletConfig的参数,Servlet容器通过这个参数向Servlet传递配置信息。Servlet使用ServletConfig对象从web.xml文件中获取以名-值对形式提供的初始化参数。另外,在Servlet中,还可以通过ServletConfig对象获取描述Servlet运行环境的ServletContext对象,使用该对象,Servlet可以和它的Servlet容器进行通信。
如图中红圈里面的配置信息可以在MainServlet类的init()方法里面解析。
getServletConfig():该方法返回容器调用init()方法时传递给Servlet对象的ServletConfig对象,ServletConfig对象包含了Servlet的初始化参数(如上图红圈里的配置信息)。关于ServletConfig接口下面会介绍。
service():该方法是用来处理客户端请求(在service()方法被容器调用之前,必须确保init()方法正确完成)的核心方法。容器会构造一个表示客户端请求信息的请求对象(类型为ServletRequest)和一个用于对客户端进行响应的响应对象(类型为ServletResponse)作为参数传递给service()。在service()方法中,Servlet对象通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息。
destroy():该方法用来销毁Servlet对象。当容器检测到一个Servlet对象应该从服务中被移除的时候,容器会调用该对象的destroy()方法,以便让Servlet对象可以释放它所使用的资源,该方法同样只会执行一次。当需要释放内存或者容器关闭时,容器就会调用Servlet对象的destroy()方法,在Servlet容器调用destroy()方法前,如果还有其他的线程正在service()方法中执行容器会等待这些线程执行完毕或者等待服务器设定的超时值到达。一旦Servlet对象的destroy()方法被调用,容器不回再把请求发送给该对象。如果需要改Servlet再次为客户端服务,容器将会重新产生一个Servlet对象来处理客户端的请求。在destroy()方法调用之后,容器会释放这个Servlet对象,在随后的时间内,该对象会被java的垃圾收集器所回收。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66452-1.html
何须炫富
我反正不行要不给大家个毒誓