JavaWeb入门(三)- Servlet的使用及生命周期(上)

1. Servlet 简介

Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应”的模式。

Servlet可完成如下功能:

  1. 创建并返回基于客户请求的动态HTML页面。

  2. 创建可嵌入到现有HTML 页面中的部分HTML 页面(HTML 片段)。

  3. 与其它服务器资源(如数据库或基于Java的应用程序)进行通信。

2. Servlet在容器中的使用

Servlet的运行,依赖于Servlet容器。其中,Servlet容器响应客户端的请求过程如下:
Servlet响应客户请求的过程

2.1 如何将Servlet运行在Servlet容器中?

具体的开发流程如下:

  1. 开发一个Servlet。即新建一个类,实现Servlet接口。

  2. 在web.xml文件中,配置和映射的Servlet。
    web.xml文件中配置和映射Servlet

2.2 Servlet映射分析

映射分析:经过上述的配置后,映射关系如下所示:
Servlet映射分析

在Servlet开发中,要为每一个Servlet在web.xml文件中做注册和映射。其中注册的标签,映射的标签为

同一个Servlet可以被映射到多个URL上,即多个元素的子元素的设置值可以是同一个Servlet的注册名。

在Servlet映射到的URL中也可以使用通配符,但是只能有两种固定的格式:一种格式是“.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。

<servlet-mapping>
	<servlet-name>AnyName</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

<servlet-mapping>
	<servlet-name>AnyName</servlet-name>
	<url-pattern>/action/*</url-pattern>
</servlet-mapping>

2.3 Servlet的注册与运行

Servlet程序必须通过Servlet容器来启动运行,并且Servlet程序储存目录有特殊要求,通常需要存储在<WEB应用程序目录>\WEB-INF\classes\目录中

Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。

一个元素用于注册一个Servlet,它包含有两个主要的子元素:和,分别用于设置Servlet的注册名称和Servlet的完整类名。

一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:和,分别用于指定Servlet的注册名称和Servlet的对外访问路径。

3. Servlet容器对Servlet管理分析

Servlet容器可以来创建Servlet,并且调用Servlet的相关生命周期方法。

3.1 Servlet的生命周期方法

Servlet的生命周期方法有四个:

  1. 构造器。只被调用一次,只有第一次请求Servlet是,创建Servlet的实例,调用构造器。
  2. init () 方法。只被调用一次,在创建好实例之后,立即被调用,用于初始化当前的Servlet。
  3. service() 方法,能够被多次调用,每次请求都会调用service方法,用于响应请求。
  4. destroy() 方法,纸杯调用一次。在当前Servlet所在的WEB应用被卸载前调用,用于释放Servlet所占用的资源。。

load-on-startup 参数:
在注册Servlet的时候,load-on-startup标签用于选择Servlet的加载时机。
若为负数,则在第一次请求时创建;
若为0或者正数,则在当前WEB应用被Servlet容器加载时创建实例。

<servlet>
	<servlet-name>helloServlet</servlet-name>
	<servlet-class>com.xxx.xxx.HelloServlet</url-pattern>
    <load-on-startup>2</load-on-startup>
</servlet>
3.2 Servlet容器响应客户端请求的过程

当Servlet容器收到来自客户的请求,响应过程如下:

① Servlet引擎检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
② 装载并创建该Servlet的一个实例对象:调用该 Servlet 的构造器
③ 调用Servlet实例对象的init()方法。
④ 创建一个用于封装请求的ServletRequest对象和一个代表响应消息的ServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
⑤ WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

4. 总结

本文介绍了开发一个Servlet应用程序的基本步骤:1,创建。2,在web.xml文件中,向servlet容器注册和添加映射。然后,介绍了Servlet的基本生命周期方法,并介绍了load-on-startup标签,可以确定Servlet被加载的时机。最后,介绍了Servlet容器响应客户请求的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值