cookie机制session机制区
*************************************************************************************
具体说cookie机制采客户端保持状态方案session机制采服务器端保持状态方案
时服务器端保持状态方案客户端需保存标识session
机制需助cookie机制达保存标识目实际选择
*************************************************************************************
二会话cookie持久cookie区
*************************************************************************************
果设置期时间表示cookie生命周期浏览器会话期间关闭浏览器窗口cookie消失种生命期浏览会话期cookie称会话cookie会话cookie般保存硬盘保存存里
果设置期时间浏览器会cookie保存硬盘关闭次开浏览器cookie然效直超设定期时间
存储硬盘cookie浏览器进程间享两IE窗口保存存cookie浏览器处理方式
*************************************************************************************
三利实现动登录
*************************************************************************************
户某网站注册会收惟户IDcookie客户重新连接时
户ID会动返回服务器进行检查确定否注册户选择动登录户务需出明确户名密码访问服务器资源
*************************************************************************************
四根户爱定制站点
*************************************************************************************
网站cookie记录户意愿简单设置网站直接页面设置存储cookie中完成定制然更复杂定制网站需仅惟标识符发送户服务器端数库存储标识符应页面设置
*************************************************************************************
五cookie发送
*************************************************************************************
1创建Cookie象
2设置时效
3Cookie放入HTTP响应报头
果创建cookie发送浏览器默认情况会话级cookie存储浏览器存中户退出浏览器删果希浏览器该cookie存储磁盘
需maxAge出秒单位时间时效设0命令浏览器删该cookie
发送cookie需HttpServletResponseaddCookie方法cookie插入SetCookie HTTP请求报头中方法修改前指定SetCookie报头创建新报头方法称addCookie非setCookie样记住响应报头必须文档容发送客户端前设置
六cookie读取
*************************************************************************************
1调requestgetCookie
获取浏览器发送cookie需调HttpServletRequestgetCookies方法调返回Cookie象数组应HTTP请求中Cookie报头输入值
2数组进行循环调cookiegetName方法直找感兴趣cookie止
cookie机(域)相关非servletJSP页面servlet发送单cookie会许相关cookie
例:
String cookieName userID
Cookie cookies[] requestgetCookies()
if (cookiesnull){
for(int i0i
if (cookieNameequals(cookiegetName())){
doSomethingWith(cookiegetValue())
}
}
}
*************************************************************************************
七cookie检测初访者
*************************************************************************************
A调HttpServletRequestgetCookies()获取Cookie数组
B循环中检索指定名字cookie否存应值否正确
C果退出循环设置区标识
D根区标识判断户否初访者进行操作
*************************************************************************************
八cookie检测初访者常见错误
*************************************************************************************
仅仅cookie数组中存特定数项认户初访者果cookie数组null客户初访者户cookie删禁造成结果
果数组非null显示客户网站域说明访问servletservletJSP页面非Java Web应设置cookie路径设置中cookie返回户浏览器
正确做法判断cookie数组否空否存指定Cookie象值正确
*************************************************************************************
九cookie属性注意问题
*************************************************************************************
属性服务器发送浏览器报头部分属浏览器返回服务器报头
名称值外cookie属性适服务器输出客户端cookie服务器端浏览器cookie没设置属性
期通requestgetCookiescookie中属性意味着仅仅通设置cookie时效发出输入数组中查找适cookie读取值修改存回Cookie实现断改变cookie值
*************************************************************************************
十cookie记录户访问计数
*************************************************************************************
1获取cookie数组中专门统计户访问次数cookie值
2值转换成int型
3值加1原名称重新创建Cookie象
4重新设置时效
5新cookie输出
*************************************************************************************
十session环境含义
*************************************************************************************
session中文常翻译会话含义指始终系列动作消息电话起电话拨号挂断电话中间系列程称session
然session词网络协议相关联时隐含面连接保持状态样两含义
sessionWeb开发环境语义新扩展含义指类客户端服务器端间保持状态解决方案时候Session指种解决方案存储结构
*************************************************************************************
十二session机制
*************************************************************************************
session机制种服务器端机制服务器种类似散列表结构(散列表)保存信息
程序需某客户端请求创建session时候服务器首先检查客户端请求里否包含session标识-称session id果已包含session id说明前已客户创建session服务器session idsession检索出(果检索会新建种情况出现服务端已删该户应session象户请求URL面附加JSESSION参数)
果客户请求包含session id客户创建session生成session相关联session idsession id次响应中返回客户端保存
*************************************************************************************
十三保存session id种方式
*************************************************************************************
A.保存session id方式采cookie样交互程中浏览器动规标识发送服务器
B.cookie禁止必须机制便cookie禁止时然够session id传递回服务器常采种技术做URL重写session id附加URL路径面附加方式两种种作URL路径附加信息种作查询字符串附加URL面网络整交互程中始终保持状态必须客户端请求路径面包含session id
C.种技术做表单隐藏字段服务器会动修改表单添加隐藏字段便表单提交时够session id传递回服务器
*************************************************************************************
十四session什时候创建
*************************************************************************************
常见错误session客户端访问时创建然事实直某server端程序(Servlet)调HttpServletRequestgetSession(true)样语句时会创建
*************************************************************************************
十五session时删
*************************************************************************************
session列情况删:
A.程序调HttpSessioninvalidate()
B.距离次收客户端发送session id时间间隔超session效时间
C.服务器进程停止
次注意关闭浏览器会存储客户端浏览器存中session cookie失效会服务器端session象失效
*************************************************************************************
十六URL重写什缺点
*************************************************************************************
URLURL重写包括超链接formaction重定URL引站点URL返回户URL(通间接手段服务器重定中Location字段)添加额外信息
意味着站点静态HTML页面(少静态页面中链接站点动态页面链接)页面必须servletJSP动态生成页面动态生成果户离开会话通书签链接次回会话信息会丢失存储链接含错误标识信息-该URL面SESSION ID已期
*************************************************************************************
十七隐藏表单域什缺点
*************************************************************************************
仅页面表单提交动态生成时种方法单击常规超文链接产生表单提交隐藏表单域支持通常会话踪系列特定操作中线商店结账程
*************************************************************************************
十八会话踪基步骤
*************************************************************************************
1.访问前请求相关会话象
2.查找会话相关信息
3.存储会话信息
4.废弃会话数
*************************************************************************************
十九getSession()getSession(true)getSession(false)区
*************************************************************************************
getSession()getSession(true):session存时返回该session否新建session返回该象
getSession(false):session存时返回该session否会新建session返回null
*************************************************************************************
二十信息会话关联起
*************************************************************************************
setAttribute会换前设定值果想提供代情况移某值应removeAttribute方法会触发实现HttpSessionBindingListener接口值valueUnbound
方法
*************************************************************************************
二十会话属性类型什限制
*************************************************************************************
通常会话属性类型Objectnull基类型intdoubleboolean
果基类型值作属性必须转换相应封装类象
*************************************************************************************
二十二废弃会话数
*************************************************************************************
A.移编写servlet创建数:
调removeAttribute(key)指定键关联值废弃
B.删整会话(前Web应中):
调invalidate整会话废弃掉样做会丢失该户会话数非仅仅
servletJSP页面创建会话数
C.户系统中注销删属()会话
调logOut客户Web服务器中注销时废弃该户相关联会话(Web应)操作影响服务器Web应
*************************************************************************************
二十三isNew判断户否新旧户错误做法
*************************************************************************************
public boolean isNew()方法果会话尚未客户程序(浏览器)发生联系方法返回true般会话新建输入客户请求引起
果isNew返回false说明前访问该Web应代表访问servletJSP页面
session户相关户前访问页面创建会话isNewfalse说户前访问该Web应session前页面创建户前访问页面创建
正确做法判断某session中否存某特定keyvalue否正确
*************************************************************************************
二十四Cookie期Session超时什区
*************************************************************************************
会话超时服务器维护Cookie失效日期首先会话般基驻留存cookie
持续性cookie没截日期截取JSESSIONID cookie设定失效日期发送出浏览器会话服务器会话会截然
*************************************************************************************
二十五session cookiesession象生命周期样
*************************************************************************************
户关闭浏览器然session cookie已消失session象然保存服务器端
*************************************************************************************
二十六否关闭浏览器session消失
*************************************************************************************
程序般户做log off时候发指令删session然浏览器会动关闭前通知服务器关闭服务器根会机会知道浏览器已关闭服务器会直保留会话象直处非活动状态超设定间隔止
会种错误认识部分session机制会话cookie保存session id关闭浏览器session id消失次连接服务器时法找原session
果服务器设置cookie保存硬盘者某种手段改写浏览器发出HTTP请求报头原session id发送服务器次开浏览器然够找原session
恰恰关闭浏览器会导致session删迫服务器session设置失效时间距离客户次session时间超失效时间时服务器认客户端已停止活动会session删节省存储空间
出结:
关闭浏览器会浏览器端存里session cookie消失会保存服务器端session象消失样会已保存硬盘持久化cookie消失
*************************************************************************************
二十七开两浏览器窗口访问应程序会sessionsession
*************************************************************************************
通常session cookie跨窗口新开浏览器窗口进入相页面时系统会赋予新session id样信息享目达
时先session id保存persistent cookie中(通设置session效时间)然新窗口中读出窗口session id样通session cookiepersistent cookie结合实现跨窗口会话踪
*************************************************************************************
二十八会话显示客户访问次数
*************************************************************************************
客户访问次数整型变量session属性类型中intdoubleboolean等基类型变量基类型封装类型象作session象中属性值
Integer种修改(Immutable)数结构:构建更改意味着请求必须创建新Integer象setAttribute代前存老属性值例:
HttpSession session requestgetSession()
SomeImmutalbeClass value (SomeImmutableClass)sessiongetAttribute(SomeIdentifier)
if (value null){
value new SomeImmutableClass(…) 新创建更改象
}else{
value new SomeImmutableClass(calculatedFrom(value)) value重新计算创建新象
}
sessionsetAttribute(someIdentifiervalue) 新创建象覆盖原老象
*************************************************************************************
二十九会话累计户数
*************************************************************************************
变数结构数组ListMap含写字段应程序专数结构通种方式非首次分配象否需调setAttribute例
HttpSession session requestgetSession()
SomeMutableClass value (SomeMutableClass)sessiongetAttribute(someIdentifier)
if(value null){
value new SomeMutableClass(…)
sessionsetAttribute(someIdentifiervalue)
}else{
valueupdateInternalAttribute(…) 果已存该象更新属性需重新设置属性
}
*************************************************************************************
三十更改象更改象会话数更新时处理
*************************************************************************************
更改象旦创建更改次修改会话中属性值时候需
调setAttribute(someIdentifiernewValue)代原属性值否属性值会更新
更改象身般提供修改身属性方法次修改会话中属性值时
候调该更改象相关修改身属性方法意味着需调
setAttribute方法
*************************************************************************************
文香网httpwwwxiangdangnet
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档