Java sendRedirect后的IllegalStateException

Java sendRedirect后的IllegalStateException,java,servlets,Java,Servlets,我使用的是带有JSF2框架的GlassFish4服务器 我的问题 调用response.sendRedirect方法时,我遇到了一个IllegalStateException 我一点也不知道为什么会出现这个异常 上下文 对于每个xhtml页面,我都会调用这个方法来检查用户是否仍然登录 <body id="body" onload="#{utilisateurBean.isUserLoggedIn()}"> 例外情况 Infos: Exception when handling

我使用的是带有JSF2框架的GlassFish4服务器

我的问题

调用response.sendRedirect方法时,我遇到了一个IllegalStateException

我一点也不知道为什么会出现这个异常

上下文

对于每个xhtml页面,我都会调用这个方法来检查用户是否仍然登录

<body id="body" onload="#{utilisateurBean.isUserLoggedIn()}">
例外情况

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

我不知道为什么会有回应


感谢您的帮助:)

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

这里显示的是页面,因此已经定义了响应

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


您还可以使用javascript执行重定向。

当响应已经提交/定义时,您不能更改响应

这里显示的是页面,因此已经定义了响应

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


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

使用以下代码片段更改代码:

public void isUserLoggedIn() throws IOException {
if(this.user == null){
    HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
    response.sendRedirect("Project/accueil/index.xhtml");
    return;
 }
}
或者添加一个检查以验证响应是否已提交

response.isCommitted()

有关已提交响应的更多信息,请查看。

使用以下代码片段更改代码:

public void isUserLoggedIn() throws IOException {
if(this.user == null){
    HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
    response.sendRedirect("Project/accueil/index.xhtml");
    return;
 }
}
或者添加一个检查以验证响应是否已提交

response.isCommitted()

有关已提交响应的更多信息,请查看。

谢谢,我已解决了我的问题。我不知道为什么,但是移除样式标签(在head标签中)中的CSS就成功了。谢谢,我解决了我的问题。我不知道为什么,但是去掉样式标签(在head标签中)中的CSS就成功了。谢谢你的回答。我的问题来自在head标签中写入CSS。移除它解决了问题谢谢你的回答。我的问题来自在head标签中写入CSS。移除它修复了问题