如何在 servlet 过滤器中重定向?

2022-08-31 17:29:48

我正在尝试找到一种方法将我的请求从过滤器重定向到登录页面,但我不知道如何从servlet重定向。我已经搜索过了,但我找到的是方法。我在筛选器中的响应对象上找不到此方法。原因是什么?我该如何解决这个问题?sendRedirect()


答案 1

在“筛选器”中,响应是 的,而不是 。因此,将 强制转换为 。ServletResponseHttpServletResponseHttpServletResponse

HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.sendRedirect("/login.jsp");

如果使用上下文路径:

httpResponse.sendRedirect(req.getContextPath() + "/login.jsp");

也别忘了在最后打电话。return;


答案 2

我正在尝试找到一种方法将我的请求从过滤器重定向到登录页面

不要

您只需调用

chain.doFilter(request, response);

从过滤器和正常流量将继续。

我不知道如何从 servlet 重定向

您可以使用

response.sendRedirect(url);

从 servlet 重定向