Day7 | Java框架 | SpringMVC

Day7 | Java框架 | SpringMVC

视频链接:黑马程序员SSM框架教程-SpringMVC

学习目标

  • 掌握基于 SpringMVC 获取请求参数与响应 json 数据操作
  • 熟练应用基于 REST 风格的请求路径设置与参数传递
  • 能够根据实际业务建立前后端开发通信协议并进行实现
  • 基于 SSM 整合技术开发任意业务模块功能

SpringMVC简介

  • 表现层拿到业务层返回的数据之后,将其转换成 json 格式发送给前端页面
  • 前端页面接收数据,将其解析成用户最终浏览的页面信息,交给浏览器

技术栈

  • 后端服务器
    • 数据层实现:JDBC → MyBatis 框架(加速开发)
    • 表现层开发 :Servlet → SpringMVC 框架

SpringMVC 概述

  • SpringMVC 是一种基于 Java 实现 MVC 模型的轻量级 Web 框架
  • 优点:相比于Sevlet,使用简单,开发便捷;灵活性强

入门案例

  1. 导入 SpringMVC 坐标与 Servlet 坐标

  2. 创建 SpringMVC 控制器类(等同于 Servlet 功能)

    用于处理请求

  3. 初始化 SpringMVC 环境(同Spring环境),设定 SpringMVC 加载对应的 bean

  4. 初始化 Servlet 容器,加载 SpringMVC 环境,并设置 SpringMVC 技术处理的请求

涉及的注解



SpringMVC 入门程序开发总结

AbstractDispatcherServletInitializer 类



入门案例工作流程分析

Controller 加载控制与业务bean加载控制(SpringMVC & Spring)




PostMan

PostMan是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件

  • 作用:常用于及进行接口测试(模拟网页发送各种各样的请求)
  • 特征:简单、实用、美观、大方
  • 基本使用:注册登录-->创建工作空间/进入工作空间-->发送请求测试结果

请求与响应

请求映射路径

团队多人开发,每人设置不同的请求路径。冲突问题如何解决? --> 设置模块名作为请求路径前缀

PostMan 发送携带参数 GET 请求

PostMan 发送携带参数 POST 请求

SpringMVC解决POST请求中文乱码问题

请求方式(不同类型的请求参数):@RequestParam

请求方式



传递 json 数据

具体操作看视频:json 数组、json 对象(POJO)、json 数组(POJO)

  1. 接收请求中的 json 数据



  2. 注解


日期型参数传递

注解

类型转换器

响应

注解


类型转换器 :将对象数据转换成 JSON 返回出去

REST风格

简介

即,访问网络资源的格式。

RESTful 入门案例



注解


REST 快速开发

简化为如下形式:

注解

标准请求动作映射(4种)

案例:基于RESTful数据交互

  • 先做后台功能,开发接口并调通接口
  • 再做页面异步调用,确认功能可以正常访问
  • 最后完成页面数据展示
  • 补充:放行静态资源访问


SSM整合

SSM整合:整合配置、功能模块开发、接口测试

Spring 整合 MyBatis

Spring 整合 SpringMVC



表现层数据封装

即,前后端联调协议。配合业务将数据整理成统一格式,反馈给前端页面,再由前端页面的人员进行解析。



异常处理器

  • 各个层级均出现异常,异常处理代码书写在哪一层?-->** 所有的异常均抛出到表现层进行处理**
  • 表现层处理异常,每个方法中单独书写,代码书写量巨大且意义不强,如何解决?-->AOP思想

SpringMVC 提供了异常处理器

项目异常处理方案





案例:SSM整合标准开发-前后台协议联调

详细请看视频教程。

拦截器

概念



入门案例:配置

  1. 制作拦截器功能类
  2. 配置拦截器的执行位置




拦截器执行顺序

拦截器参数


拦截器链配置

相关推荐
什么想法都无11 分钟前
stream
java·java stream
m0_7482336412 分钟前
WebService简介
java
Murphy202312 分钟前
.net4.0 调用API(form-data)上传文件及传参
开发语言·c#·api·httpwebrequest·form-data·uploadfile·multipart/form-
love静思冥想13 分钟前
Stream `Collectors.toList()` 和 `Stream.toList()` 的区别(Java)
java·stream
我曾经是个程序员23 分钟前
C#Directory类文件夹基本操作大全
服务器·开发语言·c#
白云~️24 分钟前
uniappX 移动端单行/多行文字隐藏显示省略号
开发语言·前端·javascript
编码浪子30 分钟前
构建一个rust生产应用读书笔记7-确认邮件2
开发语言·后端·rust
Ch.yang31 分钟前
【Spring】 Bean 注入 HttpServletRequest 能保证线程安全的原理
java·spring·代理模式
web1508509664133 分钟前
基于Mysql、JavaScript、PHP、ajax开发的MBTI性格测试网站(前端+后端)
java
昙鱼41 分钟前
springboot创建web项目
java·前端·spring boot·后端·spring·maven