Servlet 的生命周期与配置

本文详细介绍了Servlet的生命周期,包括加载和实例化、初始化、请求处理和服务终止四个阶段,并讲解了如何通过wed.xml配置Servlet以及使用注解的方式。强调了Servlet的加载时机,init()、service()和destroy()方法的作用,以及在web服务器中的应用。

首先创建一个servlet (在已创建的Dynamic Wed Project项目右击,找到other):

点击Next

java package (包名)可以不创建,

class name随意写。点击Next

可以勾选方法后续有部分方法说明.

sevlet 生命周期

1.加载和实例化。

2.初始化:调用init()方法。

3.请求处理:调用service()方法。

4.服务终止:调用destroy()方法.

加载和实例化

Servlet容器(wed服务器)负责加载和实例化。

Servlet 可以在用户访问 Servlet 映射地址时加载并运行Servlet,也可以有容器自动加载Servlet。

自动加载需在wed.xml中设置<load-on-startup>属性,

load-on-startup 元素取值规则如下:

  1. 它的取值必须是一个整数;
  2. 当值小于 0 或者没有指定时,则表示容器在该 Servlet 被首次请求时才会被加载;
  3. 当值大于 0 或等于 0 时,表示容器在启动时就加载并初始化该 Servlet,取值越小,优先级越高;
  4. 当取值相同时,容器就会自行选择顺序进行加载。

初始化

调用init()方法在处理用户请求前完成初始化工作(如建立数据库连接,通过ServletConfig对象获取配置信息)。如初始化失败会抛出ServletException或UnavailableException异常,实例销毁。

请求处理

Servlet实例化后接收客户端请求、作出响应,都是通过调用servlet()方法实现。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

服务终止

服务器调用destroy()方法释放Servlet运行所占的资源,该方法不抛出异常。

Servlet配置

配置servlet的方法有两种:

1、在wed.xml文件中配置servlet

必须指定servlet的名称、servlet的 类的路径,其他信息可选择性添加。

<!--   <servlet> -->
<!--           <servlet-name>testServlet</servlet-name>注册servlet的名字,一般跟Servlet类名有关 -->
<!--           <servlet-class>baoming.testServlet</servlet-class>要注册的servlet 的类地址, 要带包路径 -->
<!--   </servlet> -->
<!--   <servlet-mapping> -->
<!--           <servlet-name>testServlet</servlet-name>类名 -->
<!--           <url-pattern>/Ex</url-pattern>随意路径映射可以设计多个映射地址 -->
<!--   </servlet-mapping> -->

2、采用注解配置Servlet

import javax.servlet.annotation.WedServlet;

@WedServlet(urlPatterns = {"/映射地址"},asyncSupported = true|false,

loadOnStsrtup = -1,name = "Servlet名称",displayName = "显示名称",

initParams = {@WedInitParam(name = "username",value= "值")})

以上语法中asyncSupported属性  是否支持异步操作模式,

loadOnStsrtup属性  指定Servlet的加载顺序,

name属性  servlet的name属性,

displayName属性  指定Servlet的显示名,

initParams属性  指定一组Servlet初始化参数。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值