我正在使用简单的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处理这些文件的映射。
答案 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">