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

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规范(最终版) PDF

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

    Java™ Servlet 规范.

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

    Servlet与JSP核心编程第2版

    .3.1 servlet的基本结构 3.2 生成纯文本的servlet 3.3 生成html的servlet 3.4 servlet的打包 3.5 简单的html构建工具 3.6 servlet的生命周期 3.7 singlethreadmodel接口 3.8 servlet的调试 第4章 ...

    struts2.4+spring3.1+hibernate4.1的SSH框架

     系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action...

    网页教程《跟姐姐学JSP》

    7.3.1. 请求映射 7.3.2. 过滤链 7.4. filter的详细配置 8. 配置listener监听器 8.1. 使用HttpSessionListener 8.2. 使用HttpSessionBindingListener 9. 封装taglib组件 9.1. 用taglib实现循环 9.2. 关于jstl 10...

    OrderDinner:订餐系统

    Jleopard-MVC基于Servlet 3.1标准的改造开始使用(在web.xml配置Servlet映射) &lt; servlet&gt; &lt; servlet&gt;dispatcherServlet&lt;/ servlet&gt; &lt; servlet&gt;org.jleopard.mvc.servlet.DispatcherServlet&lt;/ servlet&gt; &lt;/ ...

    从Java走向Java+EE+.rar

    5.3 使用Eclipse和Tomcat开发Servlet实例——输出字符串响应 72 5.4 小结 77 第6章 JSP——前后台更好地分离 79 6.1 JSP的概念 79 6.2 JSP页面的组成 80 6.2.1 JSP的指令元素 82 6.2.2 JSP的脚本元素 ...

    septima:Java 和 Sql 的数据驱动应用程序框架

    请求读取、处理和响应写入时支持 Servlet 3.1。 Java 9 java.util.concurrent.Flow会话驱动逻辑和无状态逻辑的执行范围。 支持开箱即用的基于角色的安全性。 True Sql 查询重用。 Sql 实体类 ORM 数据模型。 ...

    Java数据库技术详解 DOC简版

    3.1 SELECT语句基础 3.2 WHERE子句 3.3 ORDER BY子句 3.4 GROUP BY和HAVING子句 3.5 INSERT语句 3.6 UPDATE语句 3.7 DELETE语句 3.8 本章小结 第4章 PL/SQL 4.1 PL/SQL简介 4.2 PL/SQL基础 ...

    用web.xml控制Web应用的行为

    用web.xml控制Web应用的行为 目录 1 定义头和根元素 2 2 部署描述符文件内的元素次序 2 3 分配名称和定制的UL 3 3.1 分配名称 3 3.2 定义定制的URL 5 3.3 命名JSP页面 6 4 禁止激活器...

    java web技术开发大全(最全最新)

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...

    健身房管理信息系统设计.doc

    请求会被控制器 截获,并调用在Web应用启动时就加载并初始化核心控制器组件ActionServlet,然后通 过ActionServlet从Struts- config.xml文件中读取预先设置的配置信息,并且把他们存放到各个配置对象中。控制 器根据...

    Java Web程序设计教程

    3.1开发第一个jsp+servlet应用 33 3.1.1创建工程 33 3.1.2编写程序 34 3.1.3部署应用 35 3.2认识jsp 36 3.2.1jsp的工作原理 37 3.2.2jsp注释方式 37 3.2.3jsp声明方式 38 3.2.4jsp表达式的应用 39 3.2.5jsp...

    O r a c l e与X M L

    这一章涵盖了iFS的体系结构,它作为XML文件系统的行为特性,以及它怎样在内部使用XML来把文件数据映射到关系模式。本章中还包括了关于通用文件操作的几个代码实例。第6章涵盖了Oracle8i的文本搜索引擎—interMedai ...

    springboot知识点整理

    3.1 日志框架分类和选择 42 3.2 SLF4j使用 43 3.3 其他日志框架统一转换成slf4j+logback 44 3.4 Spring Boot日志使用 45 3.5 Spring Boot默认配置 47 3.6 指定日志文件和日志Profile功能 52 3.7 切换日志框架(不...

    hibernate+中文api

    1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6...

    JSP高级编程          

    3.2 实体EJB 的开发技术之二——BMP EJB 3.3 EJB 开发实例封装数据源 3.4 本章小结 第4 章 JSP 与J2EE 分布式处理技术 4.1 J2EE 和分布式处理技术 4.2 远程方法调用RMI 技术 4.3 CORBA 技术 4.4 JNDI 技术 4.5 本章...

    JSP高级编程(全)

    3.2 实体EJB 的开发技术之二——BMP EJB 3.3 EJB 开发实例封装数据源 3.4 本章小结 第4 章 JSP 与J2EE 分布式处理技术 4.1 J2EE 和分布式处理技术 4.2 远程方法调用RMI 技术 4.3 CORBA 技术 4.4 JNDI 技术 4.5 本章...

    SpringBoot新手学习手册

    3.1、静态资源访问 5 3.2、渲染Web页面 5 3.3、使用Freemarker模板引擎渲染web视图 6 3.3.1、pom文件引入: 6 3.3.2、后台代码 6 3.3.3、前台代码 6 3.3.4、Freemarker其他用法 7 3.3.5、Freemarker配置 8 ...

Global site tag (gtag.js) - Google Analytics