当前位置: 首页 > news >正文

秋招突击——第三弹——Java的SSN框架快速入门——SpringMVC

文章目录

    • 说明
    • SpringMVC简介
      • 入门案例
      • 入门案例的工作流程
        • 配置环境的问题
        • 步骤总结
        • 注释学习
        • 开发模式
        • Severlet容器类配置
        • 入门案例工作流程分析
        • Bean加载控制
      • Postman工具请求
    • 请求和响应
      • 请求映射路径
        • 请求参数
        • 普通参数
          • 设置过滤器,对输入进行处理
        • Json数据传递参数
        • 注释学习
        • 日期型参数传递
      • 响应数据
        • 响应的不同内容
    • REST风格(重要)
      • 风格简介
      • 入门案例
        • 注解学习
        • 总结
      • 快速开发
    • 案例:SSM整合
      • 表现层和前端数据数据传输协议实现
    • SSM整合——异常处理
      • 统一集中异常
      • 统一抛出异常
    • SSM整合——前后台协议联调
      • 列表功能
      • 添加功能
      • 修改功能
      • 删除功能
      • 汇总
    • 拦截器
      • 拦截器的概念
      • 入门案例
      • 拦截器的参数
      • 拦截器链配置
    • 总结

说明

  • 不能看过就跳过,截图可以,但是如果提到了不会的概念,要回去翻一下,然后,把翻到的东西,在粘贴到当前的目录下方,住打一个快捷。

SpringMVC简介

  • web开发技术,和serverlet相类似
  • 基于Java实现的MVC模型的轻量级web框架
    在这里插入图片描述

学习目标

在这里插入图片描述
在这里插入图片描述

  • 数据层
    • MyBatis
  • 表现层
    • SpringMVC

入门案例

  • 下述实在pom中定义坐标
    在这里插入图片描述

  • 然后是spring技术,就需要创建对应的bean,需要使用注解进行说明

  • 什么是bean

    • 在这里插入图片描述
    • 这里是使用注解进行开发的,web应用是标注在表现层的,所以需要使用Controller体现
    • 在这里插入图片描述
  • 相关说明

    • RequestMapping说明访问路径
    • 函数是执行对应路径的时候,执行的函数
      在这里插入图片描述
  • SpringMVC的配置类,具体有两个操作,分别如下

    • 指明是Spring的配置类,所以要增加@Configuration说明
    • 指明Bean的搜索路径,所以要增加@ComponentScan
      在这里插入图片描述

在这里插入图片描述

  • Spring的环境启动了,需要要求Tomcat加载Spring启动的东西
    • 告诉Tomcat容器,加载Spring的配置
    • 配置拦截所有请求,说明那些请求交给SpringMVC处理

入门案例的工作流程

  • 导入坐标
    在这里插入图片描述

  • 创建对应的controller对象
    在这里插入图片描述

  • 创建对应的配置类,加载对应的bean,并加载扫描空间

在这里插入图片描述

  • 创建对应的tomcat的配置类,说明容器的对象
    • 定义一个servlet容器启动的配置类,在里面加载spring的配置

在这里插入图片描述

配置环境的问题
  • 这里出现了配置环境的问题,原来下载的是java10,jdk22,然后对应的tomcat是10.0,跑不起来,这里换成java 8,然后jdk1.8,重新下载新的tomcat就行了。
  • 最终的运行结果如下

在这里插入图片描述

步骤总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注释学习

在这里插入图片描述
在这里插入图片描述

开发模式

在这里插入图片描述

Severlet容器类配置

在这里插入图片描述
在这里插入图片描述

入门案例工作流程分析
  • 本质是将springmvc的配置,加载到tomcat的容器中,然后由tomcat统一进行处理。
    在这里插入图片描述
  • 所有的请求都是由Springmvc完成的。
    在这里插入图片描述
Bean加载控制

