`

Servlet2.4规范之映射请求

阅读更多

Servlet2.4规范之映射请求

映射请求到Servlet


注:此文档由mErcy翻译Servlet2.4规范而来,转载请声明出处,不得用于商业性质。


映射请求技术在这章中描述,它需要Web容器映射客户端的请求到Servlet。

11.1 URL路径用途

在接收客户端请求之上,Web容器决定了Web应用程序转递请求。Web应用程序选择的转递必须有最长上下文路径,其匹配请求的URL的起点。当映射到servlet时,匹配的URL的部分是上下文路径。

用于映射到servlet的路径是来自请求对象减去上下文路径和路径参数之后的URL。URL路径映射规则的顺序如下面,第一个成功的匹配被采用之后,不再进行匹配尝试:

1.
容器将会尝试找到一个精确匹配的到Servlet请求路径。一个成功的匹配选择servlet。
2.
容器会递归地尝试匹配最长的路径前缀。使用"/"字符作为路径分隔符,在一次逐渐下降寻找文件树形目录路径后完成,最长精确匹配决定servlet的选择。
3.
若在URL路径中最后片段包含一个文件扩张名(比如:*.jsp),servlet容器将会尝试为扩展名来匹配一个servlet,使其处理请求。扩展名被定义为最后片段的部分,它是在'.'字符之后的。
4.
若按照上述三种规则么有找到匹配的结果,那么容器将会尝试提供合理的请求资源目录,若定义了“defalut”servlet被定义在应用程序中,那么这个“default”的servlet被启用。
容器必须是字符大小写敏感比较作为匹配。

11.2映射规范

在Web应用程部署文件中,下面语义用作定义映射:

•以"/"字符开始并且以"/*"的后缀作为结束的字符串被用作路径映射。

•以"*."前缀开始的字符串用于扩展映射。

•仅包含"/"字符的字符串指示"default"应用程序servlet,这这种情况下,servlet路径是请求URI减去上下文路径,并且path info为null。

•其他所有字符仅被用于精确匹配。

11.2.1隐式映射

如果容器有一个内部的JSP容器的话,*.jsp的扩展名被映射到jsp,这个扩展名允许JSP页面被执行当需要时。这种映射术语为隐式映射。若一个*.jsp映射被Web应用程序定义,它的映射优先于隐式优先。

Servlet容器被允许制作其他隐式映射在显式映射优先的时候。比如,一个隐式映射*.shtml能被映射到到功能性包含在服务器上。

11.2.2 映射设置例子

考虑上面映射设置:

Example Set of Maps:

Path Pattern    Servlet

/foo/bar/*       servlet1

/baz/*          servlet2

/catalog        servlet3

*.bop          servlet4


下面行为结果:
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/reacecar.bop例子中,servlet映射"/catalog"is没有被采用因为它不是精确匹配。
分享到:
评论
2 楼 mercyblitz 2008-06-26  
这里仅为翻译!呵呵,没有什么感想!
1 楼 racnow 2008-06-26  
这些孙鑫的书里好像都讲过,或许还比你详细哦

相关推荐

    Servlet2.4规范(pdf)

    Servlet 2.4 规范是Java服务器端编程的一个重要里程碑,它定义了Servlet和JavaServer Pages (JSP) 的核心API,为开发基于Java的Web应用程序提供了标准。这一规范在Java EE 5之前广泛使用,是理解Web服务构建基础的...

    servlet-2_4-fr-spec-doc.rar_doc_servlet 2.4 spec_servlet api_ser

    这个规范定义了Servlet API的版本2.4,为Web应用程序提供了处理HTTP请求和响应的能力。Servlet技术允许开发人员创建动态、交互式的Web应用,而无需依赖于特定的服务器平台。以下是关于Servlet 2.4规范和API的一些...

    Servlet2.4 api 帮助文档

    Servlet 2.4 API是Java Servlet规范的第三个版本,发布于2003年,它在Servlet 2.3的基础上增加了新的特性和改进。 二、Servlet生命周期 Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。在Servlet 2.4中,...

    servlet2.4doc

    Servlet 2.4是Java ...综上,"servlet2.4doc"可能包含了关于Servlet 2.4规范的详细文档,涵盖了从Servlet配置、请求响应处理、过滤器到会话管理、安全性、国际化等各个方面的内容,是Java Web开发者的宝贵参考资料。

    Servlet2.4-1帮助文档(英文)

    这个"Servlet2.4-1帮助文档(英文)"的CHM文件很可能是官方发布的API文档,包含了Servlet 2.4规范的所有类、接口、方法和注解的详细说明,是学习和开发Servlet应用的重要参考资料。通过查阅这个文档,开发者可以深入...

    servlet2.4api-javadoc 半中文

    8. **Filter接口和FilterChain类**:Servlet 2.4引入了过滤器(Filter)概念,允许在请求到达Servlet之前进行预处理,或在响应离开Servlet之后进行后处理。FilterChain允许过滤器链式调用。 9. **Listener接口**:...

    Servlet 2.4 又有哪些新变化

    Servlet 2.4 是对Servlet 2.3版本的一个重要更新,虽然它没有引入革命性的新特性,但着重于增强已有功能的清晰度和互操作性。以下是Servlet 2.4中主要的变化和改进: 1. **HTTP/1.1和J2SE 1.3支持**: Servlet 2.4...

    servlet2.4和jsper2.0的源代码

    Servlet 2.4和JSP 2.0是Java Web开发中的两个重要版本,它们为构建动态网页提供了基础框架和规范。在这个压缩包中,包含了这两个版本的核心源代码,为深入理解它们的工作原理和实现机制提供了宝贵的资源。 Servlet ...

    servelt specification

    这里我们关注的是Servlet 2.4和2.5两个版本的规范。 Servlet 2.4规范: Servlet 2.4是Java Servlet API的一个关键里程碑,发布于2003年,它是J2EE 1.4的一部分。这个版本引入了许多改进和新特性: 1. **Filter**:...

    servlet api

    这个版本是2.4,是Servlet技术的一个经典版本,提供了稳定且广泛支持的功能。在本文中,我们将深入探讨Servlet API的关键概念、功能以及如何使用它来开发web应用。 1. **Servlet概述** Servlet是一个Java类,它...

    Java™ Servlet 规范.

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

    servlet2.5源码

    Servlet 2.5是Java Servlet规范的一个版本,它在2006年发布,是对Servlet 2.4的升级,引入了一些新特性以提升Web应用的开发效率和灵活性。在这个源码包中,你将能够深入理解Servlet的工作原理以及如何在实际开发中...

    servlet入门servlet入门

    4. **成熟的技术体系**:Servlet规范经过多年的演化和完善,提供了一整套成熟的API和框架,为开发者提供了丰富的工具和资源。 #### 三、创建第一个Servlet程序 下面通过一个简单的示例——“Hello World”Servlet...

    Servlet3.1规范(最终版) PDF

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

    servlet各个版本的区别

    2.5版本:此版本对servlet规范进行了更进一步的改进,特别是在2.4版本的基础上解决了多个URL不能映射到同一个servlet的问题。此外,servlet 2.5版本还提供了更多的编程便利性,例如,与Servlet API的更好集成、更...

    servlet技术初步入门

    Servlet技术是Java EE(以前称为J2EE)中用于创建动态Web应用程序的核心技术之一。它是一种在Web服务器端运行的Java程序,专门设计用来处理来自Web浏览器的HTTP请求,并生成相应的HTTP响应。本文将引导您初步了解...

    发布Servlet程序到服务器上

    a.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">Servlet 技术是Java在...

    servlet-api-2.5.jar和jsp-api-2.1.jar

    Servlet API 2.5与JSP API 2.1是Java Web开发中两个至关重要的库文件,它们分别提供了Servlet和JSP(JavaServer Pages)的技术规范。这两个API版本的发布,为开发者提供了处理Web应用程序的强大工具,使得动态网页的...

    java Servlet学习笔记

    在web.xml配置文件中声明Servlet,指定URL映射。 1.5 使用MyEclipse开发Servlet MyEclipse是集成开发环境,提供了便捷的Servlet创建和部署功能。通过向导可以直接创建Servlet,自动生成模板代码,并自动配置web.xml...

    Servlet 2.5 API

    这个API是Java Servlet规范的第2.5版本,它在Servlet 2.4的基础上进行了一些增强和改进,以更好地适应不断变化的Web开发需求。 一、Servlet接口 Servlet接口是Servlet的核心,所有Servlet都必须实现这个接口。它...

Global site tag (gtag.js) - Google Analytics