gpt4 book ai didi

java - 提交响应后无法调用 sendRedirect()

转载 作者:行者123 更新时间:2023-11-29 05:33:27 25 4
gpt4 key购买 nike

<分区>

我有一个过滤器来检查 session 是否存在。如果它不存在,我会使用 response.sendRedirect() 重定向用户, 到登录页面。

在某些页面上有效,在其他页面上无效'。我收到此错误 Cannot call sendRedirect() after the response has been committed .

似乎如果我删除某些代码部分,如 <%=variable%>在我的 jsp 页面中它有效。但是,正如我所说,在其他 jsp 页面中,即使我有类似 <%=variable%> 的代码,它也能正常工作。 .我真的不明白这是什么问题。

我在这个论坛上阅读了一些类似的帖子,但没有找到解决方案。

这是我的过滤器

public class SessionFilter implements Filter {

public void destroy() {}

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

try {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String url = request.getServletPath();

HttpSession session = request.getSession(false);

/*caso in cui il webserver non abbia ancora creato la sessione*/
if (null == session) {
reindirizza = true;
} else {
/*caso in cui il webserver abbia creato la sessione e l'utente sia loggato*/
if(session.getAttribute("loggato")!=null && session.getAttribute("loggato").equals("si")) {
reindirizza = false;
}
/*caso in cui il webserver abbia creato la sessione e l'utente non sia loggato*/
else {
reindirizza = true;
}
}

chain.doFilter(req, res);
if(reindirizza) {
response.sendRedirect("Gestione.jsp?message=Sessione scaduta o non valida. Effettuare il Login");
}
} catch(Exception e) {
System.out.println(e.getMessage());
}
}

public void init(FilterConfig config) throws ServletException { }
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com