目录
获取cookie--httpserverletRequest
注解
这里restController的作用就是在启动启动类的时候可以扫描到对应的类或者是方法
通常情况下,get和post方法都支持客户端的该请求,但是若是强制请求其一:
只允许get请求去访问 不允许其他请求方法去访问
只允许post访问
也可以这么写:
浏览器是get请求,所以无法访问
使用传参:
返回:
使用body传参:
fidder抓包
传递对象:
tostring方法:
传递对象:
查看返回:
使用URL:
这种传参方式和上面的传参方式是一样的
这个表示的意思就是从前端接收参数,然后将数值赋值给keyword
这里如果传递的是keyword:就会提示400的错误
RequestParam这个注解的值是必须传递的看下图 true,如果不需要必须传
这个是叫做参数绑定
可以把这个对应的值改为false
若是需要传递数组:
相同的值会归为一类
也可以这么传递数组:
传递list
引入依赖测试用例怎么写:
写第二个:
传递json的数据:
{"name":"zhangsan","age":12,"gender":1}
进行重命名的操作
上传一个文件
文件上传到指定的地址当中 调用下面的方法
cookie存储的是少量的信息,session存储的信息量更多医院存储个人信息--session 患者拿的诊疗卡--cookie
学校存储学生信息--session 学生的学生证--cookie
为什么需要cookie和session??因为http协议是无状态的
无状态:就是没有记忆力的意思
注解括号里的属性默认是给到value的,查看到value对应的是path
只有一个值的时候走的是默认,但是如果是多个的话,需要写属性是什么
spingmvc的后端核心:建立连接--接收参数,返回结果
获取cookie--httpserverletRequest
获取cookie原始方式:
发送请求:
说明返回cookie了
第二种方式:
第一种的方式更佳
获取session
这些场景常用在用户登录的场景当中
分为设置成true和false:
值为true,用户有session:
如果值为false
浏览器访问和postman访问分别是不同的客户端,在用抓包的时候,显示的cookie数据是不一样的
这里也存储对应的cookie信息:
使用postman:
查看:
当我们再次发起请求的时候,就会把cookie信息携带上
如果我们把SessionID的值修改,那么SessionID就校验失败了,所以就会返回用户未登录的信息
这里的HttpSession指的是每一个客户都有对应的HttpSession对象
还有两种获取Session的方式 如下:
解释:
获取header:
访问:
第二种方式:
访问:
响应-返回静态页面
下面的index的场景就是后端要返回前端写成的界面
现在是前后端分离的场景
创建静态文件:
代码:
这里返回的html页面前面的/是要有的
去掉的话会404错误 requestMapping上的可以不加 前端代码是不加的
/的意思表示的是相对路径的意思
是否有/以程序运行的结果为准 有可能是idea的环境变量和配置是不一样的
Controller和RestController:这里两者的区别是什么?为什么使用RestController就不能访问了呢?
@RestController=@ResponseBody + @Controller
ResponseBody:表示的是返回数据
程序启动默认扫描启动类所在的路径下,如果启动类在别的路径,那么其他的接口路径就不会被扫描,也就是不会访问成功了
也就是说,我们的代码,必须放在启动类所在的路径下以及其子路径下才会生效
这些才会被spring扫描到
表示只能放到类上:
既可以放到类上,也可以放到方法上:
只能放到参数上:
target文件里面的内容就是编译产生的结果
上面返回的是页面,使用的是Controller,但是当我们要返回数据的时候,就要使用ResponseBody
使用了注解之后就可以访问成功了
现在基本上不处理页面了
一个类中,既有返回页面的方法,又有返回数据的方法 使用@Controller
在返回数据的方法上加@ResponseBody
如果一个类全部返回数据:可以使用@RestController或者@Cortroller + @ResponseBody
如果一个类全部返回页面,使用@Controller@ResponseBody:即是类注解,又是方法注解
作为类注解的时候,表示该类的所有方法
作为方法注解时,表示该方法返回数据,全部返回数据
响应-返回HTML页面
查看返回
如果我们要查看的是<h1>的显示,把标签的内容也需要展示出来
网页自动解析:
如果我们把解析出来的Content-Type: text/html;charset=UTF-8 值修改成文本的格式,就会响应的是文本的格式:
返回:
抓包查看:
返回json
参数请求和返回这种格式是比较多的
spring会根据返回结果设置Content-Type 乱码的情况下是需要自己设置的
返回:
Content-Type: application/json:说明被成功识别成json
json格式的数据,前端可以直接处理 本身json就是一个字符串
查看:
设置状态码
demo:
这里的状态码是不影响状态码的展示的 真实的返回是spring进行返回的:
设置header:
使用ajax发起请求
ajax是一种用于创建快速、动态和交互式网页应用的前端开发技术。它允许网页在不重新加载整个页面的情况下,与服务器进行异步通信,从而实现局部内容更新。
异步等待后端返回结果
核心特点
异步通信:无需刷新整个页面即可从服务器获取或发送数据。
提升用户体验:页面响应更快,交互更流畅。
减少带宽消耗:只传输需要更新的数据,而不是整个页面。
lombok的使用
添加依赖:
这里加了一个@Data,就不用写get和set方法等等了点击项目进行运行:以下是我们反编译的文件
说明有这些已经变成了,但是我们的注解消失了,注解只是到了源码阶段,所以是只能在源码阶段看到它。
data注解包含多个注解,可以直接使用注解:
反编译的结果:
maven仓库使用
当我们需要一个依赖的时候,访问中央仓库,查询:
搜索:
点击:
版本相关区分:建议选择次新版本
安装插件:
验证是否安装成功:
出现:说明安装成功
点击:
热部署和热修复的理解
"热部署"和"热修复"虽然听起来相似,也都涉及在不停止服务的情况下更新系统,但它们不是同一个概念,侧重点和应用场景有所不同。
定义:
热部署是指在应用程序运行过程中,无需重启服务器或服务,直接部署新的代码、配置或资源文件,并使其立即生效。目的:提升开发效率或实现无缝发布。
热修复是指在线上系统出现紧急 Bug 或安全漏洞时,不中断服务的情况下,快速推送一个小型补丁来修复问题。目的:快速止损,避免发版周期长带来的风险。
维度 热部署(Hot Deployment) 热修复(Hotfix) 目的 快速上线新功能/资源/配置 紧急修复线上严重 Bug 范围 可大可小(模块、页面、配置等) 通常很小(只改出问题的代码) 使用阶段 开发、测试、部分生产环境 主要在生产环境 频率 较频繁(尤其开发时) 偶发(仅在紧急情况下) 技术要求 依赖框架/容器支持 需要代码插桩、类替换、沙箱等机制


































































































