Servlet的Cookie值保存与获取
参考:http://www.blogjava.net/simon1006/archive/2009/09/07/294210.html
今天测试设置和获取Cookie遇到了一点小问题,很奇怪的问题;
把J2ee服务部署在本地 8080端口;访问任何一个服务时,如果客户端没有cookie,则下发cookie,
如果客户端已经有了该cookie的值就不下发,代码逻辑如下:
String uid="";
Cookie mycookies[] = request.getCookies();
if (mycookies!= null) {
for (int i = 0; i < mycookies.length; i++) {
if ("uid".equalsIgnoreCase(mycookies[i].getName())) {
uid=mycookies[i].getValue();
}
}
}
if(!StringUtils.isNull(uid)){
//do nothing
}else{
String host=request.getHeader("host");
uid=UUID.create();
Cookie mycookie = new Cookie("uid",uid);
mycookie.setDomain(host);
mycookie.setMaxAge(93312000);//三年
response.addCookie(mycookie);
}
System.out.println("uid is>"+uid);
1、访问:
http://localhost:8080/
以及内部的页面,打印uid的值是相同的;符合要求
2、访问:
http://127.0.0.1:8080
以及内部的页面, uid每次都获取得值都是不同的;
两者的区别仅仅的访问的方式不同,如果用ip访问
Cookie mycookies[] = request.getCookies();中永远获取不到uid的值;
(80端口号除外)
查了浏览器的具体cookie值,发现
http://localhost:8080/ 访问的时候,cookie值放在localhost下,服务器自动生成的SESSIONID也是存放在localhost路径下。
http://127.0.0.1:8080/ 访问的时候,cookie uid值放在127.0.0.1:8080下,在127.0.0.1:8080下的cookie服务端的Servlet永远都获取不到;而服务器自动生成的SESSIONID则是在127.0.0.1下,与uid存放位置不同。
所以在服务端下发cookie的时候,
String host=request.getHeader("host");
需要修改为
if(host.indexOf(":")>-1){
host=host.split(":")[0];
}
或者放弃设置mycookie.setDomain(host);
这样cookie值也是保存在127.0.0.1下的,与端口号不关联
当然是服务器已经有域名的就不会出现端口号下获取不到cookie的值;
Servlet的Cookie值保存与获取相关推荐
- cef谷歌内核浏览器获取cookie值并保存
目的:获取cookie存入数据库,以实现下次登录的自动完成 知识点:事件和委托 建立cookie读取对象,继承接口ICookieVisitor public class CookieVisitor : ...
- Jquery操作Cookie,保存商品ID值至本地文件中
1.什么是Cookie? cookie 小甜饼?呵呵! 想吃了吧!Cookie就是服务器存本地的一个文件,可以在服务器上创建,也可以在客户端创建.主要是用来存储用户的一些记录,比如浏览过的商品等.目前 ...
- php cookie expires,php cookie类(设置、获取、删除cookie值)
分享一个php cookie操作的类,可以设置cookie.获取cookie.删除cookie. 代码: /** * php cookie类 * class:PHP_COOKIE * by www.j ...
- 如何获取cookie值
获取cookie的值 在上一节谈到了读取cookie的名与值,可以看到,只能够一次获取所有的cookie值,而不能指定cookie名称来获得指定的值,这样就必须从cookie中找到你要那个值,因此处理 ...
- 前台setcookie之后从后台取出来_后台设置Cookie值,前台进行获取
后台设置Cookie值,前台进行获取 通过cookie取得用户的个性化信息 注意事项:1.中文的存在,需要进行utf-8的编码,之后再进行解码即可,避免乱码. 之所以 有时会用到 cookie.set ...
- python获取cookie值的方法_Python获取Cookie、设置Cookie的N种方法
方法一通过python的requests包: import requests url = "https://fanyi.baidu.com" res = requests.get( ...
- cookie分号后面没有值_Cookie的属性(cookie的设置、获取和删除)
每个cookie都有四个可选的属性,他们分别控制cookie的生存周期.可见性.安全性等. Cookies最初设计时,是为了CGI编程.但是,我们也可以使用Javascript脚本来操纵cookies ...
- JavaEE使用servlet、cookie实现用户登陆和数据保存
文章目录 一.项目分析 二.项目功能(只实现了记住密码功能!其他的学会了再补上!) 三.制作界面 四.项目实现结果(只实现了记住密码功能!!其他的等我学到了那部分再去补上!!) 一.项目分析 根据要求 ...
- Js设置cookie值和获取cookie值
一.应用场景: 将值存储在cookie里,页面间调用cookie值. //设置cookie function setCookie(name, value) {document.cookie = nam ...
最新文章
- 不允许程序员透露薪资!!!凭啥?
- 文巾解题 196. 删除重复的电子邮箱
- Oracle查询给表起别名
- SimGAN-Captcha代码阅读与复现
- 农信计算机资料录入试题,农村信用社考试计算机测试题(一)
- 反射如何拿到私有属性_JAVA中反射机制的价值
- poj 1236 Network of Schools
- leetcode 73. 矩阵置零
- 【数据结构1.3笔记】研究内容
- linux getit文件乱码,winzipaes文件名乱码解决方案
- Java基础语法实例(2)——实习第二天
- gun linux定义,linux gun make 入门
- 7大排序时间复杂度对比、以及优化
- linux 蓝牙串口 调试,linux 蓝牙串口 连接android手机调试
- windows下载及安装redis
- windows 查询域名DNS解析
- jquery.qrcode.js生成二维码
- 透过案例看清API接口的作用——演示1688商品详情接口
- [bzoj1022] [SHOI2008]小约翰的游戏John
- Typora导出Word