[英]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.