`

servlet路径映射

阅读更多

http://blog.csdn.net/caoxu1987728/article/details/2757877

 

当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://localhost/test/aaa.html,我的应用上下文是test,容器会将http://localhost/test去掉,剩下的/aaa.html部分拿来做servlet的映射匹配。这个映射匹配过程是有顺序的,而且当有一个servlet匹配成功以后,就不会去理会剩下的servlet了,其匹配规则和顺序如下:

1. 精确路径匹配。例子:比如servletA url-pattern /testservletBurl-pattern /* ,这个时候,如果我访问的urlhttp://localhost/test ,这个时候容器就会先 进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,也不会去理会其他的servlet了。

2. 最长路径匹配(也算是精确路径匹配)。例子:servletAurl-pattern/test/*,而servletBurl-pattern/test/a/*,此时访问http://localhost/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servletB

3. 扩展匹配,如果url最后一段包含扩展,容器将会根据扩展选择合适的servlet。例子:servletAurl-pattern*.action

4. 默认匹配,如果前面三条规则都没有找到一个servlet,容器会根据url选择对应的请求资源。如果应用定义了一个default servlet,则容器会将请求丢给default servlet(什么是default servlet?后面会讲)。

 

web.xml文件中,以下语法用于定义映射:

·以”/’开头和以”/*”结尾的是用来做路径映射的。

·以前缀”*.”开头的是用来做扩展映射的。

·“/是用来定义default servlet映射的。

·剩下的都是用来定义详细映射的。比如: /aa/bb/cc.action

所以,为什么定义”/*.action”这样一个看起来很正常的匹配会错?因为这个匹配即属于路径映射,也属于扩展映射,导致容器无法判断。

 

对于filter,不会像servlet那样只匹配一个servlet,因为filter的集合是一个链,所以只会有处理的顺序不同,而不会出现只选择一个filterFilter的处理顺序和filter-mappingweb.xml中定义的顺序相同。

 

 

 

 

【】

分享到:
评论

相关推荐

    Servlet虚拟路径映射配置详解

    主要介绍了Servlet虚拟路径映射配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Servlet虚拟路径映射详解

    ​ 在上一篇中我们初识了Servlet,相信...​ 我们知道,只有给Servlet配置好虚拟路径,客户端才可以进行访问,但是对于Servlet的路径映射,真的只有现在所知的这么简单么? ​ 答案当时是No了,不然怎么会有这篇文章

    叭叭一下Servlet的虚拟路径的映射

    在web.xml文件中,一个``元素中用于映射一个Servlet的对外访问路径,此路径也称虚拟路径 为什么Servlet要配置虚拟路径呢 说白话,就是给你建的Servlet起一个别名,把路径改成浏览器访问的方式,只有把Servlet映射...

    JavaWeb开发技术-实现Servlet虚拟路径的映射.pptx

    JavaWeb开发技术-实现Servlet虚拟路径的映射.pptx

    java-servlet-api.doc

    然而,一个映射可能是由一个URL和许多Servlet实例组成,例如:一个分布式的Servlet引擎可能运行在不止一个的服务器中,这样的话,每一个服务器中都可能有一个Servlet实例,以平衡进程的载入。作为一个Servlet的...

    Java™ Servlet 规范.

    1.4 Servlet 与其他技术的比较 ........................................................................................................................14 1.5 与 Java 平台企业版的关系 ......................

    tomcat关于配置servlet的url-pattern的问题思路详解

    tomcat在配置web.xml的时候,servlet是一个比较重要的问题,在这里讨论一下servlet中的几个痛点 servlet url-pattern的匹配问题 url-pattern中 / 和 /* 的区别 url-pattern的优先级问题 根路径 / 的匹配问题 1 ...

    3_32江_0331—如何在xml中实现login的映射

    通过上节课的学习,我通过idea在SRC.main路径下新建了一个Java路径并设置为了源码根,编写LoginController类,并重写了doGet与doPost方法,实现将servlet与url使用“@WebServlet(“/Login”)”语句进行映射操作代码...

    JSP 开发之THE SERVLET NAME ALREADY EXISTS.解决方法

    The servlet name already exists.解决方法 当我们建立过同名的servlet文件,... 您可能感兴趣的文章:Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析JSP中通过Servlet 将服务器硬盘图片并展示到浏览器Jsp+S

    使用Java Servlet实现一个简单的在线留言板.txt

    这个代码实现了一个简单的在线留言板。首先定义了一个MessageServlet类,用来处理...由于使用了注解@WebServlet("/message")来映射URL路径,因此客户端可以通过访问http://yourserver/yourapp/message来提交留言信息。

    Servlet的生命周期

    1.创建:当用户第一次请求servlet映射的路径时,服务器会加载servlet并实例化,后续用户请求同一个servlet时,服务器都会用同一个servlet实例来响应用户的请求。如果希望服务器启动后立即实例化servlet,需要在配置...

    JavaWeb Servlet中url-pattern的使用

    JavaWeb Servlet中url-pattern的使用 1.Sevlet和Filter的url-pattern相关说明 一个页面请求根据url-pattern只... (1).”/”开头–>路径映射  (2).”*.do”前缀开头–>扩展映射  (3).”/”–>default servlet映射

    java-servlet-api-react

    带有Jersey API的Java Web Servlet项目 ...我们创建一个唯一的Servlet来覆盖我们的示例: SrvHome它将被映射到web.xml的根路径/ : < servlet> < servlet>SrvHome</ servlet> < servlet>com.SrvHome</ servlet-

    Servlet3.1规范(最终版) PDF

    Servlet3.1规范(最终版) JavaTM Servlet 规范 版本 3.1(最终版) Shing Wai Chan Rajiv Mordani [作者] 穆茂强 张开涛 [译者] 2012年6月翻译 2013年7月修订 目录 前言 ............................... 3 ...

    CaptchaOneServlet.java

    Java Servlet实现的一个验证码生成源码,所引用的工具都是JDK源码里面的,只需要简单在自己的web.xml里面配置一下Servlet映射路径就可以了

    Spring MVC中的DispatcherServlet的使用

    Servlet 自定义的 `Servlet` 继承 `HttpServlet` (Java 服务端组件,接收 HTTP 请求,调用业务逻辑,完成 HTTP 响应) Servlet 生命周期(容器...默认一个 Servlet 映射一个 URL 路径 /user–> UserSe

    .my-config

    Windows 10终端机 安装字体: 电力线: Cascadia (Code|Mono) PL ttf 设定设定档 字体,配色方案"profiles": { "defaults": { "colorScheme" : "Dracula", "fontFace": "Cascadia Code PL" ...

    基于eclipse和java的机票预订管理系统(含报告)

    基于eclipse和java的机票预订管理系统(含报告)包含规范的实验的报告的过程运行时首先需要在本地创建一个数据库(可以使用navicat),...需要添加/flight_management/WebRoot/WEB-INF下的web.xml文件的servlet映射

    struts2+spring2+ibates

    5、JSP/Servlet中获得当前应用的相对路径和绝对路径 JSP中获得当前应用的相对路径和绝对路径 根目录所对应的绝对路径:request.getRequestURI() 文件的绝对路径:application.getRealPath(request.getRequestURI...

    Spring MVC 3.0实战指南.ppt

    《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 ...4、数据转换、格式化、校验 ...物理静态资源路径映射逻辑资源路径 允许利用浏览器的缓存且不当心不同步 AQ?

Global site tag (gtag.js) - Google Analytics