话不多说,直接开搞

    /**
     * 回顾Cookies和session用法
     * 从HttpServlet中获取和响应
     * @param httpCookie   在参数中构建cookie
     * @param httpServletResponse
     * @param httpServletRequest
     */
    public void ceshiCookies(HttpCookie httpCookie, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest, HttpSession httpSession){
        // 从请求中获取cookies
        Cookie[] cookies = httpServletRequest.getCookies();

        // 遍历前台获取的Cookies
        for (Cookie cookie:cookies
             ) {
            if(cookie.getName().equals("姓名")){
                // 修改cookie
                cookie.setValue("修改");
                // 将修改后的cookie响应回前台
                httpServletResponse.addCookie(cookie);
                // 销毁cookie
                cookie.setMaxAge(0);
            }
        }

        // =====================================================================================

        // 由参数构建,不建议使用
        httpCookie.setValue("");
        httpCookie.getValue();

        // =====================================================================================
        // 获取session的id
        String JSESSIONID = httpSession.getId();

        // 后端自定义cookies
        // key 和 value 都只能是String类型的,注意后端sessionId响应给前端的key就是JSESSIONID
        Cookie cookie = new Cookie("JSESSIONID",JSESSIONID);

        // 通过session的上下文对象根据sessionId获取session,但是由于java说安全性问题,所以不推荐使用。
        // 建议使用session监听器配合一个静态的hashMap即可实现
        HttpSession session = httpSession.getSessionContext().getSession(JSESSIONID);

        // 销毁session
        session.invalidate();

        // 设置存活时间,如果不设置底层默认的时间等于-1(即为浏览器关闭就被销毁)
        cookie.setMaxAge(60);
        // 设置存储路径
        cookie.setPath("/");


		// 后端设置Cookie前端跨域获取丢失问题(基于springboot实现)
        // 1.跨域问题说明:后端域名为A.abc.com,前端域名为B.abc.com。
        // 2.后端设置一个cookie发送给前台,domain应该是setDomain(“abc.com”),而不是setDomain(“B.abc.com”)
        // 3.另外,还要实现WebMvcConfigurerr配置加入Cors的跨域,在尾部会附上
        cookie.setDomain("abc.com");

        // 将自己后端定义的cookies响应给前端
        httpServletResponse.addCookie(cookie);
    }



//    WebMvcConfigurerr配置加入Cors的跨域
    @Configuration
    public class WebConfig implements WebMvcConfigurer {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "POST", "OPTIONS", "PUT")
                    .allowedHeaders("Content-Type", "X-Requested-With", "accept", "Origin", "Access-Control-Request-Method",
                            "Access-Control-Request-Headers")
                    .exposedHeaders("Access-Control-Allow-Origin", "Access-Control-Allow-Credentials")
                    .allowCredentials(true).maxAge(3600);
        }

    }


Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

今天总是和昨天不一样,所以很珍贵