[Servlet] 06 Servlet web.xml文件路径的多种写法


prtyaa
prtyaa 2023-12-27 15:52:02 49784
分类专栏: 资讯

一个servlet可以匹配多个url-pattern,反之不可以,咱们不能要求服务器自由发挥,不同的Servlet不允许配置相同的ur1- pattern,如果配置了在服务器启动的时候就会报错。同时,服务器启动的时候就会加载解析web.xml文件,下面介绍一下几种配置写法

 

配置方式一:

精准配置

<url-pattern>/别名</url-pattern>(可以多个)

注意:"/"是必须声明的,别名不可以用中文,只从配置方式可以配置多个

<!--配置Servlet信息-->
 <servlet>
 <!--servlet的名称, 要见名知意,唯一-->
        <servlet-name>hello</servlet-name>  
<!--servlet的定位, 要求是包名.类型 全限定路径-->
         <servlet-class>com.lin.servlet.HelloServlet</servlet-class>
</servlet>
<!--配置servlet映射, 跟用户访问路径之间的映射-->
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
<!--配置用户访问路径-->
<!--精确匹配: 要求必须以/开头, /代表项目根路径-->
        <url-pattern>/hello2.html</url-pattern>
 </servlet-mapping>

配置方式二:

模糊配置

*表示任意个数的任意字符

<url-pattern>*.后缀名</url-pattern>

注意:

所有以指定的后缀名结尾的请求都会调用该servlet进行处理

作用:

进行模块化开发的划分

<!--配置Servlet信息-->
 <servlet>
 <!--servlet的名称, 要见名知意,唯一-->
        <servlet-name>hello</servlet-name>  
<!--servlet的定位, 要求是包名.类型 全限定路径-->
         <servlet-class>com.lin.servlet.HelloServlet</servlet-class>
</servlet>
<!--配置servlet映射, 跟用户访问路径之间的映射-->
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
<!--配置用户访问路径-->
<!--模糊匹配: 多个路径-->
<!--匹配固定后缀的路径-->
只要是.llin 为结尾的路径就会跳转执行,注意没有/开头
        <url-pattern>*.llin</url-pattern>
 </servlet-mapping>

配置方式三:

拦截请求

<url-pattern>/*</url-pattern>

注意:

会拦截所有类型的请求,包括静态资源请求(cSS、js、图片等)和jsp请求。

<!--配置Servlet信息-->
 <servlet>
 <!--servlet的名称, 要见名知意,唯一-->
        <servlet-name>hello</servlet-name>  
<!--servlet的定位, 要求是包名.类型 全限定路径-->
         <servlet-class>com.lin.servlet.HelloServlet</servlet-class>
</servlet>
<!--配置servlet映射, 跟用户访问路径之间的映射-->
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
<!--配置用户访问路径-->
<!--模糊匹配: 多个路径-->
<!--匹配所有路径-->
        <url-pattern>/*</url-pattern>
 </servlet-mapping>

配置方式四:

匹配固定前缀的路径

<url-pattern>/lin/*</url-pattern>

注意:

会拦截处理所有Servlet的别名以lin开头的路径的请求

<!--配置Servlet信息-->
 <servlet>
 <!--servlet的名称, 要见名知意,唯一-->
        <servlet-name>hello</servlet-name>  
<!--servlet的定位, 要求是包名.类型 全限定路径-->
         <servlet-class>com.lin.servlet.HelloServlet</servlet-class>
</servlet>
<!--配置servlet映射, 跟用户访问路径之间的映射-->
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
<!--配置用户访问路径-->
<!--模糊匹配: 多个路径-->
<!--匹配固定前缀的路径-->
不能和固定后缀的方法混用
        <url-pattern>/lin/*</url-pattern>
 </servlet-mapping>

配置方式五:

匹配除了jsp以外的所有路径

<url-pattern>/</url-pattern>

注意:

拦截处理访问jsp的请求

<!--配置Servlet信息-->
 <servlet>
 <!--servlet的名称, 要见名知意,唯一-->
        <servlet-name>hello</servlet-name>  
<!--servlet的定位, 要求是包名.类型 全限定路径-->
         <servlet-class>com.lin.servlet.HelloServlet</servlet-class>
</servlet>
<!--配置servlet映射, 跟用户访问路径之间的映射-->
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
<!--配置用户访问路径-->
<!--模糊匹配: 多个路径-->
<!--匹配除了jsp以外的所有路径-->
        <url-pattern>/</url-pattern>
 </servlet-mapping>

完整代码

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
        version="4.0">
    <!--配置Servlet信息-->
    <servlet>
 <!--servlet的名称, 要见名知意,唯一-->
        <servlet-name>hello</servlet-name>
        
<!--servlet的定位, 要求是包名.类型 全限定路径-->
<servlet-class>com.bjsxt.servlet.HelloServlet</servlet-class>
    </servlet>
    
    
    <!--配置servlet映射, 跟用户访问路径之间的映射-->
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
<!--配置用户访问路径-->
<!--精确匹配: 要求必须以/开头, /代表项目根路径-->
        <url-pattern>/hello2.html</url-pattern>
        
<!--模糊匹配: 多个路径-->
<!--匹配固定后缀的路径-->
只要是.llin 为结尾的路径就会跳转执行,注意没有/开头
        <url-pattern>*.llin</url-pattern>
        
<!--匹配固定前缀的路径-->
不能和固定后缀的方法混用
        <url-pattern>/lin/*</url-pattern>
<!--匹配除了jsp以外的所有路径-->
        <url-pattern>/</url-pattern>
<!--匹配所有路径-->
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=31501
赞同 0
评论 0 条
prtyaaL2
粉丝 1 发表 2553 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2959
【软件正版化】软件正版化工作要点  2878
统信UOS试玩黑神话:悟空  2843
信刻光盘安全隔离与信息交换系统  2737
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1270
grub引导程序无法找到指定设备和分区  1235
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  165
点击报名 | 京东2025校招进校行程预告  164
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  163
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  159
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!