一尘不染

欢迎文件列表不适用于码头+spring

spring-mvc

我在Spring 3.2.4中使用Jetty 8.1.4。以下是我的web.xml文件。我必须在WEB-INF
index.html文件,我想,当我做到这一点页面被打http://myapp.com/或简单http://myapp.com但我得到404。如果我做HTTP
://myapp.com/index.html它起作用。我不确定我缺少什么。另外,如果我必须在下面的url模式中使用/或/
*,我会感到困惑,我都尝试了。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    id="DOMAINAPPROVALGUI" version="2.4"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>myapp-ui</display-name>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/myapp-servlet.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <session-config>
        <session-timeout>10</session-timeout>
    </session-config>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>myappname</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>myappname</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

阅读 204

收藏
2020-06-01

共1个答案

一尘不染

Jetty 8是EOL(寿命终止) ,升级到Jetty9。(此处的答案是根据Jetty 9的操作方式提供的。)

<welcome-file-list>DefaultServlet处理的一部分(根据servlet规范)。

您对myappnameat的声明<url-pattern>/*</url-pattern>有效地阻止了at
DefaultServlet做任何事情。

您的配置基本上说“将所有请求发送到我的DispatcherServlet”。

这甚至包括静态文件服务,欢迎文件处理,默认处理,错误处理,分派等等。

至于选择哪种网址格式,则取决于您。

有使用Spring的方法很多,在当前的配置/*是一样有效,其他人都在它*.do*.dispatch/dispatch/*

您必须确定最适合您的Web应用的内容,并调整Spring在内部的使用以满足您的需求(例如,如何声明RequestMapping)

现在您知道了为什么<welcome-file-list>不起作用,您可以进行调整以不使用标准servlet <welcome-file- list>(在Spring内部使用),或者调整分派器servlet
url模式以允许servlet容器(Jetty)为您的静态文件提供服务,处理您申报的<welcome-file-list>

2020-06-01