`
jinnianshilongnian
  • 浏览: 21504205 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2418707
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:3008815
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5639508
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:259932
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1597333
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:250226
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5858969
Group-logo
跟我学Nginx+Lua开...
浏览量:702014
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:785227
社区版块
存档分类
最新评论

Servlet3.1规范翻译——映射请求到Servlet

 
阅读更多

《Servlet3.1规范》翻译目录 

映射请求到Servlet

 

Web容器需要本章描述的映射技术去映射客户端请求到Servlet(该规范2.5以前的版本,使用这些映射技术是作为一个建议而不是要求,允许servlet容器各有其不同的schema用于映射客户端请求到servlet)。

12.1 使用URL路径

在收到客户端请求时,web容器确定转发到哪一个Web应用。选择的Web应用必须具有最长的上下文路径匹配请求URL的开始。当映射到Servlet时,URL匹配的一部分是上下文。

Web容器接下来必须用下面描述的路径匹配步骤找出servlet来处理请求。

用于映射到Servlet的路径是请求对象的请求URL减去上下文和路径参数部分。下面的URL路径映射规则按顺序使用。使用第一个匹配成功的且不会进一步尝试匹配:

1. 容器将尝试找到一个请求路径到servlet路径的精确匹配。成功匹配则选择该servlet

2. 容器将递归地尝试匹配最长路径前缀。这是通过一次一个目录的遍历路径树完成的,使用‘/’字符作为路径分隔符。最长匹配确定选择的servlet

3. 如果URL最后一部分包含一个扩展名(如 .jsp),servlet容器将视图匹配为扩展名处理请求的Servlet。扩展名定义在最后一部分的最后一个‘.’字符之后。

4. 如果前三个规则都没有产生一个servlet匹配,容器将试图为请求资源提供相关的内容。如果应用中定义了一个“defaultservlet,它将被使用。许多容器提供了一种隐式的default servlet用于提供内容。

容器必须使用区分大小写字符串比较匹配。

12.2 映射规范

web应用部署描述符中,以下语法用于定义映射:

以‘/’字符开始、以‘/*’后缀结尾的字符串用于路径匹配。

以‘*.’开始的字符串用于扩展名映射。

空字符串“”是一个特殊的URL模式,其精确映射到应用的上下文根,即,http://host:port/<context-root>/请求形式。在这种情况下,路径信息是‘/’且servlet路径和上下文路径是空字符串(“”)。

只包含“/”字符的字符串表示应用的“defaultservlet。在这种情况下,servlet路径是请求URL减去上下文路径且路径信息是null

所以其他字符串仅用于精确匹配。

12.2.1 隐式映射

如果容器有一个内部的JSP容器,*.jsp扩展名映射到它,允许执行JSP页面的要求。该映射被称为隐式映射。如果Web应用定义了一个*.jsp映射,它的优先级高于隐式映射。

Servlet容器允许进行其他的隐式映射,只要显示映射的优先。例如,一个*.shtml隐式映射可以映射到包含在服务器上的功能。

12.2.2 示例映射集合

请看下面的一组映射:

12-1  示例映射集合

Path Pattern

Servlet

/foo/bar/*

servlet1

/baz/*

servlet2

/catalog

servlet3

*.bop

servlet4

 

将产生以下行为:

12-2  传入路径应用于示例映射

Incoming Path

Servlet Handling Request

/foo/bar/index.html

servlet1

/foo/bar/index.bop

servlet1

/baz

servlet2

/baz/index.html

servlet2

/catalog

servlet3

/catalog/index.html

“default servlet

/catalog/racecar.bop

servlet4

/index.bop

servlet4

 

请注意,在/catalog/index.html/catalog/racecar.bop的情况下,不使用映射到“/catalog”的servlet,因为不是精确匹配的。


2
6
分享到:
评论

相关推荐

    Servlet3.1规范(最终版)高清-完整-目录

    2. **异步Servlet处理**:Servlet3.1引入了异步处理能力,允许Servlet在接收到请求后,将其挂起并返回,然后在后台执行耗时的操作,如数据库查询或远程调用,最后再将结果发送回客户端。这提高了并发性能,减轻了...

    Servlet3.1规范(最终版).pdf

    还有,Servlet3.1规范改进了URL路径映射,允许更加灵活的路径匹配。例如,可以使用`@WebServlet("/myPath/*")`来匹配所有以"/myPath/"开头的URL,这简化了路由规则的设定。 总之,Servlet3.1规范带来了许多创新和...

    Servlet3.1规范说明中文版_英文版.rar

    Servlet 3.1 规范是Java服务器端编程的重要组成部分,是Java EE 7标准的一部分。...通过阅读提供的"Servlet 3.1规范说明中文版"和"Servlet3.1规范(最终版)"文档,可以更全面地了解这些概念并应用于实际开发中。

    Web开发中文手册之Servlet3.1规范.zip

    Servlet3.1引入了更强大的异步处理模型,允许Servlet在接收到请求后,不立即返回响应,而是启动一个后台线程进行处理。这极大地改善了服务器性能,特别是在处理长时间运行的任务时,避免了阻塞主线程,提升了并发...

    servlet3.1规范

    Java Servlet 3.1 规范是Java Web开发中的一个重要里程碑,它定义了Servlet容器(如Tomcat、Jetty)与Web应用程序之间的交互标准。这个规范不仅提供了对HTTP协议的处理,还包括了对WebSocket、异步处理、依赖注入等...

    Servlet3.1规范(最终版).中文

    Servlet3.1规范是Java Web开发中的重要标准,它定义了服务器端Java应用程序接口,用于处理HTTP请求并生成响应。这个规范的最终版为开发者提供了更高效、更灵活的编程模型,增强了对异步处理的支持,并引入了许多新的...

    Servlet3.1规范(最终版) PDF

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

    Servlet3.1规范

    Servlet3.1规范是Java Web开发中的一个重要里程碑,它在Servlet3.0的基础上进行了一系列的增强和优化,为开发者提供了更多的灵活性和效率提升。这个规范的最终版于2013年07月发布,旨在改善服务器端应用程序的性能...

    spring mvc3.2.7+servlet3.1(jetty)+maven3+eclipse

    在构建Web应用程序时,"spring mvc3.2.7 + servlet3.1(jetty) + maven3 + eclipse"的组合提供了一种高效且灵活的开发环境。这个配置涉及了多个关键组件,它们共同作用于项目的搭建、管理和运行。 **Spring MVC ...

    基于servlet3.1,实现模块化扩展.zip

    本项目"基于servlet3.1,实现模块化扩展"旨在利用这些特性来构建一个可扩展、模块化的Web应用程序。 Servlet 3.1引入了以下几个关键知识点: 1. **异步处理**:Servlet 3.1引入了异步Servlet的概念,允许在服务...

    servlet-3_1-final.rar_java servlet3_servlet 3.1 demo

    随着技术的发展,Servlet规范也不断进化,Servlet 3.1作为其重要的版本,引入了许多增强功能和优化,极大地提高了开发效率和应用性能。本篇将围绕"Servlet 3.1"这一主题,详细阐述其主要特性,并结合提供的"Servlet ...

    servlet3.1

    Servlet 3.1引入了更强大的异步处理能力,允许Servlet在接收到请求后不立即返回响应,而是启动一个异步操作并在完成后通知调用者。这样可以避免阻塞线程,提高服务器性能。通过`HttpServletRequest.startAsync()`...

    servlet-3_1-final.pdf

    同时,Servlet 3.1 规范支持异步处理请求,允许 Servlet 异步处理请求,无需一直占用线程直到响应返回,提高了服务器的并发处理能力。 最后,作为规范的一部分,也提供了一些最佳实践和设计模式,以帮助开发者有效...

    jsp-api.jar(2.3)与servlet-api.jar (3.1)

    1. **异步处理**:Servlet 3.1引入了异步Servlet,使得服务器可以在不阻塞线程的情况下处理请求,提高了性能和可扩展性。 2. **WebSocket支持**:Servlet 3.1为WebSocket提供了一种标准的集成方式,使得服务器和...

    servlet规范

    7. **URL映射**:通过web.xml配置文件或注解,可以将URL路径映射到特定的Servlet,实现请求分发。 8. **异步处理**:Servlet 3.0引入了异步处理能力,允许Servlet在`service()`方法内启动一个异步操作,释放请求...

    servlet-3-1-specification.pdf

    根据提供的文件内容,我们可以了解到《Java Servlet 3.1规范》中文版详细地介绍了Servlet技术的基础知识、功能、以及与Java EE的关系。下面将对文件中的关键知识点进行详细说明: 1. Servlet简介 Servlet是一种运行...

    servlet-4.1.34.jar包

    当服务器启动或首次接收到对Servlet的请求时,Servlet容器(如Tomcat)会加载并初始化Servlet。然后,每当有新的请求到达,Servlet容器都会调用Servlet的service()方法,根据请求类型分派到doGet()或doPost()等具体...

    Java™ Servlet 规范.

    1.6 与 Java Servlet 规范 2.5 版本间的兼容性 ..............................................................................................14 1.6.1 监听器(Listener)顺序 .................................

    servlet3.0规范

    Servlet 3.0是Java Web开发中的一个关键规范,它极大地扩展了Servlet API的功能,并引入了许多新特性,使得Web应用程序的开发更为灵活和高效。在这个规范中,Java Servlet技术进行了许多改进,旨在提升性能,简化...

    servlet 2.3中文规范

    Servlet 2.3中文规范是Java Web开发领域中极为重要的文档,它...尽管后续版本的Servlet规范(如Servlet 3.0、3.1、4.0)引入了许多新的特性和改进,但Servlet 2.3的基础知识仍然是理解和学习现代Java Web开发的基石。

Global site tag (gtag.js) - Google Analytics