iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring MVC的拦截器与异常处理机制是什么
  • 782
分享到

Spring MVC的拦截器与异常处理机制是什么

2023-06-29 08:06:21 782人浏览 安东尼
摘要

这篇文章主要介绍了spring mvc的拦截器与异常处理机制是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring MVC的拦截器与异常处理机制是什么文章都会有所收获,下面我们一起

这篇文章主要介绍了spring mvc的拦截器与异常处理机制是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring MVC的拦截器与异常处理机制是什么文章都会有所收获,下面我们一起来看看吧。

    1. springMVC拦截器

    1.1 拦截器(interceptor)的作用

    Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理后处理

    将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(Interceptor Chain)。在访问被拦截的方

    法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是aop思想的具体实现。

    1.2 拦截器和过滤器的区别

    区别过滤器(Filter)拦截器(Interceptor)
    使用范围是servlet规范中的一部分,任何JAVA WEB工程都可以使用是Spring MVC框架自己的,只有使用了Spring MVC框架的工程才可以使用
    拦截范围在url-pattern 中配置了/*后,可以对所有要访问的资源拦截在<mvc:mapping path=" “/>中配置了/**之后,也可以对所有资源进行拦截,但是可以通过<mvc:exclude-mapping path=” "/>标签 排除不需要拦截的资源

    1.3 拦截器的快速入门

    自定义拦截器很简单,只有如下三步:

    创建拦截器类 实现HandlerInterceptor接口

    配置拦截器

    测试拦截器的拦截效果

    创建拦截器类 实现HandlerInterceptor接口

    public class MyHandlerInterceptor implements HandlerInterceptor{    public boolean preHandle(httpservletRequest request,HttpServletResponse response,Object handler){        System.out.println("preHandle running...");        return true;    }        public boolean postHandler(HttpServletRequest request,HttpServletResponse response,Object handler){        System.out.println("postHandler running....");    }    public void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler){        System.out.println("aferCompletion running...");    }}

    配置拦截器

    <!-- 配置拦截器--><mvc:interceptors><mvc:interceptor>    <mvc:mapping path="/**"/>        <bean class = "com.cs.interceptor.MyHandlerInterceptor"/>    </mvc:interceptor></mvc:interceptors>

    测试拦截器的拦截效果\

    @ResponseMapping("/test1")@ResponseBodypublic ModelAndView quickMethod() throws Exception{    System.out.println("目标方法执行");    ModelAndView modelAndView = new ModelAndView();    modelAndView.addObject("name","bestcollc");    modelAndView.setViewName("index");    return modelAndView;}测试结果:    preHandle running....    目标方法执行    postHandle running...    afterCompletion running...

    1.4 多拦截器操作

    同上,在编写一个MyHandlerInterceptor2操作,测试执行顺序

    1.5 拦截器方法说明

    方法名说明
    preHandle()方法将在请求处理之前进行调用,该方法的返回值是布尔值Boolean类型的,当它返回为false 时,表示请求结束,后续的Interceptor 和Controller 都不会再执行;当返回值为true 时就会继续调用下一个Interceptor 的preHandle 方 法
    postHandle()该方法是在当前请求进行处理之后被调用,前提是preHandle 方法的返回值为true 时才能被调用,且它会在DispatcherServlet 进行视图返回渲染之前被调用,所以我们可以在这个方法中对Controller 处理之后的ModelAndView 对象进行操作
    afterCompletion()该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图之后执行,前提是preHandle 方法的返回值为true 时才能被调用

    2. SpringMVC异常处理

    2.1 异常处理的思路

    系统中异常包括两类:预期异常运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试等手段减少运行时异常的发生。

    系统的DaoServiceController出现都通过throws Exception向上抛出,最后由SpringMVC前端控制器交

    由异常处理器进行异常处理,如下图:

    Spring MVC的拦截器与异常处理机制是什么

    2.2 异常处理的两种方式

    • 使用Spring MVC提供的简单异常处理器 SimpleMappingExceptionResolver

    • 实现Spring 的异常处理接口HandlerExcepionResolver自定义自己 的异常处理器

    2.3 简单的异常处理器SimpleMappingExceptinResolver

    SpringMVC已经定义好了该类型转换器,在使用时可以根据项目情况进行相应异常与视图的映射配置

    <!--配置简单映射异常处理器 --><bean      class = "org.springframework.WEB.servlet.handler.SimpleMappingExceptionResolver"><propertyname="defaultErrorView" value="error"/>   默认错误视图    <property name="exceptionMappings"    <map>    <entry key="com.cs.exception.Myexception" value="error"/>                    <entry key="java.lang.ClassCastException" value="error"/>    </map></property></bean>

    2.4 自定义异常处理步骤

    • 创建异常处理器类实现HandlerExceptionResolver

    • 配置异常处理器

    • 编写异常页面

    • 测试异常跳转

    创建异常处理器类实现HandlerExceptionResolver

    public class MyExceptionResolver implements HandlerExceptionResolver {@Override    public ModelAndView resolveException(HttpServletRequest request,     HttpServletResponse response, Object handler, Exception ex) {        //处理异常的代码实现        //创建ModelAndView对象        ModelAndView modelAndView = new ModelAndView();        modelAndView.setViewName("exceptionPage");        return modelAndView;} }

    配置异常处理器

    <bean id="exceptionResolver"      class="com.cs.exception.MyExceptionResolver"/>

    编写异常页面

    <%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head>    <title>Title</title></head><body>    这是一个最终异常的显示页面 </body></html>

    测试异常跳转

    @RequestMapping("/quick22")@ResponseBody publicvoidquickMethod22()throwsIOException,ParseException{    SimpleDateFORMatsimpleDateFormat=newSimpleDateFormat("yyyy-MM-dd");    simpleDateFormat.parse("abcde");}

    关于“Spring MVC的拦截器与异常处理机制是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Spring MVC的拦截器与异常处理机制是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

    --结束END--

    本文标题: Spring MVC的拦截器与异常处理机制是什么

    本文链接: https://www.lsjlt.com/news/323670.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Spring MVC的拦截器与异常处理机制是什么
      这篇文章主要介绍了Spring MVC的拦截器与异常处理机制是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring MVC的拦截器与异常处理机制是什么文章都会有所收获,下面我们一起...
      99+
      2023-06-29
    • 详解SpringMVC的拦截器与异常处理机制
      目录1.SpringMVC拦截器1.1拦截器(interceptor)的作用1.2拦截器和过滤器的区别1.3拦截器的快速入门1.4多拦截器操作1.5拦截器方法说明2.SpringMV...
      99+
      2022-11-13
    • Java SpringMVC拦截器与异常处理机制详解分析
      目录拦截器(interceptor)的作用拦截器快速入门案例:用户登录权限控制拦截器方法说明SpringMVC异常处理异常处理的思路异常处理两种方式拦截器(interceptor)的...
      99+
      2022-11-12
    • Spring MVC异常解析器的原理是什么
      本篇内容主要讲解“Spring MVC异常解析器的原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring MVC异常解析器的原理是什么”吧!使用介...
      99+
      2022-10-19
    • qt异常处理机制是什么
      Qt异常处理机制是一种用于处理程序运行时的异常的机制。它允许开发人员捕获和处理在程序执行期间发生的异常,以便更好地控制程序的行为。Q...
      99+
      2023-09-22
      qt
    • PHP中的异常处理机制是什么?
      PHP是一种开源脚本语言,广泛应用于Web开发中。它有一个强大的异常处理机制,有助于开发人员更好地捕获并处理程序中的错误和异常。一、什么是异常?在编写程序时,会发生各种错误,比如无法找到文件、变量类型不匹配、数组越界等等。这些错误也称为异常...
      99+
      2023-05-14
      机制 PHP 异常处理
    • Struts2中的异常处理机制是什么
      这期内容当中小编将会给大家带来有关Struts2中的异常处理机制是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。声明式异常捕捉Struts2的异常处理机制是通过在struts.xml文件中配置<...
      99+
      2023-05-31
      struts2 st 异常处
    • java异常处理机制原理是什么
      Java异常处理机制的原理是基于异常(Exception)的概念。在Java中,异常是指在程序运行过程中发生的错误或异常情况。当代码...
      99+
      2023-09-16
      java
    • java中异常处理机制的原理是什么
      Java中的异常处理机制是基于异常类的继承关系和异常处理代码块的机制。当程序发生异常时,会抛出一个异常对象,该异常对象会沿着调用链向...
      99+
      2023-08-31
      java
    • .NET4中异常处理的新机制是什么
      本篇内容介绍了“.NET4中异常处理的新机制是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在.NET 4.0之后,CLR将会区别出一些...
      99+
      2023-06-17
    • Java线程的异常处理机制是什么
      本文小编为大家详细介绍“Java线程的异常处理机制是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java线程的异常处理机制是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言启动一个Java程序,本质...
      99+
      2023-07-02
    • php的错误和异常处理机制是什么
      本篇内容主要讲解“php的错误和异常处理机制是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php的错误和异常处理机制是什么”吧!一、PHP的错误处理错误类型在PHP开发中,错误通常分为三种...
      99+
      2023-07-05
    • spring全局异常处理的原理是什么
      Spring全局异常处理的原理是通过定义一个统一的异常处理器来捕获和处理应用程序中的任何异常。当应用程序发生异常时,Spring会将...
      99+
      2023-10-20
      spring
    • c++异常处理机制是怎么样的
      这篇文章主要介绍了c++异常处理机制是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。当一个程序出现错误时,它可能的情况有3种:语法错误,运行时错误和逻辑错误。语法错误...
      99+
      2023-06-17
    • C语言异常处理机制的概念是什么
      这篇“C语言异常处理机制的概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言异常处理机制的概念是什么”文章吧。异...
      99+
      2023-06-17
    • Spring Cloud中Hystrix服务降级与异常处理的方法是什么
      本篇内容主要讲解“Spring Cloud中Hystrix服务降级与异常处理的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Cloud中Hystrix服务降级与异常处理的...
      99+
      2023-06-19
    • Spring访问数据库异常的处理方法是什么
      Spring访问数据库异常的处理方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用JDBC API时,很多操作都要声明抛出java.sql.SQLExceptio...
      99+
      2023-06-17
    • c#中Task.Wait()与awaiat Task异常处理的区别是什么
      这篇“c#中Task.Wait()与awaiat Task异常处理的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来...
      99+
      2023-07-02
    • ORACLE服务器异常断电及控制文件故障的处理步骤是什么
      这篇文章给大家介绍ORACLE服务器异常断电及控制文件故障的处理步骤是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 这里只是简单的记录操作步骤,以做...
      99+
      2022-10-19
    • 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……
      墨天轮数据库周刊第28期发布啦,每周1次推送本周数据库相关热门资讯、精选文章、干货文档。本周分享 开发者最喜爱的数据库是什么?阿里云脱口秀爆聊程序员转型;MySQL update误操作后进行数据库恢复;PG流复制踩坑;PG...
      99+
      2014-10-19
      数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作