使用Tomcat 8在web.xml中进行Servlet JSP映射

时间:2016-07-23 09:37:48

标签: java jsp tomcat servlets web.xml

我试图用一个非常简单的例子将所有请求映射到特定的JSP。我的web.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">

    <display-name>Spring MVC Static Resources</display-name>

    <servlet>
        <servlet-name>StaticServlet</servlet-name>
        <jsp-file>/index.jsp</jsp-file>
    </servlet>

    <servlet-mapping>
        <servlet-name>StaticServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

这是我的index.jsp:

<!DOCTYPE html>
<html lang="en">
<head>
    <link type="text/css" rel="stylesheet" href="resources/css/main.css" />
    <script type="text/javascript" src="resources/js/jquery.1.10.2.min.js"></script>
    <script type="text/javascript" src="resources/js/main.js"></script>
</head>
<body>
<h1>1. Test CSS JSP</h1>

<h2>2. Test JS JSP</h2>
<div id="msg"></div>

</body>
</html>

映射工作正常,问题是当JSP尝试加载<head/>中的CSS和JS文件时。然后我在Chrome控制台中看到了下一条消息:

enter image description here

如果删除该映射并让web.xml像这样简单:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">

    <display-name>Spring MVC Static Resources</display-name>

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

</web-app>

然后正确加载资源。

我尝试创建一个index.html文件并放在我的JSP代码中,然后放入我的JSP下一行:

<%@ include file="index.html" %>

但结果是一样的。

总而言之,映射工作正常,但我找不到加载<head/>元素中指定的资源的解决方案。

感谢您的帮助。

0 个答案:

没有答案