首先,证明了Cookie不可跨名性,localhost域名拿不到www.zhongfucheng.com颁发给浏览器的Cookie
再使用www.image.zhongfucheng.com域名访问,证明即使一级域名相同,二级域名不同,也不能获取到Cookie
当然,使用www.zhongfucheng.com当然能获取到Cookie,Cookie通过请求头带给服务器
现在我希望一级域名相同的网页Cookie之间可以相互访问。也就是说www.image.zhongfucheng.com可以获取到www.zhongfucheng.com的Cookie就需要使用到domain方法。
Cookie cookie = new Cookie("name", "ouzicheng"); cookie.setMaxAge(1000); cookie.setDomain(".zhongfucheng.com"); response.addCookie(cookie); printWriter.write("使用www.zhongfucheng.com域名添加了一个Cookie,只要一级是zhongfucheng.com即可访问");
使用www.zhongfucheng.com发布一个Cookie
使用www.image.zhongfucheng.com域名访问一下。发现可以获取到Cookie了
Cookie的路径
Cookie的path属性决定允许访问Cookie的路径
- 一般地,Cookie发布出来,整个网页的资源都可以使用。现在我只想Servlet1可以获取到Cookie,其他的资源不能获取。
- 使用Servlet2颁发一个Cookie给浏览器,设置路径为"/Servlet1"。
Cookie cookie = new Cookie("username", "java"); cookie.setPath("/Servlet1"); cookie.setMaxAge(1000); response.addCookie(cookie); printWriter.write("该Cookie只有Servlet1获取得到");
使用Servlet3访问服务器,看看浏览器是否把Cookie带上。显然,浏览器访问Servlet3并没有把Cookie带上。
使用Servlet1访问服务器,看看浏览器是否把Cookie带上。答案是肯定的!