gpt4 book ai didi

Java:JSP 在页面的其余部分停止执行

转载 作者:行者123 更新时间:2023-12-04 06:52:09 26 4
gpt4 key购买 nike

如何阻止 JSP 执行?

我有通过“转发”将用户踢出页面的 JSP。

public boolean kickIfNotLoggedIn(
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//code to check if user is logged in
req.getRequestDispatcher(
ACCESS_DENIED_PAGE).forward(request, response);
}

在我的 JSP 中,我有这个代码,在任何 HTML 输出之前:
<%
//loginHelper.kickIfNotLoggedIn(request, response);
if (!loginHelper.kickIfNotLoggedIn(request, response)) {
return;
}
%>

如果我不使用 return 语句,JSP 将继续处理,并得到 NullPointerException。如果我使用 return 语句(正如网络上的各种来源通常所建议的那样),我会得到一个 IllegalStateException:
StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
at org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:717)
at org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.java:226)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:187)

任何想法如何解决这个问题,或实现访问被拒绝页面的另一种方法?

谢谢

最佳答案

你不能这样做。错误消息有点不清楚,但它与开始在一个资源中呈现响应,停止,然后转发到另一个试图重新开始处理 HTTP 响应的资源有关。

使用 servlet Filter相反,在所有需要登录的 JSP 之前,在任何 JSP 甚至接触响应之前重定向。

关于Java:JSP 在页面的其余部分停止执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956844/

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