SpringMVC的注解
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>