在这里插入图片描述

  • 要求是springmvc加载controller中的bean,然后要求spring加载业务层的bean,互不干扰。
    具体解决办法

在这里插入图片描述

精确配置,适配所有数据库技术

  • 这一种主要使用
@ComponentScan({"com.itheima.service","com.itheima.dao"})

尽量扩大范围,但是排除部分内容

  • 过滤掉使用controller注解的bean
@ComponentScan(value="com.itheima",excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)
)

将spring和springmvc两个配置都加载到tomcat中

在这里插入图片描述

  • 或者使用如下的方式,简化开发

在这里插入图片描述

Postman工具请求

在这里插入图片描述
在这里插入图片描述

请求和响应

请求映射路径

在这里插入图片描述
在这里插入图片描述

请求参数

后台不区分post请求和get请求
正常就是名称对名称,如果对不上,就是用@RequestParam

普通参数

在这里插入图片描述

  • 如果get请求中的参数和形参的名称不一样,就要使用RequestParam进行标记,保证请求中的变量名赋值给形参

在这里插入图片描述

  • 如果传入对象,只需要和对象的成员数据类型相同,会自动构成对应的成员
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置过滤器,对输入进行处理
  • 过滤器是在配置文件中设置的
    在这里插入图片描述
Json数据传递参数
  • 在pom中添加坐标
    在这里插入图片描述

  • 设置发送json的请求
    在这里插入图片描述

  • 在config中增加对应的EnableWebMvc注释
    在这里插入图片描述

@EnableWebMvc  // 开启有json数据转换为对象的功能
  • 接受数据的追求

在这里插入图片描述

  • json对象的格式
    在这里插入图片描述
  • json集合对象的格式

在这里插入图片描述

注释学习
  • RequestBody学习

在这里插入图片描述

日期型参数传递
  • 自己定义格式,使用注释@DateTimeFormat
    *

  • 使用convert接口实现

在这里插入图片描述

响应数据

  • 响应页面
  • 响应数据
    • 文本数据
    • json数据
响应的不同内容
  • 什么都不加,默认是返回页面
  • 加上responseBody是返回对应文本信息

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
使用HTTPMessageConverter二接口实现

  • 将jackson数据进行转换

在这里插入图片描述

REST风格(重要)

风格简介

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

入门案例

  • 设置http请求动作

在这里插入图片描述

  • 设置形参

在这里插入图片描述

注解学习

在这里插入图片描述

总结

在这里插入图片描述

快速开发

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

案例:SSM整合

表现层和前端数据数据传输协议实现

在这里插入图片描述

在这里插入图片描述

  • 通过controller返回的数据

在这里插入图片描述

SSM整合——异常处理

统一集中异常

  • 在运行会出现异常

在这里插入图片描述

  • 常见的异常类型
    在这里插入图片描述

  • 异常处理方式——所有异常抛出到表现层进行处理,使用切面思想AOP进行处理

    • 这里使用spring已经统一实现的异常处理模块统一处理

在这里插入图片描述

  • 对应的注解
    在这里插入图片描述
    在这里插入图片描述

统一抛出异常

  • 常见的异常种类

在这里插入图片描述

  • 每一类的具体处理方式

在这里插入图片描述
编码实现

  • 分类定义对应的异常处理类型

在这里插入图片描述

  • 定义异常码

在这里插入图片描述

  • 触发自定义异常
    在这里插入图片描述
  • 拦截并处理异常

在这里插入图片描述

  • 异常情况对比

在这里插入图片描述

SSM整合——前后台协议联调

列表功能

  • 首先这里回顾一下,要增加网页返回功能,让部分网络请求过渡到对应路径中,通过springmvcsupprt进行过滤

在这里插入图片描述

  • 并在对应配置类中增加组件扫描配置

在这里插入图片描述
books页面分析

  • 下述是列表页的相关分析,create创建页面是调用的函数,调用getall函数,然后在发送get请求,然后将结果使用datalist进行显示
    在这里插入图片描述

