servlet 核心技术
servlet 核心技术
servlet 生命周期
在 servlet 生命周期中,servlet 容器完成加载 servlet 类和实例化一个 servlet 实例,并通过3个方法来完成生命周期中的其他阶段。
- init() 方法:负责 servlet 的初始化工作,该方法由 servlet 容器调用完成。
- service() 方法:处理客户端请求,并返回响应结构。
- destroy() 方法:在 servlet 容器卸载 servlet 之前被调用,释放系统资源。
使用方法Servlet
创建 servlet 类的 java 文件,然后在 WEB-INF 中的 web.xml 中修改配置,配置过程是由<servlet>
和 <servlet-mapping>
元素实现的。
举个例子:
<!-- 配置Servlet -->
<servlet>
<servlet-name>ServletSample</servlet-name>
<servlet-class>sunyang.ServletSample</servlet-class>
</servlet>
<!-- 配置Servlet映射路径 -->
<servlet-mapping>
<servlet-name>ServletSample</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
或者是使用注解的形式(使用的是 urlPatterns 属性)
如:
@WebServlet(name="Servletsample", urlPatterns="/HelloWorld")
-
开发一个普通的 Servlet 只需拓展
javax.serlvet.GenericServlet
即可,GenericServlet 类定义了一个普通的,协议无关的 servlet。在拓展 GenericServlet 时必须要重载 service() 方法。
-
要创建一个用于 web 的 HTTP Servlet,则需要拓展
javax.servlet.http.HttpServet
。HttpServlet 用于处理 HTTP 请求。需要重载 HttpServlet 的 doGet() 方法和 doPost() 方法。
获取运行环境信息
Servlet 信息包括 Servlet 的初始化信息,Servlet 的初始化参数名和 Servlet 名称,这些信息通常配置在web.xml 中,可通过 javax.servlet.ServletConfig 接口中定义的方法来获取。
Servlet 中的会话设置
Servlet api 内置了会话跟踪支持,那就是 HttpSession 对象。
Servlet 中异常处理
可以使用两种处理异常的方式:
- 在 try/catch 语句块中直接生成并输出异常信息的页面,或者将异常转发到异常处理的 Servlet 或 JSP 页面中。
- 在 web.xml 中通过
<error-page>
元素指定异常处理
Servlet 过滤器
在 web.xml 中定义,<filter>
元素用于配置 Servlet 过滤器。
Servlet 监听器
Servlet 监听器类型:
- ServletContext 事件监听器:用于监听应用程序环境对象。
- HttpSession 事件监听器:用于监听用户会话对象。
- ServletRequest 事件监听器:用于监听请求消息对象。
在 web.xml 中定义, ```