JSP 如何在Struts2中处理HTTP错误

brqmpdu1  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(222)

我正在处理一个Struts2项目,它遇到了HTTP错误,如404:页面未找到或500:内部服务器错误。我只想以编程方式处理Struts 2中的所有HTTP错误,而不进行配置。
也许我会在过滤器或拦截器中检测HTTP错误代码,然后将请求转发到另一个专门设计来显示正确消息的页面。我如何设计这样的程序呢?

eanckbw9

eanckbw91#

看看Struts2 Exception Handling Wiki。
您可以定义特定例外的全局结果。

<global-results>
 <result name="securityerror">/securityerror.jsp</result>
 <result name="error">/error.jsp</result>
</global-results>

<global-exception-mappings>
 <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" result="securityerror" />
  <exception-mapping exception="java.lang.Exception" result="error" />
</global-exception-mappings>
yruzcnhs

yruzcnhs2#

您可以在web.xml中处理此类HTTP错误,而不是像下面这样在struts框架中处理:

<web-app>
  ...
  <error-page>
    <error-code>404</error-code>
    <location>/error404page.jsp</location>
  </error-page>

</web-app>

当系统遇到404错误时,它将转发到您自定义的404错误页面“/favicon. ico”。
希望能帮上忙。

67up9zun

67up9zun3#

这些不是错误,只是响应代码。我不知道你是如何管理连接的,但普通的http连接是这样工作的:

HttpURLConnection httpConnection = (HttpURLConnection) connection;
   int code = httpConnection.getResponseCode();

在这个类中缺少一些代码。
由于Java 6javax.servlet.http.HttpServletResponse有响应代码,在Response.Status中也有可读性很强的响应代码。
在你的应用程序中,你可以把响应代码重定向到你想要的地方。你如何在拦截器中获得响应代码?我不知道,我不在我的工作电脑上测试一些代码。但是有一个类可以帮助你-org.apache.struts2.dispatcher.HttpHeaderResult
希望这对你有帮助。

相关问题