Cookie / Session / URL重写
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>
Cookie / Session / URL重写的更多相关文章
- cookie session URL重写 与考试
状态管理.Cookie.Session.URL重写 HTTP协议:无状态的连接(每次连接都是新的请求)1.隐藏字段 <input type="hidden" name=&qu ...
- 关于session的实现:cookie与url重写
本文讨论的语境是java EE servlet. 我们都知道session的实现主要两种方式:cookie与url重写,而cookie是首选(默认)的方式,因为各种现代浏览器都默认开通cookie功能 ...
- javaWeb学习总结(7)-关于session的实现:cookie与url重写
本文讨论的语境是java EE servlet.我们都知道session的实现主要两种方式:cookie与url重写,而cookie是首选(默认)的方式,因为各种现代浏览器都默认开通cookie功能, ...
- (转)Session URL重写
Session URL重写 发表于 2012 年 3 月 5 日 Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制.session机制 ...
- Session,Cookie,jsessionid,Url重写
在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码: < % cookie[]cookies ...
- 【Head First Servlets and JSP】笔记12:URL重写
1.会话管理的核心在于“交换会话ID”,来回传递cookie是最简单的方法,容器通过客户端发来的JSSESIONID查找匹配的对话. 2.如果浏览器禁用了cookie,那就意味着浏览器将忽略响应首部中 ...
- Servlet之会话(Session)以及会话追踪技术(Cookie),(URL重写)和(隐藏表单域)
Session 什么是会话? 会话: Web应用中的会话 指的是一个客户端浏览器与Web服务器之间连续发生的一系列请求和响应的过程 会话状态: Web服务器和浏览器在会话的过程中产生的状态信息 作用: ...
- 隐藏表单域、URL重写、cookie、session
隐藏表单域: 隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的.当表单被提交时,隐藏域就会将信息用你设置时定义的名称和值发送到服务器上. 代码格式:<input t ...
- 客户端禁用cookie情况下的URL重写
客户端禁用cookie情况下的URL重写: servlet: package com.stono.servlet.listenerorder; import java.io.IOException; ...
随机推荐
- 【原创】LoadRunner Java Vuser开发环境配置指南
1 编写目的 本文主要介绍Java运行环境的配置,同时通过编写HelloWorld程序,讲解在LoadRunner下如何开发简单的Java Vuser脚本.关于Java语言的深入学习,大家可以参考其他 ...
- python调用系统命令 shell命令
使用python调用系统命令,基本有3种选择: 1. 使用os模块的system方法 import os os.system('ls') 2. 使用os模块的popen方法 import os os. ...
- 【JS】Beginner3 & 4 & 5 & 6:Maths & Logic & Conditonal & Looping
1.number operator () * / + - 2.logic make decisions in code compare values to produce a boolean valu ...
- 经典sql总结(1)
1.表示info 信息,字段为Id和res,如何得到如下结果
- 【Java基础】List迭代并修改时出现的ConcurrentModificationException问题
现在有一个需求,要遍历一个List,假设List里面存储的是String对象,然后该需求事判断里面如果有某个对象,则添加一个新的对象进去.自然,我们得出下面的代码: import java.util. ...
- Task任务
- 全英文版时间格式化07/29/2010 4:14:01 PM
之前格式化,AM PM出不来,总是显示上午 下午 aspx页面的绑定: <%#Eval("AddDate") == DBNull.Value ? "" : ...
- Python队列服务 Python RQ Functions from the __main__ module cannot be processed by workers.
在使用Python队列服务 Python RQ 时候的报错: Functions from the __main__ module cannot be processed by workers. 原因 ...
- Jquery实现图片轮播源码
<html><head><style type="text/css">#banner {position:relative; width:478 ...
- javascript-智能社-JS基础A笔记
JavaScript基础A JavaScript组成 ECMA : 全称ECMAScript,解释器.计算机语言的翻译 DOM:全称Document Object Model,赋予了JS操作HTML的 ...