Servlets 如何将servlet请求重定向到筛选器中的html页面

Servlets 如何将servlet请求重定向到筛选器中的html页面,servlets,redirect,filter,Servlets,Redirect,Filter,我正在编写一个web应用程序,它将请求(包括html请求和servlet请求,$.post或$.get)重定向到过滤器中的特定网页。它适用于html页面请求。如果我转到无法访问的网页,它会按预期重定向。但是,如果我单击一个按钮,发送一个我无法访问的servlet请求,它就会 不重定向。它所做的只是返回网页的内容重定向URL,而我单击并发送请求的网页仍然在那里。下面是我用来重定向的代码 httpResponse.setContentType("text/html;charset=UTF-8");

我正在编写一个web应用程序,它将请求(包括html请求和servlet请求,$.post或$.get)重定向到过滤器中的特定网页。它适用于html页面请求。如果我转到无法访问的网页,它会按预期重定向。但是,如果我单击一个按钮,发送一个我无法访问的servlet请求,它就会 不重定向。它所做的只是返回网页的内容重定向URL,而我单击并发送请求的网页仍然在那里。下面是我用来重定向的代码

 httpResponse.setContentType("text/html;charset=UTF-8");
            httpResponse.setHeader("pragma", "no-cache");
            httpResponse.setHeader("Cache-Control", "no-cache");

 httpRequest.getRequestDispatcher(REDIRECT_URL).forward(httpRequest, httpResponse);
如何在过滤器中实现我期望的功能。我不想在web中重定向。我希望所有的工作都由过滤器完成。谢谢..

getRequestDispatcher(重定向\u URL)。转发不会重定向。它执行服务器端转发,这意味着容器将在幕后发出不同的内部请求

您需要的是HttpServletRequest.sendRedirect:


他不想改变方向。此外,当使用过滤器时,您可能会遇到循环重定向的风险,因此最好使用转发。
httpResponse.setContentType("text/html;charset=UTF-8");
httpResponse.setHeader("pragma", "no-cache");
httpResponse.setHeader("Cache-Control", "no-cache");

httpResponse.sendRedirect(REDIRECT_URL);