SpringMVC 一

Day01:

SpringMVC:

概述:

一个轻量级,基于MVC的web层应用框架,偏前端管理而不是基于业务逻辑层,

  • Spring为表现层提供的基于MVC设计理念的web框架
  • Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。
  • 支持 REST 风格的 URL 请求。
  • 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。

架构图解
架构图解

SpringMVC的请求映射规则:

  • @RequestMapping: 先访问类上映射路径,再根据方法路径进一步细化请求
处理多个URL: 
	@RequestMapping(value = {"/succeed","succ*","/test/succeed"})

处理http各种请求方式:
	@RequestMapping中的method属性用于限制http的请求方式

处理动态url:
	@RequestMapping(value = "{matchUrl}/{matchUrl2}")
  • 子注解:
注解等价于适用场景
@GetMapping@RequestMapping(method = RequestMethod.GET)GET:得到资源
@PutMapping@RequestMapping(method = RequestMethod.PUT)PUT:修改整体内容
@PostMapping@RequestMapping(method = RequestMethod.POST)POST:新增内容
@DeleteMapping@RequestMapping(method = RequestMethod.DELETE)DELETE:删除内容
@PatchMapping@RequestMapping(method = RequestMethod.PATCH)PATCH:修改部分内容

SpringMVC参数绑定

处理器映射器RequestMappingHandlerMapping找到对应urls与Controller的关系后,后续交给 处理器适配器RequestMappingHandlerAdapter来处理,在处理之前由 RequestMappingHandlerAdapter完成参数的绑定

参数绑定类型
  • 默认支持类型
1.HttpServletRequest:
	作用:通过request,获取请求的参数数据
2.HttpServletResponse:
	作用:通过response,执行响应
3.HttpSession:
	作用:通过session,获取和保存会话域数据
4.Model/ModelMap:
	4.1.Model是一个接口,是模型,用于封装响应的模型数据
	4.2.ModelMap是实现类,使用Model和使用ModelMap,效果是一样的
	4.3.使用Model封装响应的模型数据,就可以不使用ModelAndView,页面视图可以使用字符串响应
  • 基本数据类型
基础数据类型:byteshortintlongfloatdoublecharboolean

包装类型:Byte、Short、Integer、Long、Float、Double、Char、Boolenan

字符串:String 

基础数据类型传递规则:属性名相同
不建议使用简单类型的基础类型(int)。原因是基础类型不能为null值,如果不传递会报异常    
  • pojo实体类
参数传递规则:被调用方法的参数类型及名称与pojo对象中属性类型及名称相同
  • 日期类型处理
@InitBinder
    public void initBinder(WebDataBinder binder){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //new CustomDateEditor(simpleDateFormat, true)的true表示是否可以传递空值
        binder.registerCustomEditor(Date.class, new CustomDateEditor(simpleDateFormat, true));
    }
  • 复合pojo类型(一个对象的属性值是另一个类型的对象)
传递规则:类中的对象属性名.此对象属性,例如:customerInfo.shool
传递中文 处理乱码
<!--字符集处理-->
  <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  • 数组类型
传递规则:表单提交的name是一样的,后台会以array的方式接受
  • list集合类型
list参数:list对象不能直接传递,需要构建构建一个对象,对象里面有一个List<T>的属性
list参数传递规则:
	1、后台定义一个对象,对象里面有一个private List<T> list的属性,T为所要传递的list的类型
	2、前台页面name="list[下标].T对象的属性名词"

参数常用注解

  • @RequestMapping : 绑定 请求路径 与类或者类的方法 的映射关系
  • @RequestParam : 绑定单个请求数据, 即可以是url参数也可以是表单提交参数
  • @RequestBody: 接收json类型数据
  • @PathVariable: 绑定url 参数值
时间转换:

在接收json数据时,我们之前定义的@InitBinder处理是无效的,这个时候我们就需要使用新的方式在Customer类的createrTime字段上添加
​    //创建时间,入参DateTimeFormat,出参:JsonFormat@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")@JsonFormat(pattern ="yyyy-MM-dd hh:mm:ss",timezone = "GMT+8")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值