Java 如何在Servlet过滤器中重定向到当前页面?
我有一个页面说:/myapp/test.jsp?queryString=Y。 筛选器需要重定向到当前页面。 它应该转到/myapp/test.jsp(不带查询字符串)。 下面的内容似乎将它带到了上下文根:/myapp。 我正在用WAS6.1跑步Java 如何在Servlet过滤器中重定向到当前页面?,java,redirect,servlet-filters,Java,Redirect,Servlet Filters,我有一个页面说:/myapp/test.jsp?queryString=Y。 筛选器需要重定向到当前页面。 它应该转到/myapp/test.jsp(不带查询字符串)。 下面的内容似乎将它带到了上下文根:/myapp。 我正在用WAS6.1跑步 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest) req;
HttpServletResponse httpResp = (HttpServletResponse) resp;
{
boolean blnNeedToRedirect = true;
if (blnNeedToRedirect) {
httpResp.sendRedirect(".");
return;
}
chain.doFilter(req, resp);
}
使用。这应该适合您:
httpResp.sendRedirect(httpReq.getRequestURI());
getRequestURI()为您提供servlet路径,它的工作原理如下。
要重定向到同一页面,请运行下一个命令:
((HttpServletResponse) httpResp).sendRedirect(httpResp.encodeRedirectURL(httpReq.getRequestURI()));
另一个选项是添加标题位置
,状态代码为302,如下所示:
((HttpServletResponse) httpResp).setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
((HttpServletResponse) httpResp).addHeader("Location", request.getRequestURL().toString());
“请求页面”不也是“同一页面”吗?请举例说明。