添加功能

  • 这里是根据添加的结果判是否返回成功,并给出对应的操作界面变化,这里需要改变一下对应save,update结构
    在这里插入图片描述
  • 前端处理具体操作
  • 这里要求弹出小窗时,就把数据删除,保证数据清空
    在这里插入图片描述
  • 在下述操作中,根据后台返回的操作,前台给出对应界面操作
    在这里插入图片描述

修改功能

  • 先弹出编辑窗口,然后在添加数据
    • 点击编辑按钮时,查询数据,发送ajax请求
      • 这里是核心,传入请求参数,并将结果进行返回
    • 编辑后添加数据,并进行保存

在这里插入图片描述

删除功能

  • 具体操作流程
    • 弹出提示框
    • 做删除业务
    • 取消删除操作
      在这里插入图片描述

汇总

在这里插入图片描述

拦截器

拦截器的概念

在这里插入图片描述

  • 作用
    • 在指定操作的前后执行预先设定的代码
    • 阻止原始方法的执行
      在这里插入图片描述
  • 注意拦截器和过滤器的区别,拦截器是在springmvc框架下的,但是过滤器是在springmvc之前的,是在serverlet之前的。

入门案例

编程流程

  • 制作拦截器的功能类
  • 配置拦截器的执行位置
    拦截器是给表现层是个用的,需要定义在controller中使用

在controller中声明一个拦截器类,声明为组件

  • 实现handlerinterceptor方法

在这里插入图片描述

在config中配置拦截器对应配置类,自动装配组件,并指定使用方法
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
简化开发的方式
在这里插入图片描述

执行流程

在这里插入图片描述

拦截器的参数

  • 主要是request应用的比较多
    在这里插入图片描述

在这里插入图片描述

拦截器链配置

在这里插入图片描述

  • 用的少

在这里插入图片描述

总结

这里过得比较快,最多在学一周,这个就得过一遍,然后再根据项目具体的开始封装。

相关文章:

  • 搭建WWW服务
  • 设计模式之服务定位模式
  • 【机器学习】神经网络与深度学习:探索智能计算的前沿
  • 以太坊网络中为什么要设置Gas上限
  • 从零手写实现 nginx-23-nginx 对于 cookie 的操作
  • mysql的索引可以分为哪些类型
  • 编程后端:深入探索其所属的行业领域
  • Petalinux由于网络原因产生的编译错误(2)--Fetcher failure:Unable to find file
  • 技术革命的十年:计算机、互联网、大数据、云计算与AI
  • 基于GTX 8B10B编码的自定义PHY上板测试(高速收发器十四)
  • 【Linux】基础IO——文件描述符,重定向
  • web前端设计界面:深度解析与创意实践
  • OpenCV 的模板匹配
  • cuda-cuda语法
  • 【Java并发编程之美 | 第一篇】并发编程线程基础
  • 时间复杂度分析经典问题——最大子序列和
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • angular2开源库收集
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Linux后台研发超实用命令总结
  • React-Native - 收藏集 - 掘金
  • V4L2视频输入框架概述
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 读懂package.json -- 依赖管理
  • 官方解决所有 npm 全局安装权限问题
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 消息队列系列二(IOT中消息队列的应用)
  • 学习Vue.js的五个小例子
  • 一些关于Rust在2019年的思考
  • 用Canvas画一棵二叉树
  • MyCAT水平分库
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • %@ page import=%的用法
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (PADS学习)第二章:原理图绘制 第一部分
  • (八十八)VFL语言初步 - 实现布局
  • (备忘)Java Map 遍历
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)setTimeout 和 setInterval 的区别
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .naturalWidth 和naturalHeight属性,
  • .Net - 类的介绍
  • .NET 8 跨平台高性能边缘采集网关
  • .net core 控制台应用程序读取配置文件app.config