SpringMVC的注解

article/2025/7/14 17:18:54

1. SpringMVC:Spring Web MVC

2. @RequestMapping 既是类注解,又是方法注解

3. 访问的URL路径:类路径+方法路径

4.后端开发人员测试接口,通常使用postman或其他类似工具来发起请求

   对于后端而言,使用postman或form表单,ajax都是一样的。

出现错误如何处理:

1.观察HTTP状态码:

如果404,先确认url是否存在:@RequestMapping的url映射

如果5XX,查看后端控制台的错误日志(从下往上,分段查看)

请求:

自定义请求的方法:

传递单个参数:

传递多个参数:

参数请求不分先后

重命名:

默认这个参数是必传的

可以设置required = false,参数非必传

传递对象:

传递数组:

传递集合:

集合参数:当同一个请求参数名有多个,需要使用@Requestparam绑定参数关系

默认情况下,

请求中参数名相同的多个值,封装到数组;

封装到集合,需要使用@RequestParam。

传递JSON数据

JSON本质是字符串

使用文本表示一个对象/数组/对象数组

获取URL中的参数

对参数进行重命名

上传文件:

加了fileName之后就成功了

Cookie&Session

1.用户提供账号和密码,服务器进行验证。

2.服务器验证通过,会把信息存储到Session中,把sessionId返回给客户端(set-cookie)。

3.客户端收到响应,把sessionId存储在cookie中。

4.后续请求中,客户端带着sessionId去请求,根据sessionId获取Session信息。

eg:

学校存储信息之后,给学生发校园卡(sessionId),学生进出校园,通过校园卡(cookie中的sessionId)来证明身份。

cookie可以造假,但session不可以。

Cookie和Session的区别:

Cookie和Session都是会话机制

Cookie是客户端机制

Session是服务器机制

Cookie存储的信息由程序员而定:可以用cookie来保存一些数据在客户端,不一定是用户信息,也不一定是sessionId

session中的信息(sessionId)也不一定得存在cookie中:比如通过URL传递

获取cookie

浏览器设置cookie

postman设置cookie

1.传统意义上获取cookie

2.使用注解获取cookie

设置session和获取session

方式一:

request.getSession()默认值为true

如果session为空,就会创建出一个新的session

方式二:

方式三:

获取请求头(header):

当有多个注解时,注解不分先后顺序

响应:

1.返回静态页面:

@ResponseBody 返回数据(响应正文里的内容)

既可以修饰类,也可以修饰方法

修饰类:表示该类所有的方法,返回的都是数据

修饰方法:表示

访问静态页面:

servlet路径有项目名,是因为一个Tomcat下面可以部署多个项目,需要通过路径来进行区分。

Spring路径不需要有项目名,是因为SpringBoot内置tomcat,一个tomcat下面就部署当前一个项目。

如果部署多个项目,就启动多个tomcat。

1)一个项目部署多个服务

2)部署多个项目:

给不同的项目设置不同的端口号

2. 返回HTML片段

3.返回JSON

4.设置状态码

状态码的设置不影响页面的显示


设置Content-type

自定义header

几个小测试

后端接收到需求:

1)需求评审

2)开发  :a.接口定义 b.开发 c.自测(开发人员进行测试,和测试人员无关)

3)联调:后端和前端联调

4)提测: 测试人员工作

5)上线

6)下线

接口定义:两个原则

1.看我需要什么(请求参数)

2.看对方需要什么(响应结果)

此处的接口表示API(客户端和服务端的约定)

服务提供方:

1.提供什么服务

2.提供服务时,需要什么参数

3.处理之后,需要给对方什么响应

客户端角度:

1.我需要什么服务

2.服务端要求的参数,我是否有

3.对方给我提供的信息,是否能满足我的需求

1.计算器:

我需要:参与计算的两个数字

对方需要:计算结果

接口定义:

/calc/sum

参数:

num1,num2

返回的结果:两者计算的数据

问题可能出现在三个阶段:
1.前端

2.后端

3.前后端交互

   a.请求有没有发送出去

   b.后端有没有接收请求

后端如果报错:

1.Debug

看参数穿传过来没

2.把参数打印出来

后端控制台打印了,说明这个方法调用了,参数传过来了。

2.用户登录

接口定义:

程序没问题,显示有问题。

1.清理浏览器缓存(不同电脑,不同浏览器,快捷键不一样)

a.   ctrl+shift+R    强制刷新

