繁体   English   中英

无法访问WEB-INF文件夹之外的资源

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM