发表于: 2020-02-18 23:09:23

1 1259


一,springmvc原理

springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。

http://sishuok.com/forum/blogPost/list/5160.html)(跟开涛学SpringMVC

组件及其作用

  • 前端控制器(DispatcherServlet):接收请求,响应结果,相当于转发器,中央处理器。减少了其他组件之间的耦合度
  • 处理器映射器(HandlerMapping):根据请求的url查找Handler
  • Handler处理器:按照HandlerAdapter的要求编写
  • 处理器适配器(HandlerAdapter):按照特定规则(HandlerAdapter要求的规则)执行Handler。
  • 视图解析器(ViewResolver):进行视图解析,根据逻辑视图解析成真正的视图(View)
  • 视图(View):View是一个接口实现类试吃不同的View类型(jsp,pdf等等)

其中Handler处理器,视图是程序开发要用的

步骤:

  • 1.发起请求到前端控制器(DispatcherServlet)
  • 2.前端控制器请求处理器映射器(HandlerMapping)查找Handler(可根据xml配置、注解进行查找)
  • 3.处理器映射器(HandlerMapping)向前端控制器返回Handler
  • 4.前端控制器调用处理器适配器(HandlerAdapter)执行Handler
  • 5.处理器适配器(HandlerAdapter)去执行Handler
  • 6.Handler执行完,给适配器返回ModelAndView(Springmvc框架的一个底层对象)
  • 7.处理器适配器(HandlerAdapter)向前端控制器返回ModelAndView
  • 8.前端控制器(DispatcherServlet)请求视图解析器(ViewResolver)进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
  • 9.视图解析器(ViewResolver)向前端控制器(DispatcherServlet)返回View
  • 10.前端控制器进行视图渲染,即将模型数据(在ModelAndView对象中)填充到request域
  • 11.前端控制器向用户响应结果
二,异常处理
异常处理思路系统中异常包括两类:
A,预期异常
B,运行时异常RuntimeException

前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,springmvc提供全局异常处理器(一个系统只有一个异常处理器)进行统一异常处理。 



自定义异常类

对不同的异常类型定义异常类,继承Exception。


设置一个全局异常处理器

思路:

系统遇到异常,在程序中手动抛出,dao抛给service、service给controller、controller抛给前端控制器,前端控制器调用全局异常处理器。

全局异常处理器处理思路:

解析出异常类型

  • 如果该异常类型是系统自定义的异常,直接取出异常信息,在错误页面展示
  • 如果该异常类型不是系统自定义的异常,构造一个自定义的异常类型(信息为“未知错误”)

springmvc提供一个HandlerExceptionResolver接口

错误页面

在springmvc.xml中配置

<!-- 全局异常处理器只要实现HandlerExceptionResolver接口就是全局异常处理器--><bean class="com.iot.learnssm.firstssm.exception.CustomExceptionResolver"></bean>

三,异常测试

在controller、service、dao中任意一处需要手动抛出异常。如果是程序中手动抛出的异常,在错误页面中显示自定义的异常信息,如果不是手动抛出异常说明是一个运行时异常,在错误页面只显示“未知错误”。

在商品修改的controller方法中抛出异常 .

在service接口中抛出异常:

今日问题:无



返回列表 返回列表
评论

    分享到