b.   ctrl+shift+delete    清除缓存

2.清理后端编译缓存

session存在内存中,如果不做任何处理,默认服务器重启,session数据就丢失。

3.留言板

接口定义:

1.提交留言

URL:   /message/publish

参数

from 发表人

to 接收人

message 信息

返回:提交成功/失败

true:成功

false:失败

2.获取留言

URL:   /message/getList

参数:无

返回:全部的留言信息

List<MessageInfo>

获取的数据存储在服务器的内存中,一旦服务器重启,数据就会丢失。

编译:高级语言 -> 字节码

反编码:字节码 -> 高级语言

lombok 工具包 

通过注解的方式,简化java开发

使用:

引入依赖:

1.去maven仓库

2.安装插件EditStarters,重启idea

在pom文件中点击右键

3.新建项目的时候直接添加即可

(有些依赖还是得去maven仓库)

4.图书管理系统

1.登录

URL: /user/login

参数:用户名和密码

userName

password

返回:

true:用户名和密码都正确

false:用户名或密码错误

2.图书列表

URL:/book/getList

参数:无

返回:图书列表

List<BookInfo>


http://www.hkcw.cn/article/gIPHmICCkW.shtml

相关文章

ipfs下载和安装(windows)

关于ipfs介绍&#xff0c;网上一大堆&#xff0c;这里就不讲了。 zip安装包下载衔接&#xff1a;https://github.com/ipfs/kubo/releases/download/v0.35.0/kubo_v0.35.0_windows-amd64.zip 下载之后解压&#xff0c;将文件放到一个合适的目录。 配置系统环境变量&#xff08…

World of Warcraft Hunter [Grandel] [Ancient Petrified Leaf]

