基于Servlet的Web应用,部署描述文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Transaction Monitor</display-name>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/application-context.xml</param-value>
</context-param>
<filter>
<filter-name>encoding-filter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding-filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.do</welcome-file>
</welcome-file-list>
</web-app>
在这里,使用的是SpringMVC(但是也许使用Struts的话),问题可能也类似(没试过)
虽然在welcome-file-list中配置了index.do,不过实际上总是返回404错误,提示找不到。但如果直接在地址中输入完整的URL(含index.do),则总是可以访问。
参考了网友一篇文章:
http://yjshengshe.iteye.com/blog/641934
在应用根目录下添加一个空文件(或者任何内容的文件),只要文件名为 index.do 就可以解决如上问题。
虽然这招看上去有点猥琐,我还是想了想原因。在请求地址没有index.do的情况下(例如:http://localhost:8080/appname/ ,这个时候应答这个请求的是tomcat自身的web请求处理器,并且这个请求不符合 *.do的模式,所以也不会转发给springmvc处理。tomcat自带的web服务器只是简单的检查一下有没有index.do这个资源,没有的就直接返回了404.
为了避免tomcat直接返回404,添加一个假的index.do资源,tomcat于是就傻傻通过welcome-file-list找到并且认可index.do这个资源,并且匹配这个资源;然后发现其符合*.do的URL模式,于是就转交给springmvc了。
如果我的推测合理,那么这种结果给我的感觉不是很舒坦。
分享到:
相关推荐
在 Web 应用程序中,事件监听器和过滤器可以在 web.xml 文件中进行配置,例如: <listener-class>com.example.MyServletContextListener</listener-class> 在上面的配置中,定义了一个名为 ...
9. **<welcome-file-list>**:用于配置Web应用启动时的欢迎页面列表。 - `<welcome-file>`:欢迎页面的名称。 10. ****:用于配置JSP标签库的信息。 - `<taglib-uri>`:标签库的URI。 - `<taglib-location>`:...
本文档将深入探讨Tomcat中的两个核心配置文件:`web.xml`和`server.xml`,并提供详细的配置说明和实例。 ### 一、Tomcat介绍 1.1 **Tomcat简介** Tomcat是开源的Servlet容器,它实现了Java Servlet和JavaServer ...
`Web.xml`文件是Servlet容器(如Tomcat、Jetty)解析的配置文件,它为Web应用程序提供了元数据,包括Servlet、过滤器、监听器、会话配置、错误页面等。该文件位于`WEB-INF`目录下,是Java Web应用的标准配置部分。 ...
`web.xml`是Java Web应用程序中的核心配置文件,用于描述和配置Web应用程序的各种属性、组件及其行为。本文档将详细解析`web.xml`中的各个元素及其功能,帮助开发者更好地理解和使用该文件。 #### 二、常用元素及其...
web.xml是Java Servlet规范定义的一个部署描述文件,用于配置Java Web应用程序。它遵循XML的规则,必须有一个唯一的根节点,大小写敏感,并且标签需要严格配对。在大型Web工程中,web.xml文件非常重要,因为它提供了...
通过`<welcome-file-list>`元素指定用户访问应用时默认显示的页面,如`<welcome-file>index.jsp</welcome-file>`。 8. **指定处理错误的页面** - **error-code元素**:针对特定HTTP状态码,如`<error-page><error...
`web.xml`是Java Web应用的核心配置文件,用于定义Servlet、过滤器、监听器以及其他相关组件的行为和配置。它是按照Servlet规范定义的标准格式编写,独立于任何特定的应用服务器,如Tomcat。以下是对`web.xml`文件中...
要修改默认主页,可以在`web.xml`中调整`<welcome-file-list>`元素内的文件顺序。例如,要将`index.jsp`设为默认主页,可以将`index.jsp`移至列表首位。 ### 应用专用配置 每个Web应用还可以有自己的配置文件`WEB-...
在Java Web开发中,`web.xml`文件是核心配置文件之一,它定义了应用程序的行为和结构,是Servlet容器(如Tomcat)运行Web应用程序的基础。本文将深入探讨`web.xml 2.4`版本中的关键节点及其详细说明,帮助开发者更好...
在Java和JSP开发中,`web.xml`文件是一个至关重要的组成部分,它是Servlet容器(如Tomcat)的部署描述符。这个文件包含了关于Web应用程序的配置信息,包括Servlet的定义、过滤器、监听器、会话配置、MIME类型映射、...
在 Tomcat 环境下,Web.XML 文件是必不可少的,用于配置 Web 应用程序的各种参数。本文将详细介绍 Web.XML 文件的配置详解。 一、定义头和根元素 在 Web.XML 文件中,必须以一个 XML 头开始,声明 XML 版本和字符...
在Java Web开发中,`web.xml`是部署描述符的核心组成部分,它定义了Web应用程序的配置信息。此文件位于WEB-INF目录下,被服务器用来解析Web应用的各种设置,如Servlet映射、过滤器配置、监听器注册等。下面将对`web....
其次,需要在 web.xml 文件中添加一个 welcome-file-list 节点,指定项目的欢迎页面。例如:<welcome-file-list><welcome-file>JsGame2.html</welcome-file></welcome-file-list>。这里的 welcome-file-list 节点...
`Web.xml`是Java Web应用程序中的核心配置文件,它用于配置应用程序的上下文信息、servlet映射、过滤器、监听器等关键组件。以下是对`Web.xml`中常见元素的详细解析: #### <web-app> - **作用**:根元素,所有...
在Java的Web应用中,Tomcat作为常用的Servlet容器,其配置文件`web.xml`起着至关重要的作用。它是Web应用程序的部署描述符,定义了应用的行为、组件、安全性和资源引用等信息。以下是对`web.xml`文件中各主要元素的...
`web.xml`是Servlet容器(如Tomcat、Jetty等)启动时读取的配置文件,用于指导服务器如何处理Web应用中的请求和资源。通过这个文件,你可以设置初始化参数、映射Servlet、配置过滤器、声明安全约束等。 2. **基本...
- 在 `web.xml` 中可以通过 `<welcome-file-list>` 元素来指定一系列欢迎页。 - 当用户访问应用根目录时,服务器会自动寻找这些欢迎页,并按照顺序返回第一个存在的页面。 - 示例代码: ```xml <welcome-file-...