簡體   English   中英

如何在Servlet過濾器中重定向到當前頁面?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM