Java Web 回顾总结(四) -URL映射配置 - web.xml

本文详细介绍了在web.xml中如何进行URL映射配置,包括元素注册、元素映射,以及URL通配符的使用。解释了当有多个匹配规则时的优先级原则,并阐述了缺省Servlet的作用,即处理未明确映射的请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

URL映射配置

由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet 的 类映射到一个URL地址上

web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成url配置。

<servlet> 

<servlet>元素用于注册Servlet 类

两个主要的子元素:<servlet-name><servlet-class>
<servlet-name>用于设置Servlet注册名称
<servlet-class>用于 匹配 Servlet完整类名

<servlet-mapping>

<servlet-mapping>元素用于映射 一个已注册的Servlet 类一个对外访问 url路径(可以是多个)

两个子元素:<servlet-name><url-pattern>

<servlet-name>用于指定Servlet注册名称
<url-pattern>用于 匹配Servlet对外访问url路径

如 之前的例子

<servlet>
    <servlet-name>Demon1</servlet-name>
    <servlet-class>com.servlet.rep.Demon1</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Demon1</servlet-name>
    <url-pattern>/index</url-pattern>
  </servlet-mapping>

同一个注册过的Servlet可以被映射到多个URL

 即不同<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet注册名 ,且<url-pattern>的值可以不相同。
撒旦
例:

<servlet>
    <servlet-name>Demon1</servlet-name>
    <servlet-class>com.servlet.rep.Demon1</servlet-class>
  </servlet>
<!--完成注册-->

<servlet-mapping>
    <servlet-name>Demon1</servlet-name>
    <url-pattern>/index</url-pattern>
  </servlet-mapping>
<!--url 为 /index 的访问路径-->

<servlet-mapping>
    <servlet-name>Demon1</servlet-name>
    <url-pattern>/demon.html</url-pattern>
  </servlet-mapping>
  <!--url 为 /demon.html 的访问路径-->

<servlet-mapping>
    <servlet-name>Demon1</servlet-name>
    <url-pattern>/fir/demon.aspx</url-pattern>
  </servlet-mapping>
  <!--url 为 /fir/demon.aspx 的访问路径-->

通过访问其对应的url都能访问到com.servlet.rep.Demon1这个servlet这个类中的内容

URL 中使用*通配符映射  

Servlet映射到的URL中也可以使用*通配符

 因*可以匹配任意的字符,所以在某些url中使用起来很方便

但只能有以下俩种固定的格式:
1. 格式是*.扩展名 (如 : *.ggggg 该方法在新版本规则中不能适用)
2. 格式是以正斜杠/开头并以/*结尾 (如: /fir/*)

例:

  <servlet>
    <servlet-name>Demon1</servlet-name>
    <servlet-class>com.servlet.rep.Demon1</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Demon1</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
此时在后面随意加载任何字符都会返回同一页面

啊实打实
士大夫似的

注:

在有多个匹配规则同时满足时

遵循 哪个规则 更接近匹配的url使用哪个

例:

访问 url/demon 时 ,若有 俩个匹配规则
/* , /demon/demon/*
则选择第二个匹配规则 ,其次是第三个,最后是第一个


缺省Servlet

如果某个Servlet映射路径仅仅为一个正斜杠/,那么这个
Servlet 就为当前Web应用程序的缺省Servlet

凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,它们的访问请求都将交给缺省Servlet处理

即 : 缺省Servlet用于 处理所有 其他Servlet不处理的访问请求

例如:

@WebServlet(asyncSupported = true, urlPatterns = { "/" })

阿萨大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值