java中Servlet Cookie取不到值原因解决办法
java中Servlet Cookie取不到值原因解决办法
现象:
在测试带Cookie的HTTP请求时发现,服务端用request.getHeader("cookie")可以去到值; 但是用request.getCookies()却不行
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的值
解决办法:
String cookie=request.getHeader("cookie"); Cookie mycookies[] = request.getCookies();
加上前面一行后面即可取到,
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
servlet之cookie简介_动力节点Java学院整理
首先来了解什么是"会话".会话是web技术中的一个术语,可以简单的理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,这个过程称为一个会话. 如果在打开一个浏览器访问一个页面后,再打开一个浏览器访问同一个页面,那这就是有两个会话:而打开一个浏览器访问一个页面后,通过这个页面上的某个超链接是从新的浏览器打开的,那依然只算一个会话. 每个用户在使用浏览器与服务器进行会话的过程中,各自不可避免地会产生一些数据,而程序要想办法为每个用户保存这些数据.比如,用户
-
Java Servlet及Cookie的使用
本文介绍了Java Servlet编程所需的软件及环境配置.只要你有一台安装Windows 95/98了的PC机,便可以按照本文的步骤开发Servlet程序了.本文同时给出了通过Java Servlet向用户的硬盘写入和读取Cookie的方法及例程.通过它可以实现网上常见的个性化网页.网上购物篮.密码验证等. Java Servlet是运行于Web服务器上的Java代码,它可以接受用户请求,进行相应的处理,并向用户提供反馈.其作用类似于CGI程序,可以实现网页中很多交互式效果,但比CGI程序效率
-
servlet Cookie使用方法详解(六)
本文实例为大家分享了servlet Cookie的使用方法,供大家参考,具体内容如下 1.cookie介绍 Cookie,指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密).(可以叫做浏览器缓存) 2.cookie案例 servlet 源码 package com.learn; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.
-
全面了解servlet中cookie的使用方法
---恢复内容开始--- Cookie是存储在客户端计算机上的文本文件,并保留了它们的各种信息跟踪的目的. Java Servlet透明支持HTTP Cookie. 涉及标识返回用户有三个步骤: • 服务器脚本发送到浏览器的一组cookie.对于如: 姓名,年龄,或识别号码等. • 浏览器将这些信息存储在本地计算机上,以备将来使用. • 下一次浏览器发送任何请求,Web服务器,然后这些cookie发送信息到服务器,服务器将使用这些信息来识别用户. 以下是有用的方法列表时,可以使用servlet操
-
java中Servlet Cookie取不到值原因解决办法
java中Servlet Cookie取不到值原因解决办法 现象: 在测试带Cookie的HTTP请求时发现,服务端用request.getHeader("cookie")可以去到值; 但是用request.getCookies()却不行 Cookie mycookies[] = request.getCookies(); 中永远获取不到uid的值:(80端口号除外) 原因: 查了浏览器的具体cookie值,发现 http://localhost:8080/ 访问的时候,cookie值
-
Java中tomcat memecached session 共享同步问题的解决办法
事件缘由:一个主项目"图说美物",另外一个子功能是品牌商的入驻功能,是跟主项目分开的项目,为了共享登录的用户信息,而实现session共享,俩个tomcat,一个tomcat6,一个tomcat7 web项目windows系统下实现session的共享 第一个步: 在俩个tomcat的context.xml这个文件中配置如下代码: <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManage
-
java中Servlet监听器的工作原理及示例详解
监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. 监听器原理 监听原理 1.存在事件源 2.提供监听器 3.为事件源注册监听器 4.操作事件源,产生事件对象,将事件对象传递给监听器,并且执行监听器相应监听方法 监听器典型案例:监听window窗口的事件监听器 例如:swing开发首先制造Frame**窗体**,窗体本身也是一个显示空间,对窗体提供监听器,监听窗体方法调用或者属性改变:
-
Java中Servlet的生命周期
目录 init() service() doGet() doPost() destroy() 方法 架构 Servlet从创建直到毁灭的整个过程: Servlet 初始化后调用 init () 方法 Servlet 调用 service() 方法来处理客户端的请求 Servlet 销毁前调用 destroy() 方法 最后,Servlet 是由 JVM 的垃圾回收器进行GC init() 只调用一次.在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用.因此,它是用于一次性初始化
-
JSP 中使用cache取值出错解决办法
JSP 中使用cache取值出错解决办法 这段时间发现系统取数据过程中,偶尔出现取数据错乱的问题,按逻辑应该取出A数据,结果取出了B数据.仔细检查了代码, 发现代码逻辑没有问题,瞬间就蒙了,是哪里出现问题了呢.仔细想了一下,以前都没出现问题,自从加了缓存之后就偶尔出现了问题,那肯定问题是缓存有问题. 仔细研究了缓存的源码,原来问题出现在DefaultKeyGenerator生成key上面.代码如下: public class DefaultKeyGenerator implements Ke
-
java中Servlet程序下载文件实例详解
对于一些普通的文件下载,想必大家都会去点击默认的链接进行资料获取.效率慢是一个方面,有时候下载的过程并不顺序.在学习了python中的一些程序后,我们可以选择使用Servlet进行文件的下载.下面我们先就Servlet进行简单的说明,然后带来有关的下载文件代码实例. 1.说明 Servlet是Sun公司开发的用于交互式地浏览和生成数据,生成动态Web的技术.狭义的Servlet是指Java语言实现的一个接口.但一般情况下,我们把实现了Servlet接口的Java程序叫做Servlet 2.使用s
-
JSP 中使用cache取值出错解决办法
JSP 中使用cache取值出错解决办法 这段时间发现系统取数据过程中,偶尔出现取数据错乱的问题,按逻辑应该取出A数据,结果取出了B数据.仔细检查了代码, 发现代码逻辑没有问题,瞬间就蒙了,是哪里出现问题了呢.仔细想了一下,以前都没出现问题,自从加了缓存之后就偶尔出现了问题,那肯定问题是缓存有问题. 仔细研究了缓存的源码,原来问题出现在DefaultKeyGenerator生成key上面.代码如下: public class DefaultKeyGenerator implements Ke
-
Java中Servlet的生命周期详解
目录 Web基础和HTTP协议 什么是Servlet Servlet的生命周期 Web基础和HTTP协议 ┌─────────┐ ┌─────────┐ │░░░░░░░░░│ │O ░░░░░░░│ ├─────────┤ ├─────────┤ │░░░░░░░░░│ │ │ ├─────────┤ │ │ │░░░░░░░░░│ └─────────┘ └─────────┘ │ request 1 │ │─────────────────────>│ │ request 2 │ │───
-
angularJs select绑定的model取不到值的解决方法
前端直接绑定值,不传参数,controller中会一直取到初始化的值,无法实时获取前端select改变的值. 解决方法一:前端调用方法的时候,一边传参数(亲测可用) <select ng-model="speed" name="speed" ng-change="vm.h5Video().Playspeed(speed)> <option value="1" selected="selected"&
-
vue data有值,但是页面{{}} 取不到值的解决
我的问题出在js引入的顺序不对,导致不能正常显示vue中的值 正确的顺序应该是: 先引入vue的js--------html代码-----最后引入自己写的js 补充知识:vue中子组件的created.mounted生命周期钩子中获取不到props中的值问题 父子组件通信 这个很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 . 例如:在父组件中 <template> <div> <div :Data="Data"></d
随机推荐
- 使用PHP导出Redis数据到另一个Redis中的代码
- 分分钟玩转Vue.js组件(二)
- eclipse 中的javac命令与java命令
- Java实现监控多个线程状态的简单实例
- php的$_FILES的临时储存文件与回收机制实测过程
- PHP实现图片压缩的两则实例
- Node.js中require的工作原理浅析
- Nginx隐藏index.php和Pathinfo模式配置例子
- 我,一个写代码的 程序员 感悟
- 使用Ruby来处理文本的教程
- MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数
- 判断数据库表是否存在以及修改表名的方法
- Oracle对于死锁的处理方法
- 使用JavaScriptCore实现OC和JS交互详解
- Javascript学习笔记8 用JSON做原型
- C语言中压缩字符串的简单算法小结
- PHP面向对象程序设计之对象生成方法详解
- Linux配置和使用i3窗口管理器的教程
- express+vue+mongodb+session 实现注册登录功能
- python中的colorlog库详解