秋招突击——第三弹——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应用的比较多
    在这里插入图片描述

在这里插入图片描述

拦截器链配置

在这里插入图片描述

  • 用的少

在这里插入图片描述

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1452126.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

eclipse中报出Invaild project path

一、问题: 二、提示分析: 资源路径位置类型无效的项目路径:找到重复的路径条目 项目路径中有一个名为"/eclipse_rtt_demo"的条目被多次定义,这在Eclipse的构建路径设置中是不允许的。这个重复的条目既被标记为系统包含…

利用免费的可视化组件,零代码制作一个电商销量大屏居然这么简单!

每到一年一度的618和双十一时,由于各种平台的优惠力度,使人们纷纷清空购物车下单,而在这庞大的销售数据下,各大商家却能够在第一时间发布整体销售业绩和数额,在这高效且巨大的数据背后,你是否有了解过展示数…

大模型系列:Prompt提示工程常用技巧和实践

前言 Prompt提示语是使用大模型解决实际问题的最直接的方式,本篇介绍Prompt提示工程常用的技巧,包括Zero-Shot、Few-Shot、CoT思维链、Least-to-Most任务分解。 内容摘要 Prompt提示工程简述Prompt的一般结构介绍零样本提示Zero-Shot少样本提示Few-Sho…

Java——面向对象进阶(三)

前言: 抽象类,接口,内部类 文章目录 一、抽象类1.1 抽象方法1.2 抽象类1.3 抽象类的使用 二、 接口2.1 接口的定义和实现2.2 default 关键字2.3 实现接口时遇到的问题 三、内部类3.1 成员内部类3.2 静态内部类3.3 成员内部类3.4 匿名内部类&a…

Docker 镜像库国内加速的几种方法

在国内,拉取 Docker 镜像速度慢 / 时不时断线 / 无账号导致限流等,比较痛苦。 这里提供几个当前可用的镜像仓库,更新到/etc/docker/daemon.json即可。 更新完记得运行: sudo systemctl daemon-reload sudo systemctl restart …

【AI绘画】教你一个完美的文生图方法,简单易学好上手,新手也能轻松掌握Stable Diffusion使用!

当我们还在思索, AI(人工智能)是否能替代人类的地位, 它已悄然无声, 融入我们生活的点滴细节。 在艺术创作领域, AI技术作为核心力量,展现其无尽的魅力。 AI换脸、AI影像,AI角色、A…

自学C语言-9

** 第9章 函数 ** 大型程序一般会被分为若干个程序模块,每个模块实现一个特定功能 。C语言中,由函数实现子程序,由子程序实现模块功能。本章致力于使读者了解函数的概念,掌握函数的定义及调用方式;了解内部函数和外部…

基于51单片机太阳能热水器设计

基于51单片机太阳能热水器 (仿真+程序) 功能介绍 具体功能: 1.LCD1602显示屏第一行显示温度,第二行显示温度下限; 2.按键可以设置温度的下限,控制出水; 3.当温度低于设置下限值…

使用Redis将单机登录改为分布式登录

使用Redis将单机登录改为分布式登录 1. 背景 ​ 现在大多数的应用程序登录的方式都是必须满足分布式登录的效果,比如我们在一个客户端登录之后可以在另一个客户端上面共享当前用户的信息,这样在另一个客户端登录的时候就不用用户再次输入自己的账号密码…

昂科烧录器支持Prolific旺玖科技的电力监控芯片PL7413C1FIG

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中Prolific旺玖科技的高度集成的电力监控芯片PL7413C1FIG已经被昂科的通用烧录平台AP8000所支持。 PL7413C1FIG是一款高度集成的电力监控芯片,用于测量电力使用情况的…

【C语言】13.数组指针与函数指针及其应用

一、数组指针 顾名思义,数组指针就是指向数组的指针。形如:int (*p)[10]; 注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。 数组指针的使用 int arr[10] {0}; int (*parr)[10] &arr;…

【因果推断python】34_合成控制4

目录 进行推理 关键思想 进行推理 由于我们的样本量非常小(39),因此在确定我们的结果是否具有统计学意义时,我们必须更加聪明,而不仅仅是由于随机运气。在这里,我们将使用 Fisher 精确检验的思想。它的直…

【机器学习】LightGBM: 优化机器学习的高效梯度提升决策树

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 LightGBM: 优化机器学习的高效梯度提升决策树引言一、LightGBM概览二、核心技术…

腾讯大模型最新路线图,主打一个“实用”

让大模型更接地气,腾讯交出一份阶段性答卷。 大模型狂奔一年多后,正迈向产业落地的深水区。如何用好这一革命性的新技术,已成为整个社会的一道必答题。 去年,国内大模型百花齐放,外界关注的焦点也集中在模型能力上。…

深入理解ReentrantLock

深入理解ReentrantLock 在Java并发编程中,锁(Lock)是控制多个线程对共享资源访问的重要工具。虽然Synchronized关键字是实现锁的常用方式,但它在功能上比较有限。ReentrantLock是java.util.concurrent.locks包中提供的一个更加灵…

FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《02》

系列文章 FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《01》 说明 上一篇 FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《01》 主要讲了一下如何快速搭建一个 STM32 裸机工程,其实 STM32CubeMX 可以生成 FreeRTOS 的工程,这就…

C语言小例程20/100

题目&#xff1a;一个数如果恰好等于它的因子之和&#xff0c;这个数就称为"完数"。例如61&#xff0b;2&#xff0b;3.编程找出1000以内的所有完数。 #include<stdio.h> #define N 1000 int main() {int i,j,k,n,sum;int a[256];for(i2;i<N;i){suma[0]1;k…

异常封装类统一后端响应的数据格式

异常封装类 如何统一后端响应的数据格式 1. 背景 后端作为数据的处理和响应&#xff0c;如何才能和前端配合好&#xff0c;能够高效的完成任务&#xff0c;其中一个比较重要的点就是后端返回的数据格式。 没有统一的响应格式&#xff1a; // 第一种&#xff1a; {"dat…

水表摄像直读抄表仪

1.技术性简述 水表摄像直读抄表仪&#xff0c;是一种前沿的智能计量机器设备&#xff0c;它利用超清摄像头部和图像识别算法&#xff0c;完成了远程控制、非接触的水表载入。这一技术的普及&#xff0c;颠覆了传统式人力抄表的形式&#xff0c;提高了效率&#xff0c;降低了不…

upload-labs第八关教程

upload-labs第八关教程 一、源代码分析代码审计 二、绕过分析点绕过上传eval.php使用burp suite进行抓包修改放包&#xff0c;查看是否上传成功使用中国蚁剑进行连接 一、源代码分析 代码审计 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(U…