Spring MVC系列Spring MVC中请求转发中出现异常如何处理
Posted 一宿君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring MVC系列Spring MVC中请求转发中出现异常如何处理相关的知识,希望对你有一定的参考价值。
底层配置可以参考上篇Spring MVC系列(一)、Spring MVC概述及ModelAndView(模型视图)
三、Spring MVC中请求转发中出现异常如何处理
在程序运行后报错了,首先我们要知道是何种错误,然后再去针对性的解决,这样才能不至于瞎胡改。
3.1 先在springmvc的核心配置文件中进行异常解析配置
- applicationContext-springmvc.xml
<!--简单映射异常解析器--> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <!-- 给异常命名一个别名 --> <property name="exceptionAttribute" value="ex"/> <!--异常映射--> <property name="exceptionMappings"> <!--标注是啥异常错误(可以添加多个)--> <props> <!--所有异常均可跳转到一个页面中--> <!--异常默认跳转页面--> <prop key="java.lang.RuntimeException">error</prop> <!--数组下标越界异常--> <prop key="java.lang.ArrayIndexOutOfBoundsException">error</prop> </props> </property> </bean>
3.2 在控制器Controller中访问登录界面
- SystemUserContoller类
/** * 跳转登录界面 * @return */ @RequestMapping(method = RequestMethod.GET,value = {"/toLogin"}) public String toLogin(HttpServletRequest request){ System.out.println(1/0);//制造运行时异常 return "login"; }
3.3 error.jsp页面获取异常信息
- error.jp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>配置文件中检测到的error</h1> ${ex}<br/> </body> </html>
3.4 在地址栏请求toLogin
3.5 使用注解(@ExceptionHandler)标注在方法上的方式获取异常信息,并跳转至error.jsp页面
- Controller
@ExceptionHandler(value = RuntimeException.class) public String exception(RuntimeException re,HttpServletRequest req){ req.setAttribute("MSG",re.getMessage()); return "error"; }
- error.jspyemian
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>配置文件中检测到的error</h1> ${requestScope.ex}<br/> <h1>注解中检测到的error</h1> ${requestScope.MSG}<br/> </body> </html>
以上是关于Spring MVC系列Spring MVC中请求转发中出现异常如何处理的主要内容,如果未能解决你的问题,请参考以下文章
[Interview]Java 面试宝典系列之 Spring MVC