JavaWeb笔记03-Servlet

本文介绍了Servlet的创建步骤,包括依赖导入、创建类、实现接口、复写方法和添加注解,以及Servlet的生命周期管理,如加载、初始化、请求处理和终止。还详细讲解了urlPattern的配置规则,包括精确匹配、通配符匹配和正则表达式匹配。
摘要由CSDN通过智能技术生成

一、Servlet创建与基本应用

 1. 导入依赖(坐标)

在pom.xml文件中的Services标签中加入以下代码

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

2. 创建Servlet

在java文件夹下新建一个class类,比如这样

这表示在java创建一个包(com.chuanzhikeji),包下有一个类(Servlet1)。

3. 实现接口

打开这个servlet

在后面加上impllements Servlet,选择提示的第一个


 

4. 复写父类方法

 按ctrl+i,弹出窗口点ok重写父类方法

在service方法中输出一句语句表示service被执行

5. 添加注解

注解的内容就是该Servlet的访问路径,配置如下

此时右键用tomcat运行,在浏览器输入对应路由即可发现控制台输出了信息。

目前这只是打印一个简单的输出,但要对web请求做处理,则必然需要封装一个类,先判断请求方式,再对不同的请求做不同的处理。这个类官方已经封装完成,具体实现见体系结构。 

6. 体系结构

 利用体系结构可以简化创建servlet的流程。

新建一个Servlet,继承HttpServlet,复写doGet和doPost方法(直接输doGet选择第一个)

这两个方法里的内容可以直接删掉。

这两个方法可以写对应请求方式的处理代码。 

二、Servlet生命周期

Servlet是由服务器(Tomcat)调用 和创建的,所以其由容器(服务器)来管理生命周期。

1.  加载和实例化

默认情况下,Servlet对象是在当该Servlet第一次被访问时创建,但如果想要用户有好的体验,也可设置提前加载以节省时间。

通过设置loadOnStartup参数>=0即可实现服务器启动时创建,该参数默认值为-1.

@WebServlet(urlPatterns = "/demo1", loadOnStartup = 1)

2. 初始化 

实例化Servlet后,服务器将调用init()方法初始化相关参数,该方法仅调用一次。

3. 请求处理

每次有请求到达Servlet,都会调用service()方法进行处理请求。

4. 服务终止

当服务器关闭时会调用destroy()方法释放Servlet,并释放资源。

三、urlPattern配置

urlPatterns是可以配置多个路由的,如下

1. 配置规则

  1. 精确匹配

    • urlPattern的值是一个具体的URL路径,如/hello
    • Servlet只会匹配精确与urlPattern相同的URL,例如http://example.com/hello
    • 这是最简单的匹配方式,只有当URL与urlPattern完全相同时才触发Servlet。
  2. 通配符匹配

    • 使用通配符 * 可以匹配任意字符,但只匹配一个路径段。
    • 例如,/users/* 匹配所有以/users/开始的URL路径,如/users/john/users/mary等。
    • 通配符 * 可以用在路径段的任何位置,例如 /users/*/profile
  3. 扩展名匹配

    • 使用扩展名(例如.html)来匹配特定类型的URL。
    • 例如,*.html 匹配所有以 .html 结尾的URL,如/page.html/file.html等。
  4. 默认匹配

    • 空字符串 ""/ 可以用作默认匹配,匹配所有未被其他Servlet显式匹配的URL。
    • 例如,如果没有其他匹配规则,/"" 将匹配所有URL。
  5. 精确路径和通配符组合

    • 你也可以组合精确路径和通配符,以匹配更复杂的URL。
    • 例如,/users/*/profile 匹配所有以 /users/ 开始并且以 /profile 结尾的URL,如 /users/john/profile
  6. 正则表达式匹配

    • web.xml 中,你可以使用正则表达式来定义更复杂的URL匹配规则。
    • 例如,<url-pattern>/user/[^/]+</url-pattern> 匹配所有形如 /user/{任意字符} 的URL。

如果一个路由同时满足两个规则,以精确匹配优先。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值