World of Warcraft Hunter [Grandel] [Ancient Petrified Leaf] 猎人史诗弓任务 [远古石叶][罗克迪洛尔&#xff0c;上古守护者的手杖][伦鲁迪洛尔&#xff0c;上古守护者的长弓] 最伟大的猎手 Grandel&#xff0c;很多年前的图片。史诗弓流程。

【LeetCode 题解】两数之和(C++/Python 双解法):从语法到算法的全面解析

【LeetCode题解】两数之和&#xff08;C/Python双解法&#xff09;&#xff1a;从语法到算法的全面解析 一、题目描述 题目链接&#xff1a;1. 两数之和 难度&#xff1a;简单 要求&#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;在数组中找出两个数…

《AI Agent项目开发实战》DeepSeek R1模型蒸馏入门实战

一、模型蒸馏环境部署 注&#xff1a;本次实验仍然采用Ubuntu操作系统&#xff0c;基本配置如下&#xff1a; 需要注意的是&#xff0c;本次公开课以Qwen 1.5-instruct模型为例进行蒸馏&#xff0c;从而能省略冷启动SFT过程&#xff0c;并且 由于Qwen系列模型本身性能较强&…

17.进程间通信(三)

一、System V 消息队列基本结构与理解 消息队列是全双工通信&#xff0c;可以同时收发消息。 结论1&#xff1a;消息队列提供了一种&#xff0c;一个进程给另一个进程发送有类型数据块的方式&#xff01; 结论2&#xff1a;OS中消息队列可能有多个&#xff0c;要对消息队列进行…

【汽车电子入门】一文了解LIN总线

前言&#xff1a;LIN&#xff08;Local Interconnect Network&#xff09;总线&#xff0c;也就是局域互联网的意思&#xff0c;它的出现晚于CAN总线&#xff0c;于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发&#xff0c;其目的是提供一…

BayesFlow:基于神经网络的摊销贝叶斯推断框架

贝叶斯推断为不确定性条件下的推理、复杂系统建模以及基于观测数据的预测提供了严谨且功能强大的理论框架。尽管贝叶斯建模在理论上具有优雅性&#xff0c;但在实际应用中经常面临显著的计算挑战&#xff1a;后验分布通常缺乏解析解&#xff0c;模型验证和比较需要进行重复的推…

高压电绝缘子破损目标检测数据集简介与应用

在电力系统中&#xff0c;高压电绝缘子起着关键的绝缘与机械支撑作用。一旦发生破损&#xff0c;不仅影响输电线路的安全运行&#xff0c;还可能引发电力事故。因此&#xff0c;利用目标检测技术对高压绝缘子的破损情况进行智能识别&#xff0c;已成为当前电力巡检中的重要研究…

深度学习与神经网络 前馈神经网络

1.神经网络特征 无需人去告知神经网络具体的特征是什么&#xff0c;神经网络可以自主学习 2.激活函数性质 &#xff08;1&#xff09;连续并可导&#xff08;允许少数点不可导&#xff09;的非线性函数 &#xff08;2&#xff09;单调递增 &#xff08;3&#xff09;函数本…

paoxiaomo的XCPC算法竞赛训练经验

楼主作为一个普通二本的ICPC选手&#xff0c;在0基础的情况下凭借自学&#xff0c;获得过南昌邀请赛金牌&#xff0c;杭州区域赛银牌&#xff0c;一路上经历过不少的跌宕起伏&#xff0c;如今将曾经摸索出来的学习路线分享给大家 一&#xff0c;语言基础 学习C语言基础语法&a…

电力系统时间同步系统

电力系统中&#xff0c;电压、电流、功率变化等特征量测量都是时间相关函数[1]&#xff0c;统一精准的时间源对于电网安全稳定运行至关重要&#xff0c;因此&#xff0c;电力系统运行规程[2]中明确要求继电保护装置、自动化装置、安全稳定控制系统、能量管理系统和生产信息管理…

Codeforces Round 1028 (Div. 2)(A-D)

题面链接&#xff1a;Dashboard - Codeforces Round 1028 (Div. 2) - Codeforces A. Gellyfish and Tricolor Pansy 思路 要知道骑士如果没了那么这个人就失去了攻击手段&#xff0c;贪心的来说我们只需要攻击血量少的即可&#xff0c;那么取min比较一下即可 代码 void so…

金属材料资料

一、金属材料 1. 黑色金属材料&#xff08;钢铁材料&#xff09; 铸铁&#xff08;含碳量&#xff1e;2.11%&#xff09; 分类&#xff1a; 按碳存在形式&#xff1a;白口铸铁&#xff08;硬脆&#xff0c;炼钢原料&#xff09;、灰口铸铁&#xff08;应用最广&#xff09;、…

mysql专题上

连接服务器 mysql -h 127.0.0.1 -P 3306 -u root -p -h后接的是要连接的部署了mysql的主机&#xff0c;127.0.0.1指的是单机访问&#xff0c;如果没有指令则直接连接本地 -P后接的是端口号 一般是3306 -u后接的是要登入的用户 -p指要登陆密码 如果要退出可以直接quit mysql…

DAY43打卡

浙大疏锦行 kaggle找到一个图像数据集&#xff0c;用cnn网络进行训练并且用grad-cam做可视化 进阶&#xff1a;并拆分成多个文件 fruit_cnn_project/ ├─ data/ # 存放数据集&#xff08;需手动创建&#xff0c;后续放入图片&#xff09; │ ├─ train/ …

蓝天影院订票网站的设计V3

1 绪 论 1.1 本课题研究背景 20世纪90年代中期以来&#xff0c;随着以Internet为代表的计算机技术&#xff0c;网络技术和信息技术的迅速发展&#xff0c;影院订票也逐渐转移到网络上[1][2]。伴随着我国计算机信息产业的飞速进步&#xff0c;计算机的开发应用已经遍布生活…

Python----目标检测(《YOLO9000: Better, Faster, Stronger》和YOLO-V2的原理与网络结构)

一、YOLO9000: Better, Faster, Stronger 1.1、基本信息 标题: YOLO9000: Better, Faster, Stronger 作者: Joseph Redmon, Ali Farhadi 机构: 华盛顿大学1, 艾伦人工智能研究所2 发布时间: 2016年&#xff08;根据arXiv编号1612.08242推断&#xff09; 论文链接: [1612.0…

力扣HOT100之动态规划:32. 最长有效括号

这道题放在动态规划里属实是有点难为人了&#xff0c;感觉用动态规划来做反而更难理解了&#xff0c;这道题用索引栈来做相当好理解&#xff0c;这里先讲下索引栈的思路。 索引栈做法 我们定义一个存放整数的栈&#xff0c;定义一个全局变量result来记录最长有效子串的长度&a…

操作系统:文件系统笔记

文件系统 参考资料&#xff1a; 12.10 虚拟文件系统_哔哩哔哩_bilibili7.1 文件系统全家桶 | 小林coding 基本组成 文件系统是操作系统中负责管理持久数据的子系统&#xff0c;说简单点&#xff0c;就是负责把用户的文件存到磁盘硬件中&#xff0c;因为即使计算机断电了&#…