Cookie和Session的区别
来源:互联网 发布:新东方考研网络课程 编辑:程序博客网 时间:2024/06/15 15:08
JSP与Servlet中的Cookie和Session的区别
Cookie的工作原理:
浏览器第一次访问服务器时,服务器端创建cookie对象返回给客户端浏览器存储,再次访问服务器时,客户端需要将cookie对象传递给服务器端。服务器端再对此cookie对象进行操作。
Session的工作原理:
浏览器第一次访问服务器时,服务器端创建session对象,同时将此session对象的id号返回给客户端浏览器存储,再次访问服务器时,客户端需要将此session对象的id号传递给服务器端。服务器端再根据此session id与服务器端的session对比调用其中的session对象进行操作。
具体的区别:
(1)信息的存储位置不同:
Cookie:存放在客户端。
Session:存放在服务器端。但是有时也依赖Cookie存储sessionid
(2)存储形式、数据量、创建形式不同:
Cookie:最大4k的文本。
如:cookie = new Cookie(
String name,
String value
)
response.addCookies(cookie)
Session:无大小限制的对象。
如:HttpSession session=request.getSession(true)
session.setAttribute(String str,Object o)
(3)访问的限制上不同:
一个servlet/jsp设置的cookie能够被同一路径下面或者子路径下面设置的servlet/jsp读取到,相反则不能。
一个servlet/jsp设置的session不存在cookie那样的访问限制方式,只要是父子关系的一套窗口,都可以访问session对象的内容的。
HttpSession session=request.getSession(true)//此session对象是在服务器端存储的。session.setAttribute()、session.getAttribute()。
注意:对于核心业务逻辑应该使用session编程,不要使用cookie来编程,因为客户端有可能禁用cookie,所以使用cookie来实现核心业务逻辑就会造成无法使用。
URL重写:
禁用cookie后,session的id无法写到客户端,此时解决的办法就是rewritenURL(URL重写)。如下所示:
response.encodeURL(request.getRequestURL().toString())
//它是针对于浏览器中的cookie被禁用后才调用的,如果没有禁用cookie,此方法是是什么都不做的。
//request.getRequestURL().toString()是请求的地址。
//response.encodeURL(url)是将session的id号写到参数中代表的url地址后面。
javascript中的Cookie对象
Cookie文件的格式:
IE:用户名@域名.txt
NS:Cookie.txt
向客户端 写入cookie:
格式:document.cookie=”关键字=值 [;expires=有效日期]"
var exdate=new Date();
exdate.setDate(exdate.getDate()+30); //设置有效期为30天
document.cookie= "name=liuanxin;expires="+exdate.toGMTString();
- cookie和session的区别
- Cookie 和session的区别
- session和cookie的区别
- cookie和session的区别
- Cookie和session的区别
- Cookie和Session的区别
- session和cookie的区别
- Cookie和Session的区别
- cookie 和session的区别
- session 和 cookie 的区别
- cookie 和 session 的区别
- cookie和session的区别
- Session和Cookie的区别
- session和cookie的区别?
- cookie 和session 的区别
- cookie和session的区别
- Cookie 和 Session 的区别
- cookie 和session 的区别
- 最透彻的讲解结构体成员内存对齐问题——透彻理解哦
- 软件测试究竟发挥什么作用?
- 实验9-1 指针类型
- tiny6410温度传感器详细开发步骤
- Spring注入方式的分类和比较
- Cookie和Session的区别
- 实验9-2 空指针
- AlertDialog.Builder发生:android.view.WindowManager$BadTokenException: Unable to add window
- 学过C语言了?那么你知道位段为何物啊?
- css/div做的连续的几个div水平浮动(float)时,当左右浮动的时候怎么当浏览器的窗口缩小的时候浮动的就往下跑了
- 实验9-3 函数的形参为指针变量
- 方向
- java 三层架构 实现数据的显示和分页功能
- 通过修改注册表 改变VC6界面字体