本文介绍: 使用Cookie时导致的问题之基础拓展–setDomainsetPathlocalhost与127.0.0.1的区别

前言设置cookie时,使用以下代码通过127.0.0.1访问系统时,一直拿不到cookie设置的值,由此引发了一系列基础知识学习

    /**
     * 设置Cookie的值,并使其在指定时间生效
     *
     * @param cookieMaxage cookie生效最大秒数
     */
    private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,
                                          String cookieName, String cookieValue, int cookieMaxage, String encodeString) {
        try {
            if (cookieValue == null) {
                cookieValue = "";
            } else {
                cookieValue = URLEncoder.encode(cookieValue, encodeString);
            }
            Cookie cookie = new Cookie(cookieName, cookieValue);
            if (cookieMaxage > 0) {
                cookie.setMaxAge(cookieMaxage);
            }
            /*
            * 正常的Cookie只能在一个应用访问,即cookie只能由创建他的应用访问要实现应用访问cookie或者跨域访问cookie就得使用到cookie的setPath()和setDomain()方法。
                1.同一服务器内的cookie共享方法setPath()
                2.跨域共享cookie的方法:setDomain()
            */
            if (null != request) {// 设置域名的cookie
                String domainName = getDomainName(request);
                System.out.println(domainName);
                if (!"localhost".equals(domainName)) { 
                    cookie.setDomain(domainName);
                }
            }
            cookie.setPath("/");
            response.addCookie(cookie);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。

1.可在同一应用服务器内共享方法:设置cookie.setPath(“/”);
本机tomcat/webapp下面有两个应用cas和webapp_b

2.跨域共享cookie的方法:设置cookie.setDomain(“.jszx.com”);
A机所在的域:home.langchao.com,A有应用cas
B机所在的域:jszx.com,B有应用webapp_b

3.localhost与127.0.0.1的区别

4.cookie与session区别

原文地址:https://blog.csdn.net/qq_42836388/article/details/127297670

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_22192.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注