1.什么是servlet?
servlet是一种服务器的Java应用程序,即Java服务器小程序,其是由服务器端调用和执行的,按照servlet自身规范编写的Java类。
2.为什么使用servlet
(1)servlet是持久的
(2)servlet是快速的
(3)servlet是与平台无关的
(4)servlet是可扩展的
(5)servlet是安全的
3.servlet运行流程
首先Servlet被部署到Web容器中,当客户端发送调用这个Servlet的请求到达Web容器时,Web容器会先判断所调用的Servlet实例是否存在。如果不存在,就装载当前所调用的Servlet并调用构造方法生成这个Servlet的实例,其次再调用这个实例的init()方法(init()这个方法只会在Servlet初始化的时候调用一次,除非这个Servlet被重新部署)进行初始化,然后新创建一个线程,并在新建线程中调用这个实例的service()方法,service()方法再根据请求的具体类型调用doGet()、doPost()等方法,然后生成动态的回复内容,最后服务器发送回复内容给客户端的浏览器。如果存在,就直接新创建一个线程,并在新建线程中调用这个实例的service()方法,service()方法再根据请求的具体类型调用doGet()、doPost()等方法,然后生成动态的回复内容,最后服务器发送回复内容给客户端的浏览器。当Servlet不再需要使用的时候,比如其所在的Web应用被卸载或Web服务器关闭时,它就会被卸载掉,卸载前调用destory()方法,完成所有相关资源的释放。
4.servlet体系结构
Servlet API主要由两个Java包组成:
javax.servlet 在javax.servlet包中定义了Servlet接口及相关的通用接口和类;
javax.servlet.http 在javax.servlet.http包中主要定义了与HTTP协议相关的
HttpServlet类,HttpServletRequest接口和HttpServletResponse接口;
5.servlet生命周期
在Servlet接口中定义了5个方法,其中3个方法都是由Servlet容器来调用的,容器会在Servlet的生命周期的不同阶段调用特定的方法:init(ServletConfig) —— 负责初始化Servlet对象,只调用一次,初次访问servlet时访问。
service(ServletRquest req, ServletResponse res) ——处理业务逻辑;用户每次访问servlet’都会调用; req获取客户端的信息,res用于向客户端返回信息。
destroy() —— 负责释放Servlet对象占用的资源。
reload该servlet(webApps)(tomcat页面manager),
关闭tomcat,
关机会调用该方法。
6.配置servlet
web项目中的web.xml中配置
<?xml version="1.0"?>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>test.java.servlet.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>
7.servlet的生命周期
(1)加载和实例化
(2)初始化
(3)请求处理
(4)服务终止