Cookie和Session专题(3)

十四、session什么时候被建设
*************************************************************************************
一个常见的错误是觉得session在有客户端会见时就被建设,然而事实是直到某server端措施(如Servlet)挪用HttpServletRequest.getSession(true)这样的语句时才会被建设。
*************************************************************************************

十五、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。
假如要利用根基范例的值作为属性,必需将其转换为相应的封装类工具
*************************************************************************************

二十二、如何废弃会话数据
*************************************************************************************
A.只移除本身编写的servlet建设的数据:
   挪用removeAttribute(“key”)将指定键关联的值废弃
B.删除整个会话(在当前Web应用中):
   挪用invalidate,将整个会话废弃掉。这样做会丢失该用户的所有会话数据,而非仅仅由我们
servlet或JSP页面建设的会话数据
C.将用户从系统中注销并删除所有属于他(或她)的会话
   挪用logOut,将客户从Web处事器中注销,同时废弃所有与该用户相关联的会话(每个Web应用至多一个)。这个操纵有大概影响随处事器上多个差异的Web应用
*************************************************************************************

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8684.html