Springmvc框架部分知识总结

目录

1.SpringMVC执行流程

2.SpringMVC中常用的注解

3.SpringMVC核心技术

3.1请求转发

 3.2请求重定向

 3.3@ExceptionHandler 注解

3.4拦截器

3.4.1拦截器执行流程如下:

 3.4.2注册拦截器方法


1.SpringMVC执行流程

执行流程的简要分析: 

(1)浏览器提交请求到中央调度器
(2)中央调度器直接将请求转给处理器映射器。
(3)处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后
返回给中央调度器。
(4)中央调度器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器。
(5)处理器适配器调用执行处理器。
(6)处理器将处理结果及要跳转的视图封装到一个对象 ModelAndView 中,并将其返回给
处理器适配器。
(7)处理器适配器直接将结果返回给中央调度器。
(8)中央调度器调用视图解析器,将 ModelAndView 中的视图名称封装为视图对象。
(9)视图解析器将封装了的视图对象返回给中央调度器
10 )中央调度器调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对象。
11 )中央调度器响应浏览器、

2.SpringMVC中常用的注解

(1) @Controller :表示当前类为处理器
(2)@RequestMapping:表示当前方法为处理器方法。该方法要对 value 属性所指定的 URI
进行处理与响应。被注解的方法的方法名可以随意。

 (3)@RequestParam:校正请求参数名,指定请 求 URL 所携带参数的名称。该注解是对处理器方法参数进行修饰的。

 (4)<mvc:annotation-driven/>:声明注解驱动,将 Object 数据转化为 JSON 数据,需要由消息转换器 HttpMessageConverter 完成。而转 换器的开启,需要由<mvc:annotation-driven/>来完成。

 (5)@ResponseBody:将java对象(可以是array类型,string类型,list类型)转为json数据输出

 

3.SpringMVC核心技术

3.1请求转发

处理器方法返回 ModelAndView 时,需 在 setViewName()指定的视图前添加 forward:,且
此时的视图不再与视图解析器一同工作,这样可以在配置了解析器时指定不同位置的视图。
视图页面必须写出相对于项目根的路径。forward 操作不需要视图解析器。
处理器 方法返回 String, 在视图路径前面加入 forward: 视图完整路径。

 3.2请求重定向

在处理器方法返回的 视图字符串的前面添加 redirect:,则可实现重定向跳转

 3.3@ExceptionHandler 注解

使用注解 @ExceptionHandler 可以将一个方法指定为异常处理方法。该注解只有一个可
选属性 value ,为一个 Class<?> 数组,用于指定该注解的方法所要处理的异常类,即所要匹
配的异常。
而被注解的方法,其返回值可以是 ModelAndView String ,或 void ,方法名随意,方法
参数可以是 Exception 及其子类对象、 HttpServletRequest HttpServletResponse 等。系统会
自动为这些方法参数赋值。
对于异常处理注解的用法,也可以直接将异常处理方法注解于 Controller 之中。

3.4拦截器

SpringMVC 中的 Interceptor 拦截器是非常重要和相当有用的,它的主要作用是拦截指定
的用户请求,并进行相应的预处理与后处理。其拦截的时间点在“处理器映射器根据用户提
交的请求映射出了所要执行的处理器类,并且也找到了要执行该处理器类的处理器适配器,
在处理器适配器执行处理器之前”。当然,在处理器映射器映射出所要执行的处理器类时,
已经将拦截器与处理器组合为了一个处理器执行链,并返回给了中央调度器。

 自定义拦截器,需要实现 HandlerInterceptor 接口。而该接口中含有三个方法:

(1)preHandle(request,response, Object handler)
(2)postHandle(request,response, Object handler,modelAndView)
(3) afterCompletion(request,response, Object handler, Exception ex)

3.4.1拦截器执行流程如下:

 3.4.2注册拦截器方法

<mvc:mapping/> 用于指定当前所注册的拦截器可以拦截的请求路径,而 /** 表示拦截所
有请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值