您的位置:首页网页设计JSP技巧 → JSP实现浏览器关闭cookies情况下的会话管理

JSP实现浏览器关闭cookies情况下的会话管理

时间:2004/11/7 3:36:00来源:本站整理作者:蓝点我要评论(2)

通常,会话管理是通过服务器将 Session ID 作为一个 cookie 存储在用户的 Web 浏览器中来唯一标识每个用户会话。如果浏览器不支持 cookies,或者将浏览器设置为不接受 cookies,我们可以通过 URL 重写来实现会话管理。



  实质上 URL 重写是通过向 URL 连接添加参数,并把 session ID 作为值包含在连接中。然而,为使这生效,你需要为你的 servlet 响应部分的每个连接添加 session ID 。



   把 session ID 加到一个连接可以使用一对方法来简化:response.encodeURL() 使 URL 包含 session ID,如果你需要使用重定向,可以使用 response.encodeRedirectURL () 来对 URL 进行编码。



  encodeURL () 及 encodeRedirectedURL () 方法首先判断 cookies 是否被浏览器支持;如果支持,则参数 URL 被原样返回,session ID 将通过 cookies 来维持。



  来看下面的例子,两个 JSP 文件:hello1.jsp 和 hello2.jsp,及它们之间的影响。我们在 hello1.jsp 中简单的创建一个会话,并在 session 中存储一个对象实例。接着用户可以点击页面的连接到达 hello2.jsp。在 hello2.jsp 中,我们从 session 中获取原先放置的对象并显示它的内容。注意,我们在 hello1.jsp 中调用了 encodeURL() 方法来获得 hello2.jsp 的链接,使得在浏览器停用 cookies 的情况下,session ID 自动添加到 URL,hello2.jsp 仍能得到 session 对象。



  首先在启用 cookies 的情况下运行。然后关闭对 cookie 的支持,重启浏览器,再运行一次。每次你都可以看到会话管理在起作用,并能在页之间传递信息。



注意,如果你想让这个例子能在关闭了 cookies 的浏览器中工作,你的 JSP 引擎必须支持 URL 重写。





hello1.jsp





<%@ page session="true" %>

<%

Integer num = new Integer(100);

session.putValue("num",num);

String url =response.encodeURL("hello2.jsp");

%>

hello2.jsp



hello2.jsp





<%@ page session="true" %>

<%

Integer i= (Integer)session.getValue("num");

out.println("Num value in session is "+i.intValue());

%>





axeon于2000-08-03 11:05:38发送

Copyright &copy; 2000 www.jsper.com All rights reserved.

The catalog script used on this site was written by axeon

站务联系: [axeonOICQ:1684897 ICQ:75795533]


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 没有查询到任何记录。 java排序集锦源码Spring技术内幕jsp运行时我们常遇到的几个问题?NteBeans下JSP连接MySQL示例

人气排行 Java语言中内存泄漏及如何检测问题详解JSP中errorPage设置方法在JSP页面中实现检索数据的分页显示JAVA实现屏幕抓图 远程桌面控制用JSP下载word文件(不会直接用IE打开)如何直接在浏览器内运行SQL命令无边框窗口代码详解Spring技术内幕