SperingSSM第六次课内容:SpringMVC

发布于:2023-01-01 ⋅ 阅读:(551) ⋅ 点赞:(0)

2.1 SpringMVC简介

  • SpringMVC技术与Servlet技术功能等同,均属于web层或者说表现层开发技术

  1. SpringMVC概述

  1. SpringMVC入门案例 (实例见D:\JavaSSM阶段源代码\springmvc_01_quickstart)

  • 表现层的bean用@Controller这个注解,这个注解是springmvc定义bean的专用注解


三个springmvc所需要的注解:


  • 一次性工作一次工程只用做一次,需要多次做的就是处理请求的控制器类中的方法。以下就是控制器类,存在一个save方法

固定格式写个 /

  1. 入门案例工作流程分析

注意:

  • config目录存入的是配置类
  • controller目录存放的是SpringMVC的controller功能类
  • service目录存放的是service接口和实现类
  • dao目录存放的是dao/Mapper接口
  • SpringMVC加载的相关bean (表现层bean),也就是controller包下的类

简化开发:

  1. PostMan插件简介

总结

2.2 请求与响应

  1. 请求映射路径 (实例见D:\JavaSSM阶段源代码\springmvc_03_request_mapping)

  1. 请求方式 (实例见D:\JavaSSM阶段源代码\springmvc_04_request_param)
  • Get请求传参

  • Post请求传参

  1. 请求参数 (实例见D:\JavaSSM阶段源代码\springmvc_04_request_param)
  • 参数种类(五种)
    • 普通参数

注解:

    • 嵌套POJO类型参数(一个实体类中包含了另一个实体类)

    • 集合类型参数

  • 集合保存普通参数:请求参数名与形参集合对象名相同且请求参数为多个@RequestParam绑定参数关系
  • 对于简单数据类型使用数组会比集合更简单些

@RequestParam

名称

@RequestParam

类型

形参注解

位置

SpringMVC控制器方法形参定义前面

作用

绑定请求参数与处理器方法形参间的关系

相关参数

required:是否为必传参数

defaultValue:参数默认值

  1. 请求参数(传递json数据) (实例见D:\JavaSSM阶段源代码\springmvc_04_request_param)
  • json数组
  • json对象(POJO参数)

  • json数组 (POJO集合参数)

步骤:

注解:

  1. 日期类型参数传递 (实例见D:\JavaSSM阶段源代码\springmvc_04_request_param)

对于日期类型参数通过@DateTimeFormat注解指定日期格式,用的参数叫Pattern。如果日期格式是以/分割且只有年月日则不用加这个注解。此形式是spring的默认形式

注解:

  1. 响应 (实例见D:\JavaSSM阶段源代码\springmvc_05_response)
  • 响应页面

注意:

  • 返回jsp文件不需要加ResponseBody注解

  • 响应数据
    • 文本数据

    • json数据

给一个对象自动变成json数据

注解:

这个注解可以将对象数据转为json,里面是HttpMessageConverter这个类型转换器(接口)在做事情

2.3 REST风格

  1. REST简介

REST其实就是表示访问网络资源的格式

注意:

  • 行为动作其实就是请求方法
  • SpringMVC支持八种,我们常用四种(get 查询,post 新增,put 修改,delete 删除)

  1. 入门案例 (实例见D:\JavaSSM阶段源代码\springmvc_06_rest)

  1. RESTful快速开发 (实例见D:\JavaSSM阶段源代码\springmvc_06_rest)

注解:

  1. 案例:基于RESTful页面数据交互 (实例见D:\JavaSSM阶段源代码\springmvc_07_rest_case)

实现接口,重写方法

小结

放行静态资源访问是一次性工作

2.4 SSM整合

  1. SSM整合 (实例见D:\JavaSSM阶段源代码\springmvc_08_ssm)

总结:

  1. Spring整合Mybatis

Spring配置类

数据源properties配置

MyBatis配置类

数据层接口

业务层接口

事务处理

  1. Spring整合SpringMVC

web配置类

springmvc配置类

Controller开发



  1. 表现层数据封装 (实例见D:\JavaSSM阶段源代码\springmvc_09_resulte)

注意:

  • 我们后端增删改,查单条,查全部的格式都不一样(boolean类型,json数据,数组)。日后可能会有更多的格式,前端解析不方便,所以我们要变成统一格式方便前端人员使用

我们定义一个统一数据返回结果类,用来封装协议:

data数据

code编码(每个操作都有对应的独立的编码)

msg特殊消息(比如如果没有元素就可以再msg中写一句话)

  • 当然,并没有规定这个类只能存在这三个属性。

  1. 异常处理器 (实例见D:\JavaSSM阶段源代码\springmvc_10_exception)

实例代码如下:

  • 写完这个异常处理的类后要记得在SpringMvc.Config中通过@ComponentScan注解加载配置(扫描到包就行)

注解:

  1. 项目异常处理方案 (实例见D:\JavaSSM阶段源代码\springmvc_10_exception)

项目异常处理步骤:

  • 业务异常直接处理,给用户传递一个消息
  • 系统级异常和未知异常则要根据情况处理

  1. 案例:SSM整合标准开发 (实例见D:\JavaSSM阶段源代码\springmvc_11_page)

2.5 拦截器

  1. 拦截器概念

例如权限管理就需要用到拦截器,如果没有权力就不让它走到Controller中

  • 拦截器(Interceptor)是一种动态拦截方法调用的机制 (拦截器就是一种做增强的工作机制,可以在控制器的前或后执行)
  • 作用:
    • 在指定的方法调用前后执行预先设定好的代码
    • 阻止原始方法的执行

过滤器是在tomcat服务器上配置的,所以它可以对所有的访问进行增强

  1. 入门案例 (实例见D:\JavaSSM阶段源代码\springmvc_12_interceptor)

示例代码如下:

示例代码如下:

使用这种形式可以直接在SpringMvcConfig配置类中继承接口实现了拦截器的方法后,就不需要扫描com.itheima.config这个包了

  1. 拦截器参数 (实例见D:\JavaSSM阶段源代码\springmvc_12_interceptor)

a. 前置处理

b. 后置处理

c. 完成后处理

  1. 多拦截器执行顺序 (实例见D:\JavaSSM阶段源代码\springmvc_12_interceptor)

a. 当所有preHandle方法返回true时,执行顺序如下:

b. 假如第3个preHandle方法返回false,执行顺序如下:

c. 假如第2个preHandle方法返回false,执行顺序如下:

d. 假如第1个preHandle方法返回false,执行顺序如下:

一个afterCompletion方法都不会运行

小结:


网站公告

今日签到

点亮在社区的每一天
去签到