Servlet生命周期
五个部分,从加载到卸载,如同人类的出生到死亡#
- 加载:Servlet容器自动处理
- 初始化:init方法 该方法会在Servlet被加载并实例化后执行
- 服务:service抽象方法:具体实现是doGet(),doPost()方法
- 销毁:destroy(),Servlet被系统回收时执行
- 卸载:Servlet容器自动处理
init():
- 默认第一次访问Servlet时会被执行(只执行这一次,可以修改为Tomcat启动时自动执行:
- 2.5:web.xml中
<servlet>
字段添加<load-on-startup>1(代表第1个Servlet)
.. - 3.0:@WebServlet(value = "/Servlet3",loadOnStartup = 1)
service():->doGet() doPost:调用几次,则执行几次
destroy():关闭tomcat服务时
Servlet API
由两个大类四个软件包组成::
即Servlet API可以适用于任何通信协议。但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
我们学习的Servlet,是位于javax.servlet.http
包中的类和接口,是基础HTTP协议。
Servlet继承关系
ServletConfig:接口
ServletContext getServletContext():获取Servlet上下文对象 application
String getInitParameter(String name):在当前Servlet范围内,获取名为name的参数值(初始化参数)
a.ServletContext中的常见方法(application):
getContextPath():相对路径
getRealPath():绝对路径
setAttribute()、getAttribute()
---->
String getInitParameter(String name);在当前Web容器范围内,获取名为name的参数值(初始化参数)初始化全局参数
初始化Servlet参数
- Servlet2.5
- Servlet3.0
注意:此注解只隶属于某一个具体的Servlet,因此无法为整个Web容器设置初始化参数(如果要通过3.0方式设置,仍需在web.xml中设置)获取全局参数
ServletContext对象表示Servlet应用程序。每个Web应用程序都只有一个ServletContext对象。在将一个应用程序同时部署到多个容器的分布式环境中,每台Java虚拟机上的Web应用都会有一个ServletContext对象。
通过在ServletConfig中调用getServletContext方法,也可以获得ServletContext对象。
获取当前Servlet参数
当Servlet容器初始化Servlet时,Servlet容器会给Servlet的init( )方式传入一个ServletConfig对象