Spring MVC系列(三)、Spring MVC中请求转发中出现异常如何处理

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Spring MVC系列(三)、Spring MVC中请求转发中出现异常如何处理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

底层配置可以参考上篇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>
    

    在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/189449.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!