欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在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";
    }

}

在spring boot的controller层里使用cookie

在spring boot的controller层里使用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

不合适的地方忘指正。。谢谢