Java 如何防止原始异常信息出现在SpringMVC3.0应用程序的JSP上?

Java 如何防止原始异常信息出现在SpringMVC3.0应用程序的JSP上?,java,spring,jsp,spring-mvc,error-handling,Java,Spring,Jsp,Spring Mvc,Error Handling,在测试我的Spring应用程序时,我上传了一个超过应用程序中配置的最大允许大小的文件 因此,以下消息出现在JSP上,对用户可见: Error Exception: org.springframework.web.multipart.MultipartException: something went wrong here; nested exception is org.apache.commons.fileupload.FileUploadBase$FileUploadIOExceptio

在测试我的Spring应用程序时,我上传了一个超过应用程序中配置的最大允许大小的文件

因此,以下消息出现在JSP上,对用户可见:

Error
Exception: org.springframework.web.multipart.MultipartException: 
something went wrong here; nested exception is 
org.apache.commons.fileupload.FileUploadBase$FileUploadIOException
为了在JSP上为用户呈现一条更加用户友好的消息,我需要做哪些更改

例如:

Uploaded file exceeds maximum allowed size of 25MB.
我以前没有做过SpringMVC,但我认为Spring可以做到

使用消息资源(ResourceBundle)。您必须捕获异常并创建一个错误页面,在该页面中可以显示错误消息


Spring使用ResourceBundleMessageSource作为消息资源。这(尽管过于简单)向您展示了如何配置和使用它。

抛开Spring不谈,Servlet API提供了将自定义错误页面附加到某些异常的可能性。在这个特定的示例中,只需将以下条目添加到
web.xml

<error-page>
    <exception-type>org.springframework.web.multipart.MultipartException</exception-type>
    <location>errors/upload.jsp</location>
</error-page>

org.springframework.web.multipart.MultipartException
错误/upload.jsp
通过这种方式,您可以在默认网页布局中以
errors/upload.jsp
的风格提供一个完全自定义的错误页面

创建一个新的jsp
jsp\u以显示错误消息.jsp
并将
${message}
放在其中的某个位置。在xml中配置MyExceptionResolver。如果您使用的是基于注释的控制器,请阅读

public class MyExceptionResolver implements HandlerExceptionResolver{
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex){
        return new ModelAndView("jsp_to_show_error_message.jsp").
                 addObject("message", ex.getMessage());
    }
}