`

关于Tomcat中部署Web应用,web.xml中的welcome-file-list配置

阅读更多
基于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了。

如果我的推测合理,那么这种结果给我的感觉不是很舒坦。
1
0
分享到:
评论

相关推荐

    tomcat配置文件web.xml与server.xml解析

    在 Web 应用程序中,事件监听器和过滤器可以在 web.xml 文件中进行配置,例如: &lt;listener-class&gt;com.example.MyServletContextListener&lt;/listener-class&gt; 在上面的配置中,定义了一个名为 ...

    web.xml配置文件详解

    9. **&lt;welcome-file-list&gt;**:用于配置Web应用启动时的欢迎页面列表。 - `&lt;welcome-file&gt;`:欢迎页面的名称。 10. ****:用于配置JSP标签库的信息。 - `&lt;taglib-uri&gt;`:标签库的URI。 - `&lt;taglib-location&gt;`:...

    Tomcat web.xml,server.xml中详细配置说明文档

    本文档将深入探讨Tomcat中的两个核心配置文件:`web.xml`和`server.xml`,并提供详细的配置说明和实例。 ### 一、Tomcat介绍 1.1 **Tomcat简介** Tomcat是开源的Servlet容器,它实现了Java Servlet和JavaServer ...

    Web.xml配置文件.pdf

    `Web.xml`文件是Servlet容器(如Tomcat、Jetty)解析的配置文件,它为Web应用程序提供了元数据,包括Servlet、过滤器、监听器、会话配置、错误页面等。该文件位于`WEB-INF`目录下,是Java Web应用的标准配置部分。 ...

    web.xml详细说明

    `web.xml`是Java Web应用程序中的核心配置文件,用于描述和配置Web应用程序的各种属性、组件及其行为。本文档将详细解析`web.xml`中的各个元素及其功能,帮助开发者更好地理解和使用该文件。 #### 二、常用元素及其...

    web.xml各种配置

    web.xml是Java Servlet规范定义的一个部署描述文件,用于配置Java Web应用程序。它遵循XML的规则,必须有一个唯一的根节点,大小写敏感,并且标签需要严格配对。在大型Web工程中,web.xml文件非常重要,因为它提供了...

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

    通过`&lt;welcome-file-list&gt;`元素指定用户访问应用时默认显示的页面,如`&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;`。 8. **指定处理错误的页面** - **error-code元素**:针对特定HTTP状态码,如`&lt;error-page&gt;&lt;error...

    web.xml配置文件详解[文].pdf

    `web.xml`是Java Web应用的核心配置文件,用于定义Servlet、过滤器、监听器以及其他相关组件的行为和配置。它是按照Servlet规范定义的标准格式编写,独立于任何特定的应用服务器,如Tomcat。以下是对`web.xml`文件中...

    Tomcat教程-tomcat应用部署.docx

    要修改默认主页,可以在`web.xml`中调整`&lt;welcome-file-list&gt;`元素内的文件顺序。例如,要将`index.jsp`设为默认主页,可以将`index.jsp`移至列表首位。 ### 应用专用配置 每个Web应用还可以有自己的配置文件`WEB-...

    web.xml 2.4详细说明

    在Java Web开发中,`web.xml`文件是核心配置文件之一,它定义了应用程序的行为和结构,是Servlet容器(如Tomcat)运行Web应用程序的基础。本文将深入探讨`web.xml 2.4`版本中的关键节点及其详细说明,帮助开发者更好...

    java/jsp web.xml详解

    在Java和JSP开发中,`web.xml`文件是一个至关重要的组成部分,它是Servlet容器(如Tomcat)的部署描述符。这个文件包含了关于Web应用程序的配置信息,包括Servlet的定义、过滤器、监听器、会话配置、MIME类型映射、...

    web.xml配置详解

    在 Tomcat 环境下,Web.XML 文件是必不可少的,用于配置 Web 应用程序的各种参数。本文将详细介绍 Web.XML 文件的配置详解。 一、定义头和根元素 在 Web.XML 文件中,必须以一个 XML 头开始,声明 XML 版本和字符...

    web.xml元素详解

    在Java Web开发中,`web.xml`是部署描述符的核心组成部分,它定义了Web应用程序的配置信息。此文件位于WEB-INF目录下,被服务器用来解析Web应用的各种设置,如Servlet映射、过滤器配置、监听器注册等。下面将对`web....

    Tomcat部署项目去除工程名.doc

    其次,需要在 web.xml 文件中添加一个 welcome-file-list 节点,指定项目的欢迎页面。例如:&lt;welcome-file-list&gt;&lt;welcome-file&gt;JsGame2.html&lt;/welcome-file&gt;&lt;/welcome-file-list&gt;。这里的 welcome-file-list 节点...

    Web.xml常用元素

    `Web.xml`是Java Web应用程序中的核心配置文件,它用于配置应用程序的上下文信息、servlet映射、过滤器、监听器等关键组件。以下是对`Web.xml`中常见元素的详细解析: #### &lt;web-app&gt; - **作用**:根元素,所有...

    Tomcat中web.xml文件的详细说明

    在Java的Web应用中,Tomcat作为常用的Servlet容器,其配置文件`web.xml`起着至关重要的作用。它是Web应用程序的部署描述符,定义了应用的行为、组件、安全性和资源引用等信息。以下是对`web.xml`文件中各主要元素的...

    web.xml配置详细介绍(CHM)

    `web.xml`是Servlet容器(如Tomcat、Jetty等)启动时读取的配置文件,用于指导服务器如何处理Web应用中的请求和资源。通过这个文件,你可以设置初始化参数、映射Servlet、配置过滤器、声明安全约束等。 2. **基本...

    jsp web.xml文件的作用及基本配置.docx

    - 在 `web.xml` 中可以通过 `&lt;welcome-file-list&gt;` 元素来指定一系列欢迎页。 - 当用户访问应用根目录时,服务器会自动寻找这些欢迎页,并按照顺序返回第一个存在的页面。 - 示例代码: ```xml &lt;welcome-file-...

Global site tag (gtag.js) - Google Analytics