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

Passing custom parameter values or attributes to an error-page Servlet handler

我已经在我的 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");

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

如何传递这些习俗attributes/parameters?代码示例将不胜感激。

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

管理异常中的数据并将任何其他类型的异常包装到您的自定义异常类型中并添加您需要的数据会比在您需要添加此数据的任何地方都可用的 HTTP 请求对象更容易(例如,在业务中 class HTTP 请求对象没有位置)。

像设置任何其他数据一样设置属性

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

还是您要其他东西?不能直接设置参数。