反复看了张志宇的视频,了解如下:
session基于两种方法实现:
1.)基于cookie
2.)基于重写url
现在只讨论方法(1.),方法(1.)是:
通过把sessionID写入客户端的cookie(第一次打开页面时);
再通过从cookie中读取sessionID(刷新页面和页面跳转时),以此来识别用户的一次访问活动;因此,
若把cookie禁掉,应该出现这样一种情况:
每次刷新页面,都会产生新的sessionID(视频中演示的也的确是这样)
但我在自己机子上实验,并非如此,
我已把隐私调到最高(禁止一切cookie)
<%@ page contentType="text/html; charset=gb2312" %>
<%
out.print(session.getId()+"<br>");
out.print(request.isRequestedSessionIdFromCookie()+"<br>");
out.print(request.isRequestedSessionIdFromURL()+"<br>");
%>
以上页面第一次打开时:
E78254F63FEA7233233F7195F2E4B084
false
false
之后刷新多次都是:
E78254F63FEA7233233F7195F2E4B084
true
false貌似cookie仍在发挥作用,跟禁用cookie之前没有任何区别。
各位,在你们的机子上也是这样的吗?
是不是我的理解有误?
session基于两种方法实现:
1.)基于cookie
2.)基于重写url
现在只讨论方法(1.),方法(1.)是:
通过把sessionID写入客户端的cookie(第一次打开页面时);
再通过从cookie中读取sessionID(刷新页面和页面跳转时),以此来识别用户的一次访问活动;因此,
若把cookie禁掉,应该出现这样一种情况:
每次刷新页面,都会产生新的sessionID(视频中演示的也的确是这样)
但我在自己机子上实验,并非如此,
我已把隐私调到最高(禁止一切cookie)
<%@ page contentType="text/html; charset=gb2312" %>
<%
out.print(session.getId()+"<br>");
out.print(request.isRequestedSessionIdFromCookie()+"<br>");
out.print(request.isRequestedSessionIdFromURL()+"<br>");
%>
以上页面第一次打开时:
E78254F63FEA7233233F7195F2E4B084
false
false
之后刷新多次都是:
E78254F63FEA7233233F7195F2E4B084
true
false貌似cookie仍在发挥作用,跟禁用cookie之前没有任何区别。
各位,在你们的机子上也是这样的吗?
是不是我的理解有误?
解决方案 »
- 请教大神们
- 急求这个id参数怎么传到这个insertgoodServlet!
- 实现一个,根据输入内容进行模糊查询的功能
- jasperreport的applet无法打印
- 如何使用jQuery组件 给一个表单加高亮度显示
- spring 多数据库配置出错
- 思路问题,各位说说你们怎么做的-顺便散分
- tomcat下载网页中,pgp什么意思,怎么有的是tomcat.exe,有的是tomcat.zip,有区别吗?
- Tomcat数据库连接池配置问题? 望多给高论
- <img src="showimg.jsp">显示服务器硬盘上任意一张图片,showimg.jsp该如何写
- 我在做下载的时候出现的问题(牛人们请帮忙)
- 将备份的oracle数据库进行还原,用java代码怎么写啊
调高以后机器上是每次不一样的
i3kbdxflenwt
false
falsedv6jyvqg7rg4
false
false1fu2dpoqn6vgv
false
false
A8490461B1FCD6A27C0D3432918CC818
false
false
accept = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, */*
accept-language = zh-cn
accept-encoding = gzip, deflate
user-agent = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA)
host = localhost
connection = Keep-Alive
____________________________________
之后刷新:
A8490461B1FCD6A27C0D3432918CC818
true
false
accept = */*
accept-language = zh-cn
accept-encoding = gzip, deflate
user-agent = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA)
host = localhost
connection = Keep-Alive
cookie = JSESSIONID=A8490461B1FCD6A27C0D3432918CC818
_____________________________________代码是:
<%@ page contentType="text/html; charset=gb2312" import="java.util.*"%>
<%
out.print(session.getId()+"<br>");
out.print(request.isRequestedSessionIdFromCookie()+"<br>");
out.print(request.isRequestedSessionIdFromURL()+"<br>");
Enumeration<String> em=request.getHeaderNames();
while(em.hasMoreElements()){
String name=em.nextElement();
String value=request.getHeader(name);
out.print(name+" = "+value+"<br>");
}
%>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">还有,哪个老师是谁啊,什么叫“session基于两种方法实现”?
session、cookie、url重写,是会话跟踪的三种实现手段,这三个是并列关系。
连这种简单的概念都搞不清,建议换个视频学习。
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">还是老样子,刷新不会变!
我没找到ie怎么禁cookie,所以用firefox试的。
大哥,你自己不要不懂装懂,人家说的是
1. 服务器产生新的session后,通过cookie:JSESSIONID=xxxxxx,把sessionId通知客户端,以后,每次客户端都通过cookie,让服务器来识别客户端的session
2. 则是通过URL最后添加";jsessionid=06C16A236115BBDE9D60429C435CC185"的方式