在我的过滤器中,我想过滤从“/a/b/c”到“/index.html”的请求,我使用:
req.getRequestDispatcher("/index.html").include(request, response);
它可以工作,但是将请求转发到index.html
后,客户端请求index.html中的js和css路径错误:
例如,它请求 /a/b/c/css/bootstrap.min.css
但应该是 /css/bootstrap.min.css
。
我想做的只是将/a/b/c
的请求转发到index.html
,而不改变其他资源的请求路径。有什么想法吗?
谢谢。
最佳答案
使 JSP 中的路径相对于 Web 上下文根,这样它们就不会依赖于当前页面 URL。
<c:set var="context" value="${pageContext.request.contextPath}" />
<script src="${context}/themes/js/jquery.js"></script>
另外,为什么不进行重定向而不是 servlet 过滤器呢?或者可能有多个具有相同 View 的 Controller ?
关于java - Servlet 在过滤器中转发给出了意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22263525/