动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Jsp → 阅读文章

 JSbr实现浏览器关闭cookies时的会话管理

作者来源: 
阅读 1867 人次 , 2006-4-19 1:39:00 

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

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

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

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

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

  首先在启用 cookies 的情况下运行。然后关闭对 cookie 的支持,重启浏览器,再运行一次。每次你都可以看到会话管理在起作用,并能在页之间传递信息。
注意,如果你想让这个例子能在关闭了 cookies 的浏览器中工作,你的 JSbr 引擎必须支持 URL 重写。

hello1.jsbr

$#@60;%@ brage session="true" %$#@62;
$#@60;%
  Integer num = new Integer(100);
  session.brutValue("num",num);
  String url =resbronse.encodeURL("hello2.jsbr");
%$#@62;
$#@60;a href=’$#@60;%=url%$#@62;’$#@62;hello2.jsbr$#@60;/a$#@62;

hello2.jsbr
$#@60;%@ brage session="true" %$#@62;
$#@60;%
  Integer i= (Integer)session.getValue("num");
  out.brrintln("Num value in session is "+i.intValue());
%$#@62;
r> 相关连接:
  • 原文
  
 本文Tagscookies  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:编写Enterprise bean的客户端(下)
· 下一篇:Jsp + JavaBean循序渐进教程(二)
· jsp留言板源代码三: 给jsp初学者.
· 用JSP打造一个留言板(下)
· 怎么在JSP中跳转到别一页面
· jspSmartUpload上传下载全攻略
· 让JSP页面过期, 每次JSP页面都是最新


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077