我正在处理一个Struts2项目,它遇到了HTTP错误,如404:页面未找到或500:内部服务器错误。我只想以编程方式处理Struts 2中的所有HTTP错误,而不进行配置。也许我会在过滤器或拦截器中检测HTTP错误代码,然后将请求转发到另一个专门设计来显示正确消息的页面。我如何设计这样的程序呢?
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>
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”。希望能帮上忙。
67up9zun3#
这些不是错误,只是响应代码。我不知道你是如何管理连接的,但普通的http连接是这样工作的:
HttpURLConnection httpConnection = (HttpURLConnection) connection; int code = httpConnection.getResponseCode();
在这个类中缺少一些代码。由于Java 6javax.servlet.http.HttpServletResponse有响应代码,在Response.Status中也有可读性很强的响应代码。在你的应用程序中,你可以把响应代码重定向到你想要的地方。你如何在拦截器中获得响应代码?我不知道,我不在我的工作电脑上测试一些代码。但是有一个类可以帮助你-org.apache.struts2.dispatcher.HttpHeaderResult希望这对你有帮助。
3条答案
按热度按时间eanckbw91#
看看Struts2 Exception Handling Wiki。
您可以定义特定例外的全局结果。
yruzcnhs2#
您可以在web.xml中处理此类HTTP错误,而不是像下面这样在struts框架中处理:
当系统遇到404错误时,它将转发到您自定义的404错误页面“/favicon. ico”。
希望能帮上忙。
67up9zun3#
这些不是错误,只是响应代码。我不知道你是如何管理连接的,但普通的http连接是这样工作的:
在这个类中缺少一些代码。
由于Java 6javax.servlet.http.HttpServletResponse有响应代码,在Response.Status中也有可读性很强的响应代码。
在你的应用程序中,你可以把响应代码重定向到你想要的地方。你如何在拦截器中获得响应代码?我不知道,我不在我的工作电脑上测试一些代码。但是有一个类可以帮助你-org.apache.struts2.dispatcher.HttpHeaderResult
希望这对你有帮助。