[英]How do I change request attributes in Java servlet to redirect a page?
[英]How do I redirect to the current page in Servlet Filter?
我有一个页面说: /myapp/test.jsp?queryString=Y 。 过滤器需要重定向到当前页面。 它应该转到/myapp/test.jsp (不包含查询字符串)。 下面似乎将其带到上下文根目录: / myapp 。 我正在WAS6.1中运行。
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);
}
使用HttpServletrequest.getRequestURI 。 这应该为您工作:
httpResp.sendRedirect(httpReq.getRequestURI());
httpReq.getRequestURI()为您提供servlet路径,它应该如下工作。 为了重定向到同一页,请运行以下命令:
((HttpServletResponse) httpResp).sendRedirect(httpResp.encodeRedirectURL(httpReq.getRequestURI()));
另一个选项是添加带有状态代码302的标头Location
,如下所示:
((HttpServletResponse) httpResp).setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
((HttpServletResponse) httpResp).addHeader("Location", request.getRequestURL().toString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.