<servlet-mapping>元素在Servlet和URL样式之间定义一个映射。它包含了两个子元素<servlet- name>和<url-pattern>,<servlet-name>元素给出的Servlet名字必须是在<servlet>元素中声明过的Servlet的名字。<url-pattern>元素指定对应于Servlet的URL路径,该路径是相对于Web应用程序上下文根的路径。例如:
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
Servlet 2.5规范允许<servlet-mapping>的<url-pattern>子元素出现多次,之前的规范只允许一个<servlet-mapping>元素包含一个<url-pattern>子元素。我们看下面的例子:
<servlet-mapping>
<servlet-name>welcome</servlet-name>
<url-pattern>/en/welcome</url-pattern>
<url-pattern>/zh/welcome</url-pattern>
</servlet-mapping>
在配置了Servlet与URL样式之间的映射后,当Servlet容器接收到一个请求,它首先确定该请求应该由哪一个Web应用程序来响应。这是通过比较请求URI的开始部分与Web应用程序的上下文路径来确定的。映射到Servlet的路径是请求URI减去上下文的路径,Web应用程序的 Context对象在去掉请求URI的上下文路径后,将按照下面的路径映射规则的顺序对剩余部分的路径进行处理,并且在找到第一个成功的匹配后,不再进行下一个匹配。
容器试着对请求的路径和Servlet映射的路径进行精确匹配,如果匹配成功,则调用这个Servlet来处理请求。
容器试着匹配最长的路径前缀,以斜杠(/)为路径分隔符,按照路径树逐级递减匹配,选择最长匹配的Servlet来处理请求。
如果请求的URL路径最后有扩展名,如.jsp,Servlet容器会试着匹配处理这个扩展名的Servlet。
如果按照前面3条规则没有找到匹配的Servlet,容器会调用Web应用程序默认的Servlet来对请求进行处理,如果没有定义默认的Servlet,容器将向客户端发送HTTP 404错误信息(请求资源不存在)。
在部署描述符中,可以使用下面的语法来定义映射。
以/开始并且以 /* 结束的字符串用来映射路径,例如:
<url-pattern>/admin/*</url-pattern>
如果没有精确匹配,那么对/admin/路径下的资源的所有请求将由映射了上述URL样式的Servlet来处理。
以 *. 为前缀的字符串用来映射扩展名,例如:
<url-pattern>*.do</url-pattern>
如果没有精确匹配和路径匹配,那么对具有.do扩展名的资源的请求将由映射了上述URL样式的Servlet来处理。
以一个单独的/指示这个Web应用程序默认的Servlet,例如:
<url-pattern>/</url-pattern>
如果对某个请求没有找到匹配的Servlet,那么将使用Web应用程序的默认Servlet来处理。
所有其他的字符被用于精确匹配,例如:
<url-pattern>/login</url-pattern>
如果请求/login,那么将由映射了URL样式/login的Servlet来处理。
下面我们看几个请求映射的例子,如表3-2和表3-3所示。
表3-2 Servlet映射
[/img]
表3-3 实际请求映射的结果
去掉上下文路径的剩余路径
Tomcat在%CATALINA_HOME%\conf\web.xml文件中配置了默认的Servlet,配置代码如下:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet </servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
%CATALINA_HOME%\conf\web.xml文件中的配置将被运行在同一个Tomcat实例中的所有Web应用程序所共享。
- 大小: 7.6 KB
- 大小: 8.2 KB
分享到:
相关推荐
`web.xml`文件的最外层标签为`<web-app>`,所有的配置项都需要定义在这个标签内,并且遵循一定的顺序。以下是对`web.xml`主要配置项的详细介绍: #### 三、配置项详解 1. **<display-name>**:该标签用于指定Web...
`web.xml`中的`mime-mapping`元素是Java Web应用中非常关键的一部分,它负责定义文件扩展名与MIME-Type之间的映射关系。通过这种方式,服务器可以准确地告知客户端(通常是浏览器)如何处理特定类型的文件,确保用户...
WEB.XML标准配置注解: <!--Servlet的映射,用来说明客户端IE中输入什么样的地址字符串对应到哪个Servlet的别名--> <!--在该例中在IE地址栏中firstservlet字符串对应到别名为firstservlet的servlet--> <servlet-...
Tomcat 中的 web.xml 文件是用于配置 Web 应用的核心文件,它定义了 Web 应用的基本信息、Filter、Servlet、Session 等信息。本文将详细介绍 web.xml 文件的结构和各个元素的作用。 1. 文件头部声明 web.xml 文件...
`web.xml`文件主要由两部分组成:`<web-app>`元素内的全局配置和`<servlet>`、`<servlet-mapping>`、`<filter>`、`<filter-mapping>`、`<listener>`等元素定义的特定组件配置。 ```xml <web-app> <!-- 全局配置 --...
### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...
### Web.xml配置详解(Servlet 2.3) #### 一、概述 `web.xml`作为Java Web应用程序的核心配置文件,在Servlet 2.3规范中扮演着至关重要的角色。该文件通常位于WEB-INF目录下,用于定义和配置Web应用程序的各种...
`web.xml`文件通常分为三部分:`<web-app>`元素内的全局配置、`<servlet>`元素定义的Servlet和`<servlet-mapping>`元素映射的Servlet。 1. `<web-app>`元素:这是`web.xml`的根元素,包含了所有其他配置。它有一些...
`Web.xml`文件是Servlet容器(如Tomcat、Jetty)解析的配置文件,它为Web应用程序提供了元数据,包括Servlet、过滤器、监听器、会话配置、错误页面等。该文件位于`WEB-INF`目录下,是Java Web应用的标准配置部分。 ...
`Web.xml`是Java Web应用程序中的核心配置文件,它用于配置应用程序的上下文信息、servlet映射、过滤器、监听器等关键组件。以下是对`Web.xml`中常见元素的详细解析: #### <web-app> - **作用**:根元素,所有...
web.xml 文件的根元素是 web-app,DTD 文件规定,web-app 元素的子元素的语法如下:包括 icon、display-name、description、distributable、context-param、filter、filter-mapping、listener、servlet、servlet-...
8. **`<servlet-mapping>`** - **作用**:将servlet映射到特定的URL模式。 - **示例**: ```xml <servlet-mapping> <servlet-name>ExampleServlet</servlet-name> <url-pattern>/example</url-pattern> </...
在Java Web开发中,`web.xml`文件是核心配置文件之一,它定义了应用程序的行为和结构,是Servlet容器(如Tomcat)运行Web应用程序的基础。本文将深入探讨`web.xml 2.4`版本中的关键节点及其详细说明,帮助开发者更好...
最后,`web.xml` 是Web应用的部署描述符,它定义了Servlet、过滤器和监听器等Web组件,以及应用的初始化参数和会话超时等设置。在`web.xml` 中,你需要配置Struts2和Spring的前端控制器,使得它们能够拦截并处理HTTP...
在Java和JSP开发中,`web.xml`文件是一个至关重要的组成部分,它是Servlet容器(如Tomcat)的部署描述符。这个文件包含了关于Web应用程序的配置信息,包括Servlet的定义、过滤器、监听器、会话配置、MIME类型映射、...
web.xml 和 server.xml 是 Tomcat 服务器的重要配置文件,用于配置 Servlet、Servlet Mapping、Session 配置、MIME 类型映射和 Welcome 文件列表等。同时,事件监听器和过滤器也可以在 web.xml 文件中进行配置,以...
### Servlet中Web.xml详解 #### 一、概述 在Servlet技术中,`web.xml`文件起着至关重要的作用。作为Web应用程序的核心配置文件之一,它主要用于定义Servlet容器如何加载和配置Servlet及其相关组件。本文将深入探讨...
</servlet-mapping> ``` 9. **`session-config`元素** - 配置会话管理。 ```xml <session-config> <session-timeout>30</session-timeout> </session-config> ``` 10. **`error-page`元素** - 指定错误...
在Java Web开发中,`web.xml`文件是应用的核心配置文件,它定义了Servlet、过滤器、监听器等组件,并负责映射它们的行为。本文将深入解析`web.xml`配置,帮助开发者理解其背后的原理和用途。 一、web.xml文件概述 `...
通过配置`<filter>`和`<filter-mapping>`元素在web.xml中指定Filter的使用。 综上所述,`javax.servlet` jar包和`javax.servlet.jsp` jar包是Java Web开发不可或缺的部分,它们提供了处理HTTP请求的核心接口和类,...