HTTP协议是一种无状态协议。从一个客户打开浏览器连接到服务器,到客户关闭浏览器离开这个服务器称作一个会话。
1.1 Session对象的ID
当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个 secssion对象,这个session对象调用相应的方法可以存储客户在访问各个页面期间提交的各种信息,比如,姓名、号码等信息。这个 session 对象被分配了一个 String 类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在客户的Cookie中。这样session对象和客户之间就建立起一一对应的关系,即每个客户都对应着一个session对象(该客户的会话),这些session对象互不相同,具有不同的ID号码。我们已经知道,JSP引擎为每个客户启动一个线程,也就是说,JSP为每个线程分配不同的session对象。当客户再访问连接该服务器的其它页面时,或从该服务器连接到其它服务器再回到该服务器时,JSP引擎不再分配给客户的新session对象,而是使用完全相同的一个,直到客户关闭浏览器后,服务器端该客户的session对象被取消,和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
1.2 session对象与URL重写
session对象能和客户建立起一一对应关系依赖于客户的浏览器是否支持Cookie。如果客户端不支持Cookie,那么客户在不同网页之间的session对象可能是互不相同的,因为服务器无法将ID存放到客户端,就不能建立session对象和客户的一一对应关系。
如果客户的浏览器不支持 Cookie,我们可以通过 URL 重写来实现 session 对象的唯一性。所谓 URL 重写,就是当客户从一个页面重新连接到一个页面时,通过向这个新的URL 添加参数,把 session 对象的ID传带过去,这样就可以保障客户在该网站各个页面中的 session 对象是 完 全 相 同 的。可以使用 response 对象 调 用 encodeURL() 或encodeRedirectURL()方法实现 URL 重写,比如,如果从 tom.jsp 页面连接到 jerry 页面,首先实现 URL 重写:
<% String str = response.encodeRedirectURL(“jerry.jsp”); %>
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务