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. 配置拦截器的执行位置




拦截器执行顺序

拦截器参数


拦截器链配置

相关推荐
敲代码不忘补水6 分钟前
二十种编程语言庆祝中秋节
java·javascript·python·golang·html
0点51 胜10 分钟前
[ffmpeg]音频格式转换
开发语言·c++·ffmpeg
码农研究僧19 分钟前
Java或者前端 实现中文排序(调API的Demo)
java·前端·localecompare·中文排序·collator
Chase-Hart19 分钟前
【每日一题】LeetCode 7.整数反转(数学)
java·数据结构·算法·leetcode·eclipse
水木流年追梦22 分钟前
【python因果推断库16】使用 PyMC 模型进行回归拐点设计
开发语言·python·回归
四角小裤儿儿26 分钟前
Java数据结构(十一)——归并排序、计数排序
java·数据结构·排序算法
guangzhi063333 分钟前
JVM本地方法栈
java·jvm·面试
akhfuiigabv38 分钟前
使用LangChain创建简单的语言模型应用程序【快速入门指南】
java·python·语言模型·langchain
忘却的纪念1 小时前
基于SpringBoot的考研资讯平台设计与实现
java·spring boot·spring
.生产的驴1 小时前
SpringBoot 消息队列RabbitMQ死信交换机
java·spring boot·后端·rabbitmq·java-rabbitmq