servlet配置url-pattern的匹配规则
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.qf.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
扩展名匹配
url-pattern配置的内容是*.aa、*.bb、*.jsp这种类型的
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.qf.servlet.HelloServlet3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.hello</url-pattern>
</servlet-mapping>
路径匹配
1.全路径匹配:请求访问的url的地址必须与url-pattern配置的内容完全一致
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.qf.servlet.HelloServlet3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/aa/bb/hello</url-pattern>
</servlet-mapping>
2.路径匹配:前半段完全匹配,后半段存在*(*是通配符,可以代表任何字符串);以/开始,以*结束;/aa/*可以是/aa/bb,也可以是/aa/cc..............
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.qf.servlet.HelloServlet3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/aa/*</url-pattern>
</servlet-mapping>
注意:/aa/*/*这种url-pattern配置,url访问时必须是/aa/*/aa,/aa/*/bb这种才可以访问,也就是中间这个*并不是通配符,只是一个普通字符
路径匹配和扩展名匹配不可以同时使用,下面几个配置全是不合法的
<url-pattern>/aa/*.hello</url-pattern>
<url-pattern>/*.hello</url-pattern>
<url-pattern>a*.hello</url-pattern>
注意:
< url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
< url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
当一个url与多个servlet的匹配规则可以匹配时,则按照 “ 完全匹配路径 > 最长路径>扩展名”这样的优先级匹配到对应的servlet
- servlet1 的url-pattern是 /test,servlet2的url-pattern是 /* ,访问的url为http://localhost:8080/test ,容器就会先进行完全路径匹配,发现/test正好被servlet1精确匹配,那么就去调用servlet1,不会去管servlet2
- servlet1的url-pattern为/test/*,servlet2的url-pattern为/test/a/*,访问的url是http://localhost:8080/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servlet2
- servlet1的url-pattern是*.action ,servlet2的url-pattern为 /* ,访问的url为http://localhost:8080/test.action,这个时候容器就会优先进行路径匹配,而不是去匹配扩展名,这样就去调用servlet2
servlet配置url-pattern的匹配规则的更多相关文章
- Invalid [xxx] in servlet mapping 、 <url-pattern>的匹配规则 、 DefaultServlet介绍
真的是很容易被忽视的错误,servlet 配置url的时候遇到问题,这个之前确实没有详细了解过. 出现这个错误的时候往往伴随着一系列高大上的错误,比如会出现类似[StandardEngine[Cata ...
- [ /* 和 / 的区别 ] Difference between / and /* in servlet mapping url pattern
<url-pattern>/*</url-pattern> The /* on a servlet overrides all other servlets, includin ...
- nginx配置location项的URL匹配规则
Localtion URL的正则匹配规则 示例 location / { try_files $uri @apache; } #所有的路径都是/开头,表示匹配所有 location @apache { ...
- 二十一、springboot之定制URL匹配规则(项目中遇到的问题:get方式传参,带有小数点,被忽略)
一.问题描述: get方式传参,在传送价格,积分时(带有小数点),debug后台微服务接受到的参数,却不带小数点,如:price是0.55,后台接受后却是0 二.解决 在WebConfiguratio ...
- Spring Boot实战之定制URL匹配规则
本文首发于个人网站:Spring Boot实战之定制URL匹配规则 构建web应用程序时,并不是所有的URL请求都遵循默认的规则.有时,我们希望RESTful URL匹配的时候包含定界符". ...
- Servlet拦截匹配规则可以自已定义,拦截哪种URL合适?
Servlet拦截匹配规则可以自已定义,拦截哪种URL合适? 当映射为@RequestMapping("/user/add")时,为例: 1.拦截*.do.*.htm, 例如:/u ...
- Web.xml中设置Servlet和Filter时的url-pattern匹配规则
一.servlet容器对url的匹配过程: 当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://loca ...
- servlet的匹配规则,兼谈/与/*
客户端通过URL地址访问服务器(servlet容器)资源,所以servlet若要能对外提供服务,必须要将程序按照java规范将其映射到对应的URL上,映射的规则是需要开发人员在WEB.XML中显示指定 ...
- 转:Servlet的url匹配以及url-pattern详解
Servlet是J2EE开发中常用的技术,使用方便,配置简单,老少皆宜.估计大多数朋友都是直接配置用,也没有关心过具体的细节,今天遇到一个问题,上网查了servlet的规范才发现,servlet中的u ...
随机推荐
- 46-python基础-python3-字符串-常用字符串方法(四)-join()-split()
5-字符串方法 join()和 split() 1-join()方法 将字符串列表连接成一个单独的字符串. join()方法在一个字符串上调用,参数是一个字符串列表,返回一个字符串. 请注意,调用 j ...
- [Fw]初探linux中断系统(2)
初探linux中断系统(2) 中断系统初始化的过程 用来初始化中断系统的函数位于arch/x86/kernel/irqinit.c,定义如下 void __init init_IRQ(void){ i ...
- 64.Find the Duplicate Number(发现重复数字)
Level: Medium 题目描述: Given an array nums containing n + 1 integers where each integer is between 1 ...
- OAuth授权登录
一.写在前面 日常生活中,我们经常看到到一个网站时,需要登录的时候,都提供了第三方的登录,也就是说你可以使用你的微信,QQ,微博等账号进行授权登录.那么这个认证登录的东西到底是什么呢? 微信授权登录页 ...
- 一 shell编程
好啦.从今天开始我们转入shell编程的行列.从鸟哥私房菜中,已经学到了一些shell编程的皮毛,这两个月打算系统的学习,学会,学熟练.加油吧 bash shell [root@localhost s ...
- IDA技巧
3. 用[shift+F12]调出字符串表,再根据这些字符串,查看引用的地方,也可以分析出一些sub_0XXXX函数的功能. 进入import函数内 x查看调用处 jump to xref 跳到引用 ...
- Django Rest框架 流程详解
什么是Restful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审 ...
- Redis面试题大全含答案
Redis面试题大全含答案 Redis面试题大全含答案 1.什么是Redis?答:Remote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...
- HWDB手写汉字识别 - CNN
MARK Caffe 的 googleNet近似模型,识别HWDB汉字200类 准确率96.3
- idea创建ssm框架步骤
打开idea 编辑器 File>new >project 选择Maven 右边勾选Create from archctype 然后下拉选择org.apache.maven.archet ...