立即学习:https://edu.csdn.net/course/play/1060/15786?utm_source=blogtoedu
3. servlet 容器:运行 Servlet, JSP, Filter 等的软件环境
1).可以来创建 Servlet,并调用 Servlet 的相关生命周期方法.
2) .JSP, Filter, Listener, Tag ...
4. Servlet 的生命周期方法:以下方法都是由 Serlvet 容器负责调用。
1). 构造器:只被调用一次,只要第一次请求 Servlet 时,创建 Servlet 的实例,调用构造器。
这说明 Servlet 的单实例的!
2).init 方法:只被调用一次,在创建好实例后立即被调用,用于初始化当前 Servlet。
3).service: 被多次调用,每次请求都会调用 service 方法,实际用于响应请求的.
4) .destroy: 只被调用一次,在当前Servlet 所在的 WEB 应用被卸载前调用。用于释放当前 Servlet 所占用的资源。
5. load-on-startup 参数:
1) . 配置在 Servlet 节点中:
<!-- Servlet 注册的名字 -->
<servlet-name>helloServlet</servlet-name>
<!-- Servlet 的全类名 -->
<servlet-class>com.tywl.javaweb.HelloServlet</servlet-class>
<!-- 可以指定Servlet被创建的时机 -->
<load-on-startup>1</load-on-startup>
2). load-on-startup: 可以指定 Servlet 被创建的时机. 若为负数,则在第一次请求时被创建. 若为0或正数,则在当前 WEB 应用被 Servlet 容器加载时创建实例,且数组越小越早被创建。
6. 关于 servlet-mapping
1) . 同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping> 元素的<servlet-name>子元素的设置值可以是同一个 Servlet 的注册名.
2) . 在Servlet映射到URL中也可以使用*通配符,但是智能有两种固定的格式: 一种格式是“*.扩展名”.另一种格式是以正斜杠(/)开头并以“/*”结尾
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
OR
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
注意: 以下不合法
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/*.jsp</url-pattern>
</servlet-mapping>