[英]Can't access resources outside WEB-INF folder
我将index.jsp放在WEB-INF中。 然后,我有一个servlet,它将请求分发到该文件。
@WebServlet(name="Home", urlPatterns={"/"})
public class Home extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/index.jsp").forward(request, response);
}
}
我在WEB-INF文件夹之外有一个css文件夹。 它包含css.css文件。
这是index.jsp文件的内容:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" href="<c:url value="/css/css.css" />" rel="stylesheet">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
css文件的内容:
body {
color: red;
}
问题:“ Hello World”一词为什么不变成红色? 为什么index.jsp文件无法访问CSS文件?
看来您正在为所有传入请求映射servlet“ Home”。 因此,当浏览器请求css url时,它会被servlet拦截,并且无法找到它。 您可以更改本地servlet的servlet映射,以便它不会拦截所有请求
@WebServlet(name="Home", urlPatterns={"/home"})
在您的jsp中添加以下内容
<link rel="stylesheet" type="text/css" href="/project-context-root-name/css/myfile.css"/>
如果仍然无法正常工作,请执行以下步骤。
在您的web.xml文件中添加以下内容
<servlet-mapping>
<servlet-name>servlet-name</servlet-name>
<url-pattern>/css/*</url-pattern>
</servlet-mapping>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.