Cookie

//创建一个Cookie对象
Cookie cookie = new Cookie("username","JACK");
//在客户端存储的时间(生命周期)单位是秒 7天 7*24*60*60
//如果这里设置为0 就表示客户端不保存该cookie 即临时cookie
//如果设置为-1 就表示客户端关闭之后就删除该cookie 也可以称之为临时cookie
cookie.setMaxAge(-1);
//设置cookie在客户端存放的路径 如果不设置,默认在本项目名称目录下
cookie.setPath("/");
//将创建完好的cookie存放在response相应对象中
response.addCookie(cookie);

如果浏览器端拒绝存储cookie信息,就会导致JSESSIONID的值不能正常到达客户端,
那么客户端向服务器发送请求时,就无法将JSESSIONID的值带回到服务器中,从而导致找不到自己的会话Session
怎么解决:我们可以使用URL地址重写的办法解决

因为cookie在客户端只允许存储4k的数据,那么实际上cookie存储了3k数据就已经到达了一个极限了,cookie就会显得力不从心了,
所以在B/S交互中就需要一个更大的存储数据对象,这就是session存在的重要起因。

Session会话

当用户通过浏览器访问服务器的应用程序时,程序会为每一个用户创建一个session对象,实际上就是在内存中分配一块内存给该用户使用
该对象可以存储大量的数据;
如果浏览器端禁用了cookie功能,那么服务器端传递给浏览器端的jsessionid就没有办法保存,
这时候当用户再一次向服务器发送请求时,服务器会因为无法找到为用户创建好的session,
就会再次创建一个session对象,这时就需要我们考虑如何为服务器减少创建session对象的次数;
使用response对象的两个方法,保证服务端和浏览器端使用的是用一个jsessionid值。
URL重写
1--servlet中涉及向客户端输出页面元素的时候,可以在相应的请求地址外面包上一层方法,
  也就是说使用response.encodeURL(“请求地址”);为请求地址添加一个JSESSIONID的值
2--servlet中涉及跳转到新的页面时,可以使用response.encodeRedirectURL(“请求地址”);为请求地址添加一个JSESSIONID的值
3--在jsp页面中,涉及到的请求地址,可以使用jstl标签中url的value属性进行设置
  前提是需要导入两个jar包 jstl-1.2.jar 和 standard-1.1.2.jar
  <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
  如:<a href=<c:url value="encodeURL.action"></c:url>>encodeURL</a>
4--在jsp页面中使用:<a href="<%=response.encodeURL("encodeURL.action")%>">encodeURL</a>

最新文章

  1. java中流转化为Object可序列化
  2. 转:探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
  3. HashMap 和 HashTable区别
  4. Web中的监听器【Listener】
  5. Android开发手记(26) Java多线程的实现
  6. 数据结构(线段树):NOI 2016 区间
  7. 使用fdisk进行磁盘管理
  8. Linux学习之十三、快捷键与通配符、数据流重导向
  9. SystemParametersInfo API学习(128个中文参数解释,215个实际值)
  10. Progit Update Check Page
  11. BinTools 十六进制转换
  12. Codeforces AIM Tech Round3
  13. java设计模式---合成模式3
  14. docker开机自动重启参数
  15. android activity的生命周期和启动模式
  16. C# Levenshtein计算字符串的相似度
  17. Kotlin(一)
  18. Windows7安装两个jdk配置
  19. Examples of Scikit-learn Usages
  20. NFS 系统的搭建

热门文章

  1. Maven详解 之 聚合与继承
  2. 添加iis的wolf、wolf2、json支持
  3. SR4000笔记
  4. 多线程模式之MasterWorker模式
  5. 如何在Azure上创建和部署云服务
  6. 删除共享内存后key为0x00000000的问题
  7. 判断html中的滚动条
  8. linux c 及 c++打印调用者函数caller function的方法,包括arm c平台
  9. SVN版本控制安装配置说明
  10. CAS 之 集成RESTful API