主要内容

  • SpringMVC简介
  • 请求与响应
  • REST风格
  • SSM整合(注解版)
  • 拦截器

SpringMVC的制作过程

  1. 创建maven项目,补全目录结构
  2. 导入jar包,添加SpringMVC需要的依赖与servlet;配置Tomcat环境
  3. 创建Controller类:声明bean、提供方法处理请求、设置访问路径、设置当前操作返回值
  4. 创建springmvc的配置类,加载controller对应的bean
  5. 使用servlet容器启动的配置类替换web.xml
  6. 启动项目、浏览器访问
  • 相关注解

    @Controller: 设定SpringMVC的核心控制器bean【Controller类处】

    @RequestMapping: 设置当前控制器方法请求访问路径【Controller类具体方法前:(”/save”)】

    @ResponseBody: 设置当前控制器方法响应内容为当前返回值【Controller类具体方法前】

设置springmvc和spring的加载范围

  • SpringMVC加载其相关bean(表现层bean),也就是controller包下的类

  • Spring控制的bean

    • 业务bean(Service)
    • 功能bean(DataSource,SqlSessionFactoryBean,MapperScannerConfigurer等)
  • 相关注解

    @ComponentScan:设置spring配置类扫描路径【类上方,属性:excludeFilters&includeFilters&type】

    @ComponentScan({"com.itheima.service","comitheima.dao"})
    @ComponentScan(value="com.itheima",
    excludeFilters=@ComponentScan.Filter(
    type = FilterType.ANNOTATION,
    classes = Controller.class //过滤的注解类型
    )
    )

springmvc更简单的配置类

public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
//加载spring配置类
protected Class<?>[] getRootConfigClasses() {
return new Class[]{SpringConfig.class};
}
//加载指定(springmvcc)配置类
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
//设置由springmvc控制器处理的请求映射路径
protected String[] getServletMappings() {
return new String[]{"/"};
}
}

请求与响应

  • 区分访问不同controller相同名字的方法

    1. 在访问路径前加controller区分
    2. 在类前面新增@RequestMapping(“/方法名”)
  • 接收页面传递的参数

    • GET/POST —发送单/多个参数

      • 直接在方法处接受参数
      • 普通、POJO、嵌套POJO、数组、集合
    • 解决请求乱码问题

      • GET:修改pom.xml
      • POST:配置过滤器
    • 形参与地址参数名不一致

      使用**@RequestParam**注解

    • 接收日期/时间类型

      使用@DateTimeFormat注解

  • 相关注解

    1. @REQUESTPARAM: 绑定请求参数与处理器方法形参间的关系【方法具体参数处】
    2. @ENABLEWEBMVC: 开启SpringMVC多项辅助功能【配置类定义上方】
    3. @RequestBody: 将请求中请求体所包含的数据传递给请求参数、设置当前控制器返回值作为响应体【方法形参定义前面】
    4. @DateTimeFormat :设定日期时间型数据格式【方法具体参数处】

REST风格

使用行为动作区分对资源进行了何种操作:查询(GET)新增(POST)修改(PUT)删除(DELETE)

页面访问:SpringMVC需要将静态资源进行放行

  • 相关注解

    @RestController: 等同于@Controller与@ResponseBody两个注解组合功能

    @GetMapping @PostMapping @PutMapping @DeleteMapping: 设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作【注意delete和get后面要有具体id】

SSM整合

李老师大好人,就是把之前所有的代码都理了一遍

  • 整合配置

    1. 创建web项目
    2. 添加依赖
    3. 创建项目包结构
    4. 创建ssm+jdbc-config配置类
  • 功能模块开发

    1. table
    2. domain
    3. Dao
    4. Service
    5. Controller
  • 单元/PostMan测试

  • 事务管理

    1. SpringConfig
    2. jdbcConfig
    3. BookService
  • 统一结果封装

    1. Result类
    2. Code类
    3. 修改Controller类的返回值
  • 统一异常处理

    1. 创建异常处理器类
    2. 搞个异常测试一下
  • 相关注解

    @RestControllerAdvice: 为Rest风格开发的控制器类做增强

    @ExceptionHandler: 设置指定异常的处理方案

前后台协议联调

  1. 将静态资源进行放行
  2. 根据不同业务进行不同操作

拦截器

  • 开发步骤
    1. 创建拦截器类interceptor
    2. 配置拦截器类SpringMvcConfig
    3. 修改拦截器拦截规则
    4. 配置多个拦截器
  • 拦截器参数
    • request、response、handler、 modelAndView

一般环境准备步骤

  1. 创建一个Web的Maven项目
  2. pom.xml添加Spring依赖
  3. 创建对应的配置类(config)
  4. 编写controller、domain
  5. (启动一下看是否能正常运行)