gpt4 book ai didi

java - sendRedirect 后发生 IllegalStateException

转载 作者:行者123 更新时间:2023-12-02 02:31:54 25 4
gpt4 key购买 nike

我正在使用带有 JSF2 框架的 Glassfish 4 服务器。

我的问题

当调用response.sendRedirect方法时,我遇到了IllegalStateException。

我不知道为什么会引发此异常。

背景

对于每个 xhtml 页面,我都会调用此方法来检查用户是否仍处于登录状态。

<body id="body" onload="#{utilisateurBean.isUserLoggedIn()}">

方法

public void isUserLoggedIn() throws IOException {
if(this.user == null){
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.sendRedirect("Project/accueil/index.xhtml");
}
}

异常

Infos:   Exception when handling error trying to reset the response.
java.lang.IllegalStateException

或者

Avertissement:   Servlet.service() for servlet session.AppExceptionHandler threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed

我不知道为什么要提交响应。

感谢您的帮助:)

最佳答案

当响应已经提交/定义时,您无法更改响应。

您在此处显示页面,因此您的响应已定义。

您必须以另一种方式执行此操作,例如显示一条错误消息,指出用户未连接并要求用户再次登录。

您还可以使用 JavaScript 进行重定向。

关于java - sendRedirect 后发生 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46957522/

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