在servlet名称后添加斜杠会导致不加载CSS和图像

问题描述 投票:0回答:1

我正在设置一个简单的servlet来充当转发器。基本上这样你就可以用这个http://localhost:8080/WebProjectName/ServletName/foo/bar而不是像这个http://localhost:8080/WebProjectName/Main.jsp?par1=foo&par2=bar来打页面

然而,它似乎打破了我甚至不知道从哪里开始寻找的方式。当我去这个http://localhost:8080/WebProjectName/ServletName时,它转发到页面很好,但是当我在最后添加任何东西时,它不会加载任何样式或图像。只是页面的文本内容。

无论如何,这是我简单的servlet

protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
    request.getRequestDispatcher( "/main.jsp" ).include( request, response ) ;
}

这是web xml块

<servlet>
  <description></description>
  <display-name>Main</display-name>
  <servlet-name>Main</servlet-name>
  <servlet-class>package.thing.Main</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Main</servlet-name>
  <url-pattern>/ServletName/*</url-pattern>
</servlet-mapping>

当我甚至只添加一个斜杠时会发生什么,这会导致它只加载main.jsp的文本,而不是样式或任何图像?

这有效:http://localhost:8080/WebProjectName/ServletName

这打破了:http://localhost:8080/WebProjectName/ServletName/

这也打破了:http://localhost:8080/WebProjectName/ServletName/why

jsp servlets
1个回答
0
投票

你需要把../css,如果因为你使用/your_uri/这意味着如果你有WebContent/css/file.css

to:/your_uri/ css = href="../css/file.css"

to:/your_uri/?par=my_thing css = href="../css/file.css

to:/your_uri css = href="css/file.css"

© www.soinside.com 2019 - 2024. All rights reserved.