zoukankan      html  css  js  c++  java
  • 2017.3.31 spring mvc教程(四)全局的异常处理

    学习的博客:http://elf8848.iteye.com/blog/875830/

    我项目中所用的版本:4.2.0。博客的时间比较早,11年的,学习的是Spring3 MVC。不知道版本上有没有变化比较大的功能。

    spring mvc教程(四)全局的异常处理

    1.SimpleMappingExceptionResolver

    1 SimpleMappingExceptionResolver 的父类 : AbstractHandlerExceptionResolver
    2 通过SimpleMappingExceptionResolver,将不同的异常映射到不同的jsp页(通过exceptionMappings属性的配置)。
    3 如果所抛出的异常在exceptionMappings中没有对应的映射,则Spring将显示默认异常页。 通过defaultErrorView属性,配置默认异常页。
    4 也可以自己实现HandlerExceptionResolver接口,用来处理异常。

    注意:这里配置的异常显示界面均仅包括主文件名,至于文件路径和后缀已经在viewResolver中指定。如/error/error表示/error/error.js。

     1 <!-- 总错误处理-->  
     2 <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
     3     <property name="defaultErrorView">    
     4         <value>/error/error</value>  
     5     </property>  
     6     <property name="defaultStatusCode">    
     7         <value>500</value>  
     8     </property>     
     9   <property name="warnLogCategory">    
    10         <value>org.springframework.web.servlet.handler.SimpleMappingExceptionResolver</value>  
    11     </property>     
    12 </bean> 

    显示错误的jsp文件

    "exception"是key,在SimpleMappingExceptionResolver类中默认指定的。可以通过配置文件修改这个值。

     1 <%@ page language="java" contentType="text/html; charset=GBK"  
     2     pageEncoding="GBK"%>  
     3 <%@ page import="java.lang.Exception"%>  
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
     5 <html>  
     6 <head>  
     7 <meta http-equiv="Content-Type" content="text/html; charset=GBK">  
     8 <title>错误页面</title>  
     9 </head>  
    10 <body>  
    11 <h1>出错了</h1>  
    12 <%  
    13 Exception e = (Exception)request.getAttribute("exception");  
    14 out.print(e.getMessage());  
    15 %>  
    16 </body>  
    17 </html>

    2.将全局异常记录到日志中

    (1)warnLogCategory属性

    1 <property name="warnLogCategory">           
    2 <value>org.springframework.web.servlet.handler.SimpleMappingExceptionResolver</value> 3 </property>

    (2)log4j的配置文件

    加入(全限定名):log4j.logger.org.springframework.web.servlet.handler.SimpleMappingExceptionResolver=WARN。这样即使log4j的根日志级别是ERROR,也一定会被收录。

  • 相关阅读:
    java编译错误No enclosing instance of type TestFrame is accessible. Must qualify the allocation with an enclosing instance of type TestFrame (e.g. x.new A(
    java 2中创建线程方法
    动态规划基本思想
    关于eclipse编译一个工程多个main函数
    java Gui初识
    Eclipse中java项目的打包
    java 播放声音
    把资源文件夹导入到eclipse中
    Java建立JProgressBar
    How to grant permissions to a custom assembly that is referenced in a report in Reporting Services
  • 原文地址:https://www.cnblogs.com/lyh421/p/6652729.html
Copyright © 2011-2022 走看看