用户注销java代码 jsp注销用户( 四 )


十五、session何时被删除
*************************************************************************************
session在下列情况下被删除:
A.程序调用HttpSession.invalidate()
B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
C.服务器进程被停止
再次注意关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效 。
*************************************************************************************
十六、URL重写有什么缺点
*************************************************************************************
对所有的URL使用URL重写,包括超链接,form的action,和重定向的URL 。每个引用你的站点的URL , 以及那些返回给用户的URL(即使通过间接手段,比如服务器重定向中的Location字段)都要添加额外的信息 。
这意味着在你的站点上不能有任何静态的HTML页面(至少静态页面中不能有任何链接到站点动态页面的链接) 。因此,每个页面都必须使用servlet或JSP动态生成 。即使所有的页面都动态生成,如果用户离开了会话并通过书签或链接再次回来,会话的信息都会丢失,因为存储下来的链接含有错误的标识信息-该URL后面的SESSION ID已经过期了 。
*************************************************************************************
十七、使用隐藏的表单域有什么缺点
*************************************************************************************
仅当每个页面都是有表单提交而动态生成时,才能使用这种方法 。单击常规的A HREF..超文本链接并不产生表单提交 , 因此隐藏的表单域不能支持通常的会话跟踪,只能用于一系列特定的操作中,比如在线商店的结账过程
*************************************************************************************
十八、会话跟踪的基本步骤
*************************************************************************************
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
方法 。
*************************************************************************************
二十一、会话属性的类型有什么限制吗
*************************************************************************************
通常会话属性的类型只要是Object就可以了 。除了null或基本类型 , 如int,double,boolean 。
如果要使用基本类型的值作为属性,必须将其转换为相应的封装类对象
*************************************************************************************
二十二、如何废弃会话数据
*************************************************************************************

推荐阅读