SpringMVC整理

SpringMVC:spring实现web模块简化web开发

@RequestMapping 映射请求   为控制器指定可以处理那些url请求

属性 value  rul地址    method  限定请求方式    params 规定请求参数得包含什么(一系列操作)   headers 和params 支持简单表达式  consums 只接受内容类型是什么的请求   produces  告诉浏览器返回的内容类型是什么  

url 地址可写模糊通配符  ?代表一个字符 ,*代表躲个字符/一层路径 ,  **代表多层路径 

@PathVariable 映射URL绑定的占位符   此注解在形参处可获取URL绑定占位符的值

springmvc如何获取请求带来的信息   (请求处理)

@RequestBody  接受JSON数据

@ResponseBody 将返回的数据放到响应体中  (相当于输出页面) 如果是对象jackson包自动将对象转为json格式

@RequestParam获取请求参数/默认方式形参和请求参数名相同
@RequestHeader获取请求头中某个key的值
@CookieValue获取某个Cookie的值
请求参数是POJO

Springmvc自动为这个POJO进行赋值

1.将POJO中的每个属性request参数中尝试取出来,并封装即可

2.支持级联属性

springmvc确定POJO三步:

1.没加注解就将参数类型的首字母小写作为值  ,加了@ModelAttribute,就是注解指定的值

2.如果是SessionAttributes 标注的属性就从session域中拿

3.如果都不是就反射创建对象,属性为NULL

数据输出:如何将数据带给页面

可以在方法传入Map 或则Model 或者 ModelMap 或则返回值改为ModelAndView (即包含视图信息(页面地址),也包含模型数据(给页面带数据)) 最后值都放在域中   或则 传入原生API

数据绑定原理和思想:springmvc 利用反射机制对目标处理方法进行解析,将请求消息绑到处理方法形参中

数据转换---数据格式化---数据校验

数据绑定--自定义类型转换器

1.实现Converter接口,写一个自定义的类型转换器 ,Converter是ConversionService中的组件 , 你的Converter得放进ConversionService中,将WebDataBinder中的ConversionService设置成我们这个加了自定义类型转换器的ConversionService

2.配置ConversionService

3.让SpringMVC使用我们的ConversionService   <mvc:annotation-driven conversion-service="conversionService"/>

数据格式化  @DataTimeFormat (pattern = "yyyy-MM--dd")  @NumverFormat(pattern="#,###.##")

数据校验  springmvc 可用JSR303来做数据校验

 

Springmvc快速完成ajax功能

1.返回的数据格式是JSON就ok

2.页面发起ajax请求 $.ajax()

springmvc解决方式: 导入kackson包 写配置 (返回方法上面+注解@ResponseBody ) 测试  

Springmvc支持文件上传

1.文件上传表单准备    表格属性 enctype="multipart/form-data"

2.导入包(fileupload) commons-fileupload-1.2.1jar commons-io-2.0.jar

3.配置文件上传解析器 (springmvc九大组件之一)

4.文件上传请求处理  在处理器方法的参数里+MultipartFile file  

5.多文件上传 在处理器方法的参数里+MultipartFile [] file 

 拦截器

1.拦截器是一个接口

2.实现了HandlerInterceptor接口

3.配置拦截器

4.拦截器流程 

实现了HandlerInterceptor接口,重写方法     ,  在springmvc配置文件中注册这个拦截器的工作    , 配置这个拦截器去拦截什么请求

SpringMVC异常处理 

流程  所有解析器尝试解析

ExceptionHandlerExceptionResolver   @ExceptionHandler

ResponseStatusExceptionResolver @ResponseStatus

DefaultHandlerExceptionResolver 判断是否springmvc自带异常

@ExceptionHandler告诉springmvc这个方法专门处理这个类的异常(指定处理异常的类型)

@ResponseStatus 自定义一个异常

告诉springmvc这个方法处理异常

1.方法形参上随便写一个Exception,用来接受发生的异常

2.要携带异常信息,不能给参数写Model

3.返回ModelAndView 

4.多个ExceptionHandler都能处理异常时,精度优先

前端控制器DispatchServlet       

<load-on-startup>1</load-on-startup> 服务器启动时创建对象,值越小优先级越高,越先创建对象

servlet启动加载 Servlet原本是第一次访问创建对象

ContextConfigLocation : 指定springmvc配置文件位置

<url-pattern>/</url-pattern>  

如果不指定ContextConfigLocation  , 就使用默认位置

Tomacat处理静态资源 DefaultServlet是Tomacat处理静态资源的(除了jsp和servlet,其他为静态资源)

服务器的web.xml中有一个DefaultServlet 配置 <url-pattern>/<url-pattern 我们配置一个<url-pattern>/<url-pattern>会将原先配置

覆盖掉DispatchServlet      找不到requestMapping是静态资源的。处理不了。。jsp可以因为他的配置没有被覆盖掉

 

 视图解析器  

流程: 请求方法处理后,最终返回一个ModelAndView对象,springmvc在内部将他们装配成一个ModelAndView对象,他包含逻辑名和模型对象的视图

springmvc借助视图解析器得到最终视图对象(view)

视图作用:渲染模型数据,将模型里的数据以某种形式呈现给客户

视图解析器作用:将逻辑视图解析为一个具体的视图对象,所有视图解析器必须实现viweResolver接口

视图解析器根据方法的返回值得到视图对象

多个解析器依次尝试能否得到视图对象  视图对象不同就可以具有不同功能

view作用: 将Model里数据放入request域中   转发到所需页面中

<mvc:default-servlet-handler/>

<mvc:annotation-driven/>

DefaultAnnotationHandlerMapping中的handlerMap中保存了每一个资源的映射信息

静态资源不能访问就是handlerMap中没有保存静态资源映射的请求     就没有  HandlerAdapter(方法执行的适配器)

 加上<mvc:default-servlet-handler/>,handlerMapping有变化     DefaultAnnotationHandlerMapping默认的没了

用SimpleUrlHanderMapping替换 

HandlerMapping 保存了请求映射信息     HandlerAdapter 找到能处理目标处理器类方法的适配器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值