Servlet servlet在Eclipce中的配置和体系结构详解

学习目标

  1. 掌握 servlet 实现原理
  2. 掌握 servlet 生命周期
  3. 掌握 servlet 监听器的使用

Servlet概论

Servlet 是什么?

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

–servlet

使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

Servlet 架构

下图显示了 Servlet 在 Web 应用程序中的位置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A8v0ApLp-1641215496459)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155340098.png)]

Servlet 任务

Servlet 执行以下主要任务:

  • 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
  • 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
  • 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

Servlet 包

Java Servlet 是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类。

Servlet 可以使用 javax.servlet 和 javax.servlet.http 包创建,它是 Java 企业版的标准组成部分,Java 企业版是支持大型开发项目的 Java 类库的扩展版本。

Servlet与Tomcat版本

官方说明:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JaPTymgZ-1641215496461)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155419311.png)]

Servlet基础

创建动态web工程:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QRX4U4NG-1641215496462)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155438091.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bHsqyuYs-1641215496462)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155451777.png)]

说明:

dynamic web module指servlet的版本,servlet被包含在tomcat中。

  • dynamic web module 2.4 对应Tomcat 5.5
  • dynamic web module 2.5 对应Tomcat 6.0
  • dynamic web module 3.0 对应Tomcat 7.0
  • dynamic web module 3.1 对应Tomcat 7.0或者更高
  • dynamic web module 4 对应Tomcat 8.0或者更高

一直next直到如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rZg44FQc-1641215496463)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155512149.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WJ2W8gVX-1641215496464)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155528572.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o1xgBm2J-1641215496464)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155540495.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rNdKbaXT-1641215496465)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155553789.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4FEAqzT-1641215496465)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155603889.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zUTpciTv-1641215496466)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155618833.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xI2Jgjrq-1641215496467)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155632399.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tUNVD3oH-1641215496467)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155659572.png)]

web.xml配置servlet

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0R0t4lDV-1641215496468)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211230155738708.png)]

注解配置Servlet

在servlet3.0以后,我们可以不用再web.xml里面配置servlet,只需要加上@WebServlet注解就可以修改该servlet的属性了。

下面是@WebServlet的属性列表。

属性名 类型 描述
name String 指定Servlet 的 name 属性,等价于 。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。
value String[] 该属性等价于 urlPatterns 属性。两个属性不能同时使用。
urlPatterns String[] 指定一组 Servlet 的 URL 匹配模式。等价于 标签。
loadOnStartup int 指定 Servlet 的加载顺序,等价于 标签。
initParams WebInitParam[] 指定一组 Servlet 初始化参数,等价于 标签。
asyncSupported boolean 声明 Servlet 是否支持异步操作模式,等价于 标签。
description String 该 Servlet 的描述信息,等价于 标签。
displayName String 该 Servlet 的显示名,通常配合工具使用,等价于 标签。

从上表可见,web.xml可以配置的servlet属性,在@WebServlet中都可以配置。

如:

@WebServlet(description="描述", urlPatterns={ "/aaa"}, loadOnStartup=1)  
public class indexServlet extends HttpServlet{}

Servlet 生命周期

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。

  • Servlet 通过调用 init () 方法进行初始化。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
  • Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

init()方法

init 方法被设计成只调用一次。

它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。

因此,它是用于一次性初始化。

Servlet 创建于用户第一次方位该Servlet的URL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抹泪的知更鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值