Servlet容器:运行Servlet、JSP、Filter等的软件环境
1.可以用来创建Servlet,并调用Servlet的相关生命周期方法
2.JSP,Filter,Listener,Tag...
Servlet的生命周期方法:以下方法都是由Servlet容器负责调用
1.构造器:只被调用一次,只有第一次请求Servlet时,创建Servlet的实例,调用构造器,说明Servlet是单实例的
2.init方法:只被调用一次,在创建好实例后立即被调用,用于初始化当前Servlet
3.service方法:被多次调用,每次请求都会调用Service方法。实际用于响应请求的
4.destroy:只被调用一次,在当前Servlet所在的WEB应用被卸载时调用,用于释放当前Servlet所占用的资源
load-on-startup参数:
1.配置在servlet节点中
2.load-on-startup:可以指定Servlet被创建的时机。若为负数,则在第一次请求时被创建,若为0或者正数,则在当前WEB应用被Servlet容器加载时创建实例,且数值越小越早被创建
关于servlet-mapping:
1.同一个servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置可以是用一个servlet的注册名
2.在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:
一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾
ServletConfig:封装了Servlet的配置信息,并且可以获取ServletContext对象
1.配置Servlet的初始化参数
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.test.helloServlet</servlet>
<!--必须写在load-on-startup参数的前面>
<init-param>
<param-name>user</param-name>
<param-value>test</param-value>
</init-param>
</servlet>
2.获取初始化参数
getInitParameter(String name):获取指定参数名的初始化参数
getInitParameterNames():获取参数名构成的Enumeration对象
3.获取Servlet的配置名称(很少用)
getServletName
4.ServletContext对象
可以由ServletConfig获取
该对象代表当前WEB应用:可以认为ServletContext是当前WEB应用的一个大管家,可以从中获取到当前WEB应用的各个方面的信息
获取当前WEB应用的初始化参数:
先配置初始化参数:可以为所有的Servlet所获取,而Servlet的初始化参数只有那个Servlet可以获取
<context-param>
<param-name>user</param-name>
<param-value>test</param-value>
</context-param>
获取初始化参数:
getInitParameter(String name)
getInitParameterNames()
获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的路径
getRealPath(String path)
获取当前WEB应用的名称:
getContextPath()