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




拦截器执行顺序

拦截器参数


拦截器链配置

相关推荐
drebander8 分钟前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list
乌啼霜满天24911 分钟前
Spring 与 Spring MVC 与 Spring Boot三者之间的区别与联系
java·spring boot·spring·mvc
tangliang_cn16 分钟前
java入门 自定义springboot starter
java·开发语言·spring boot
程序猿阿伟17 分钟前
《智能指针频繁创建销毁:程序性能的“隐形杀手”》
java·开发语言·前端
Grey_fantasy27 分钟前
高级编程之结构化代码
java·spring boot·spring cloud
新知图书28 分钟前
Rust编程与项目实战-模块std::thread(之一)
开发语言·后端·rust
威威猫的栗子30 分钟前
Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画
开发语言·python
力透键背30 分钟前
display: none和visibility: hidden的区别
开发语言·前端·javascript
bluefox197931 分钟前
使用 Oracle.DataAccess.Client 驱动 和 OleDB 调用Oracle 函数的区别
开发语言·c#
弗锐土豆34 分钟前
工业生产安全-安全帽第二篇-用java语言看看opencv实现的目标检测使用过程
java·opencv·安全·检测·面部