软件架构设计实践— 基于SSM框架 课件 第8章 Spring MVC高级功能.pptx

软件架构设计实践— 基于SSM框架 课件 第8章 Spring MVC高级功能.pptx

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于SSM框架的软件架构设计实战SoftwareArchitectureDesignPracticeBasedonSSMFramework

第8章SpringMVC高级功能12345拦截器异常处理文件上传下载静态资源访问JSON数据交换和RESTful应用

拦截器

拦截器拦截器的概念拦截器(Interceptor)可以拦截对处理器的调用,并允许在处理器执行前和(或)执行后进行一些操作拦截器可以为所有处理器提供统一的可插拔功能,可以让处理器专注于业务逻辑从作用看,拦截器与Servlet的过滤器有相似之处,它们的区别主要体现在过滤器会拦截url-pattern中配置的所有请求资源,拦截器只拦截对处理器的调用

拦截器SpringMVC中的拦截器需要实现HandlerInterceptor接口,它允许在三个时机插入处理代码,对应三个拦截器方法:处理器执行前(preHandle)处理器执行完毕(postHandle)视图渲染完成(afterCompletion)

拦截器拦截器方法的执行顺序

拦截器

拦截器要点:preHandle中定义执行处理器代码之前要执行的操作,postHandle中定义执行处理器代码之后要执行的操作,afterCompletion中定义视图渲染完毕之后要执行的操作preHandle返回值是布尔类型,返回true表示放行,如果后面还有拦截器,则执行下一个拦截器的preHandle,如果没有其它拦截器,则执行处理器代码;返回false表示拦截,不再执行后面的代码三个方法中的Object类型参数,表示被拦截的处理器postHandle中的ModelAndView类型参数,代表处理器返回的ModelAndView

拦截器配置拦截器要想拦截器起作用,还需要在配置文件中进行配置,也就是要告诉SpringMVC要拦截哪些处理器。

拦截器拦截器配置要点:mvc:mapping一定要有,并且要在mvc:exclude-mapping之前mvc:mapping和mvc:exclude-mapping都可以有多个**代表多层路径,*代表单层路径要想使用mvc命名空间,需要先声明

拦截器拦截器链SpringMVC允许同时在一个处理器上配置多个拦截器,作用在一个处理器上的多个拦截器就形成了拦截器链。在配置拦截器链时,只需在mvc:interceptors/mvc:interceptors标签中使用多个mvc:interceptor/mvc:interceptor标签进行配置即可。

拦截器多个拦截器的执行顺序

异常处理

异常处理SpringMVC异常处理概述提供了一个统一的异常处理手段,这样一方面可以使程序员专注于业务逻辑,另一方面也可以提供一个相对友好的出错界面。SpringMVC提供了一系列的异常处理机制,它们基于一个统一的接口HandlerExceptionResolver,这一接口有多个实现类,它们以不同的方式处理不同的异常。

异常处理自定义全局异常处理器:使用方法自定义异常处理类装配异常处理类

异常处理异常处理类

异常处理说明异常处理类里重写resolveException()方法。Exception类入参是需要处理的异常。Object类入参是触发异常的处理器,其具体类型是HandlerMethod。方法返回ModelAndView,这个ModelAndView类的对象会代替产生异常的处理器返回的ModelAndView类对象返回给前端控制器,可以在这里指定产生异常时需要渲染给客户端的视图。

文件上传下载

文件上传下载文件上传SpringMVC提供了MultipartResolver接口,专门用于处理文件上传。当收到请求时,前端控制器的checkMultipart()方法会调用MultipartResolver的isMultipart()方法判断请求中是否包含文件。如果请求数据中包含文件,则调用MultipartResolver的resolveMultipart()方法对请求的数据进行解析,同时将HttpServletRequest类对象封装为MultipartHttpServletRequest类对象,并将文件数据封装到MultipartFile类的对象中,传递给处理器。

文件上传下载MultipartResolver接口有两个实现类:StandardServletMultipartResolver:基于Servlet实现文件上传,不需要额外的依赖项,但对容器支持的Servlet版本有要求,需要在web.xml中配置文件上传相关信息,是Spring6推荐使用的。CommonsMultipartResolver:基于ApacheCommonsFileUpload组件,需要额外的依赖项,需要在Spri

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档