我的网址映射正在转移我的CSS页面

时间:2014-09-07 23:56:42

标签: java css jsp servlets url-mapping

我正在使用简单的Java,Eclipse和Tomcat 7开发动态Web应用程序。

在我做出以下更改之前,一切都运作良好。

我最近添加了一个主页Servlet Home.java和主页jsp Home.jsp,并将servlet映射到web.xml中的URL /,如

 <servlet>
        <display-name>Home</display-name>
        <servlet-name>Home</servlet-name>
        <servlet-class>my_proj.servlets.Home</servlet-class>
    </servlet>

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

Servlet Home.java看起来像:

public class Home extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("Servlet \"Home\" doGet working");
        System.out.println("PathInfo: " + request.getRequestURL());
        //If logged in, go to home page
        request.getRequestDispatcher("/resources/jsp/home.jsp").forward(request, response);
        //If not, go to login/register page
        // TODO
    }

}

并且Home.jsp很长,但除了CSS,图像等资源外,一切都正常工作。它们没有被页面加载。我用

引用它们
<link href="/my_proj/resources/css/custom.css" rel="stylesheet">

原因

由于我在上面的doGet方法中添加了代码,我可以看到查找CSS页面的请求实际上是在Home servlet处结束。例如,这是我在控制台中看到的一部分

Servlet "Home" doGet working
PathInfo: http://localhost:8080/my_proj/resources/css/custom.css

所以我的问题是,如何正确映射我的页面以免引起这种混乱?或者我如何将CSS与依赖此映射系统分开?我不希望web.xml处理这些文件的映射。

2 个答案:

答案 0 :(得分:0)

请提供您的目录结构,例如您的目录结构如:

项目名称\ WebContent \ css然后只需在页面上添加以下行以包含css:

<link href="css/fileName.css" rel="stylesheet">

那就是它,不需要提供完整路径:比如项目名称\ WebContent \ css \ fileName.css

答案 1 :(得分:0)

<link href="/css/fileName.css" rel="stylesheet">