servlet-mapping url-pattern映射路径研究
来源:互联网 发布:大数据ppt模板免费下载 编辑:程序博客网 时间:2024/05/16 20:28
在使用servlet时需要配置url-pattern的请求路径映射到某个servlet类,映射路径到底怎么配置呢?
书上给出大的分类3种分类我们来分析下:
一.精确匹配,即一层路径,前面没再有路径名。
1.1直接的请求名称,无后缀,如"/test1",输入请求地址如"http://localhost:8080/pro/test1"
即可访问到对应的servlet。
猜想:多个并列的类似"/test1"的请求同时映射到同一servlet类?实验答案:可以的。
如此配置:
<servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test1</url-pattern></servlet-mapping><servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test2</url-pattern></servlet-mapping>或:
<servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test1</url-pattern><url-pattern>/test2</url-pattern></servlet-mapping>
亲自运行都可以映射到访问的servlet类。
1.2带后缀的精确单层路径,如"/test1.do",并且多个带后缀的路径对应同一个servlet类的配置。
<servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test1.do</url-pattern></servlet-mapping><servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test2.do</url-pattern></servlet-mapping>或:
<servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test1.do</url-pattern><url-pattern>/test2.do</url-pattern></servlet-mapping>上面亲测可以。
如果带不带后缀的和带后缀的一起映射?
如:
<servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test1</url-pattern></servlet-mapping><servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test2.do</url-pattern></servlet-mapping>或
<servlet-mapping><servlet-name>testServlet</servlet-name><url-pattern>/test1</url-pattern><url-pattern>/test2.do</url-pattern></servlet-mapping>
上面可以看到:1.有没有后缀是不影响的,后缀名不是一定需要的。
2.多个精确的路径可以映射到同一servlet类。
3.必须有"/",没有会404,亲测
二.路径匹配
路径匹配就是请求的上下文路径后面再有至少一层路径的请求匹配。
1.1单路径(后面精确路径带不带后缀都可以)
<url-pattern>/test/test1</url-pattern>1.2多层路径(后面精确路径带不带后缀都可以)
<url-pattern>/test/pp/test1</url-pattern>1.3路径后通配符
<url-pattern>/test/*</url-pattern>注意:<url-pattern>/test/*.do</url-pattern> 不可以,启动项目报错, 模糊匹配方式不能同时使用(路径模糊匹配和后缀模糊匹配)。前面的"/"也不能少
三. 后缀拓展名匹配。
<url-pattern>*.do</url-pattern>注意:<url-pattern>/*.do</url-pattern> 不可以,报错
注意:通配符 *,<url-pattern>*</url-pattern> <url-pattern>/*</url-pattern>都不可以,报错
1)url-pattern(请求servlet的映射路径)要么以 / 开头,要么以*开头。 例如, 只写test是非法路径。
2)不能同时使用两种模糊匹配,例如 /test/*.do是非法路径
3)当有输入的URL有多个servlet同时被匹配的情况下:
3.1 精确匹配优先。(长的最像优先被匹配,这里就做不验证了)
3.2 以后缀名结尾的模糊url-pattern优先级最低
4)虽然能够以/开头(/和/*两种写法是等价的),但是不推荐这种写法
部分参考文章地址:http://www.cnblogs.com/fnz0/p/5586019.html
- servlet-mapping url-pattern映射路径研究
- servlet mapping 中URL pattern
- wildcard in servlet/filter url-pattern mapping
- Invalid <url-pattern> in servlet mapping
- servlet-mapping之url-pattern详解
- servlet-mapping之url-pattern详解
- Invalid <url-pattern> [xxx] in servlet mapping
- 关于servlet-mapping里的url-pattern说明
- web.xml中servlet-mapping的url-pattern的配置
- web.xml中servlet-mapping的url-pattern的配置
- javaee mapping request to servlets/servlet url-pattern 配置问题
- web.xml中servlet-mapping的url-pattern的配置
- Invalid <url-pattern> select.do in servlet mapping
- Invalid <url-pattern> select.do in servlet mapping
- Difference between / and /* in servlet mapping url pattern
- servlet-mapping url-pattern / 和 /* 和 mvc:resource
- servlet url-mapping
- Servlet Url Mapping
- 技术,是不是越新越好?
- html页面中iframe嵌套页面的父页面和子页面js方法互相调用
- js对于鼠标滚轮事件的监听
- SpringBoot基础(1)
- 常见比较排序算法的实现
- servlet-mapping url-pattern映射路径研究
- 捉虱子的博弈论
- cocos creator 学习(八)刚体、碰撞组件、物理组件小结
- 渗透测试技巧和窍门
- java word 转pdf格式
- scala中操作符即方法,方法即操作符
- [C# 开发技巧]如何防止程序多次运行
- Stream Java8的集合类利器——走进Java Lambda
- 堆