将自定义参数值或属性传递给错误页面Servlet处理程序

时间:2015-01-12 08:27:04

标签: java servlets

我在web.xml中声明了一个错误页面来捕获所有异常。

有点像......

<error-page>
   <location>/errorhandler</location>
<error-page>

我在web.xml中有一个映射,用于相同的servlet名称“ErrorHandlerServlet”。

所以现在,在我的应用程序代码的某个地方抛出一个错误,它将把我发送到错误页面处理程序,我希望能够设置我的自定义属性或参数,以便以后我可以检索它们我的ErrorHandlerServlet。就像我检索下面的其他内置属性一样:

String errorMessage = (String)request.getAttribute(RequestDispatcher.ERROR_MESSAGE);

基本上,我也希望能够致电:

String myCustomAttributeValue = (String)request.getAttribute("my_attribute_name");

或致电:

String myCustomParamValue = request.getParameter("my_param_name");

..并获取我在抛出错误时添加的自定义属性值或参数值。

如何传递这些自定义属性/参数?代码示例将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

我会建议另一种方法。将您需要的数据封装在您抛出的异常实例中。异常实例可供您的错误处理程序使用,您可以从异常对象中检索数据。

更容易管理异常中的数据并将任何其他类型的异常包装到自定义异常类型中并添加所需的数据,而不是在需要添加此数据的任何位置使用HTTP请求对象(在例如,HTTP请求对象没有位置的业务类。

答案 1 :(得分:0)

设置属性,就像设置其他数据一样

request.setAttribute('err_key', 'your_value');

或者你在寻找别的东西吗?您无法直接设置参数。