我正在设置一个简单的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
你需要把../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"