在spring boot的controller层里使用cookie
程序员文章站
2022-06-17 13:26:46
...
##controller层里使用cookie
简要说明:
1.cookie会话技术
2.会话: 会话技术默认就是指打开一个浏览器到关闭浏览器这个过程就称作为一个会话。
3.cookie是一个服务器发送给浏览器,在浏览器上保存的一个小文件
4.应用场景:
浏览器第一次访问服务器时,服务器会校验用户名和密码是否存在,如果存在则生成一个小文件cookie,cookie上记录着用户名和密码,把小文件发送给浏览器保存(需要设置有效时间)。
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
/**
* @author SongXianYang
* @date 2020-07-25 14:16:17
**/
@Controller
@RequestMapping("cookie")
public class CookieTest {
@ResponseBody
@RequestMapping("song")
public String myCookie(HttpServletResponse response) {
Cookie cookie = new Cookie("student", "songXianYang");
//指定cookie绑定路径 setPath 在非springboot项目里需要添加项目的名称(request.getcontestpath()+路径)
cookie.setPath("/cookie");
//给cookie设置有效期 单位秒 setMaxAge
cookie.setMaxAge(60*60*24*10);
//把生成的cookie写到响应的客户端
response.addCookie(cookie);
return "my cookie";
}
}
从请求中获取cookie的name与value
@ResponseBody
@RequestMapping("getCookie")
public String findAllCookie(HttpServletRequest request) {
//从请求中获取cookie的name与value
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
System.out.println(cookie.getName() + "====" + cookie.getValue());
if (cookie.getName().equals("student") && cookie.getValue().equals("songXianYang")) {
//执行相应的代码
} else {
//否则执行什么
}
}
return "从请求中获取cookie的name与value";
}
结果打印:
student====songXianYang
禁止cookie
不建议禁止cookie 。因为cookie一般存的都是用户名与密码。
黑客攻击首先就是获取到用户名与密码。不建议禁止。
总结
基本使用
一.常用的方法
1.New Cookie(name,value) 创建一个Cookie对象。
2.Response.addCookie(cookie) 把cookie发送给浏览器
3.Cookie.setMaxAge(秒) 如果一个cookie没有设置有效时间 ,那么并不会产生一个文件。
4.Request.getCookies() 返回网站中的所有cookie。
5.Cookie.getName() 获取cookie的名字
6.Cookie.getValue() 获取cookie的数据。
二.Cookie.setPath() 设置有效路径。一个cookie如果没有设置有效的路径,那么默认是当前工程,如果设置了,当只有访问当前路径,浏览器才会将cookie发送给服务器
下期:在spring boot的controller层里使用session
不合适的地方忘指正。。谢谢
下一篇: “男”字的解释
推荐阅读
-
关于Spring MVC在Controller层中注入request的坑详解
-
在Spring Boot中使用swagger-bootstrap-ui的方法
-
idea创建一个入门Spring Boot项目(controller层)使用Moven代码管理
-
嵌入式Redis服务器在Spring Boot测试中的使用教程
-
Spring Boot从Controller层进行单元测试的实现
-
Spring Boot中使用AOP统一处理web层异常的方法
-
在spring boot的controller层里使用cookie
-
Spring Boot Bean的使用,@Repository,@Service,@Controller,@Component
-
Spring Boot Bean的使用,@Repository,@Service,@Controller,@Component
-
打印spring boot的controller里定义的路由