Servlet配置及生命周期方法
关于Servlet容器:
1.可以来创建Servlet并调用Servlet相关的生命周期的方法
2.JSP,Filter,Listener,Tag...(都有Servlet容器管理,并运行,提供环境支持)
3.Servlet生命周期的方法:(以下方法都是Servlet容器负责调用)
3.1 构造器方法:第一次请求Servlet时创建Servlet的实例,调用构造器,第二次在请求时不再创建构造器,依次类推,Servlet是单实例(线程安全的),只被调用一次
3.2 init(ServletConfig config)方法;在创建实例后立即被调用,用于初始化Servlet,也只被调用一次(注意参数很重要)
3.3 service()方法;每次请求都会被调用,被多次调用
3.4 destory()方法;只被调用一次,在当前Servlet的所在的WEB应用被卸载前调用,用于释放当前Servlet所占用的资源
5.load-on-start参数:
配置在Servlet节点中,可以指定Servlet被创建的时机,若为负数则在第一次请求时被创建,若为0或者正数,则在当前web应用被Servlet容器加载时创建实例,且数值越小越早被创建
<!--配置Servlet-->
<servlet>
<!--Servlet注册的名字-->
<servlet-name>helloServlet</servlet-name>
<!--Servlet的全类名-->
<servlet-class>package.className</servlet-class>
<!-- 可以指定Servlet被创建的时期-->
<load-on-startup>1<load-on-startup>
</servlet>
<servlet-mapping>
<!--需要和某一个Servlet节点的servlet-name子节点文本节点一致-->
<servlet-name>helloServlet</servlet-name>
<!--映射具体的访问路径,/代表当前的WEB应用的根目录-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
6、一个Servlet可以有多个url-pattern与之映射
可以使用通配符 * 映射
1.带* 只有两种合法,/*,*.do(...)
2.既带/,又带扩展名的不合法