我正在制作一个简单,非常轻巧的前置控制器.我需要将请求路径与不同的处理程序(操作)匹配,以便选择正确的路径.
在我的本地计算机上HttpServletRequest.getPathInfo()并HttpServletRequest.getRequestURI()返回相同的结果.但我不确定它们会在生产环境中返回什么.
那么,这些方法和我应该选择什么之间的区别是什么?
我做了一个过滤器来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?