Dre*_*mer 2 spring jsp spring-mvc
我做了一个过滤器来HttpServletRequest从所有请求中捕获sevlet 路径
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;
// debug to see the output
String path = request.getServletPath();
filterChain.doFilter(request, response);
}
Run Code Online (Sandbox Code Playgroud)
jsp 中有一个 URL 没有映射到它的控制器或视图
<div>
<spring:url value="/app" var="app_url" htmlEscape="true"/>
<a href="${app_url}"><spring:message code="label_3rd_app" /></a>
</div>
Run Code Online (Sandbox Code Playgroud)
但是,当在过滤器上调试时单击 url 时,我看到request.getServletPath()来自两个请求的值:
/null
/null/app
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么request.getServletPath()从不返回/app?
你变得空了,因为
request.getServletPath();
Run Code Online (Sandbox Code Playgroud)
用于 Servlet,而您是在过滤器中进行的。要将其放入过滤器,您必须像这样手动构建它:
HttpServletRequest request = (HttpServletRequest) req;
String path = request.getRequestURI().substring(request.getContextPath().length());
Run Code Online (Sandbox Code Playgroud)
更多信息为什么:
| 归档时间: |
|
| 查看次数: |
5975 次 |
| 最近记录: |