我试图用一个非常简单的例子将所有请求映射到特定的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控制台中看到了下一条消息:
如果删除该映射并让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/>
元素中指定的资源的解决方案。
感谢您的帮助。