`

url 重写来实现会话管理

    博客分类:
  • jsp
 
阅读更多

如果浏览器不支持 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");

%>

<a href=<%=url%>>hello2.jsp</a>

hello2.jsp

<%@ page session="true" %>

<%

integer i= (integer)session.getvalue("num");

out.println("num value in session is "+i.intvalue());

%>

分享到:
评论

相关推荐

    购物车的四种做法(hidden、url重写、cookie、会话)

    购物车的四种做法(hidden、url重写、cookie、会话)

    chrome-hosts:使用单独的,指定的主机和url重写规则启动chrome

    hosts是一个便捷的主机+ url重写管理工具,通过读取当前目录下的yaml文件来启动指定主机+ url rewrite规则配置的chrome会话-并通过--load-extension &-- --user-data-dir参数让各chrome会话之间相互隔离,实现会话...

    java_web_第4章_会话跟踪.ppt

    会话跟踪 4.1 会话管理 4.2 通过Cookie支持会话 ...4.3 URL重写与隐藏表单域 4.1.1 理解状态与会话 4.1.2 会话管理机制 4.1.3 HttpSession接口 4.1.4 使用HttpSession对象 4.1.5 会话超时与结束

    Java Web应用开发:Servlet和JSP技术进阶.ppt

    隐藏表单案例-index.jsp 把id写进Hidden表单里,用户看 不见,但是只要表单一提交, 这个参数值就可以提交给a.jsp 隐藏表单 VS URL重写 同重写URL技术相比,隐藏表单技术是利用表单来传递会话信息,而URL重写技术是...

    javaEE中文api.J2EE中文API

    cookie 或重写 URL 此接口允许 servlet 查看和操作有关某个会话的信息 比如会话标识符 创建时间和最后一次访问时间 将对象绑定到会话 允许跨多个用户连接保留用户信息 当应用程序将对象存储到会话中或从会话中...

    搜索引擎优化高级编程(PHP版)

    3.4.8 分页与URL重写 3.4.9 重写图像和流媒体 3.5 重写没有解决的问题 3.6 最后的警告 3.7 小结 第4章 内容重定向和HTTP状态代码 4.1 HTTP状态代码 4.2 使用301和302重定向 4.2.1 301代码 4.2.2 302代码 4.3 使用404...

    SEO编程PHP中文版

    3.4.8 分页与URL重写 3.4.9 重写图像和流媒体 3.5 重写没有解决的问题 3.6 最后的警告 3.7 小结 第4章 内容重定向和HTTP状态代码 4.1 HTTP状态代码 4.2 使用301和302重定向 4.2.1 301代码 4.2.2 302代码 ...

    会话技术之登录状态的保持

    除了Cookie、Session,会话技术还有重写Url、隐藏表单域两种,不过使用起来比较不方便,因此就不进行介绍了。 ​那理论学完了,我们就通过几个小案例还动手实践下,今天这篇文章就带大家使用Cookie与Session来完成...

    JSP100选择题 JSP100选择题 适合考前练习

    JSP100选择题 适合考前练习 1 J2EE 中,()类的()方法用于创建对话。(选择一项) ...在禁用Cookie时可以使用URL重写技术跟踪会话 D.隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示 …………

    最新.net技术博客源代码.rar

    完美的利用了浏览器的XML解析技术,... 内部实现了URL重写,可以在任何.net空间运行。 支持虚拟目录。 兼容性 Mozilla Firefox v1.5.0.0 以上版本 Microsoft Internet Explorer v6.0 以上版本

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview进行管理,实现对不同模块之间切换的控制。 (2)针对跨域数据交互问题,指出并分析了...

    为什么不同用户登录同一个页面,看到的是不同数据

    大家都知道,比如我们登录一个OA网站,看到的数据和同事的是有不同的,简单一想,是因为我们的登录账户不同,但是技术上是怎么实现的呢? 尤其是login后,我们访问的都是同一个URL,为什么页面上展示的数据会不同呢...

    J2EE应用开发详解

    57 4.3.7 Servlet协作 57 4.3.8 Filter 58 4.4 使用Servlet处理客户端请求 58 4.5 会话跟踪 61 4.5.1 使用Cookie进行会话跟踪 61 4.5.2 使用URL重写进行会话跟踪 62 4.5.3 使用隐藏表单域进行会话跟踪 63 4.6 小结 ...

    java-servlet-api.doc

    加入的意思是返回会话跟踪信息到服务器中,指出会话已被建立。在客户端加入之前,我们不能判断下一个客户端请求是目前会话的一部分。 在下面的情况下,Session会被认为是新的Session。 客户端的Session在此之前还不...

    X3BLOG 单用户版 1.0 build80707 (access)

    &lt;br&gt; 内部实现了URL重写,可以在任何.net空间运行。 &lt;br&gt; 支持虚拟目录。 &lt;br&gt; 1.0 build80707的新特性 * 实现了对OPERA浏览器的兼容性 * 实现多文件同时上传 * 取消了页面上的SELECT控件...

    J2EE中文API文档

    J2EE中文API文档 public interface HttpSession 版本: 创建时间2007-11-7 下午05:55:23 类说明 这个接口被Servlet引擎用来实现在HTTP客户端和HTTP会话两者的关联。... 一个 session可以通过cookie或重写URL来维持。

    tinyapp

    TinyApp项目-1.0版 ... 方法重写 加密 人体解析器 cookie会话 入门 安装所有依赖项: npm install 运行开发Web服务器: npm start 测试: npm test 在浏览器上运行该应用程序: http://localhost:8080

    X3BLOG 单用户版 FOR ACCESS 1.0beta 源代码

    &lt;br&gt; 内部实现了URL重写,可以在任何.net空间运行。 &lt;br&gt; 支持虚拟目录。 &lt;br&gt;DEMO &lt;br&gt; http://sgl.x3blog.cn&lt;br&gt;&lt;br&gt;编译与安装 &lt;br&gt; 1.用Microsoft Visual Studio 2005打开SyCODE.x3-blog.sln并...

    ha-utils-go

    去重写包 ENV变量 SG_SESSID:Steamgifts会话ID( PHPSESSID ) HVA_ID:Hardverapro会话ID( identifier ) NCORE_USERNAME和NCORE_PASSWORD:nCore凭据以获取会话cookie(使用会话cookie) FIXERAPI:用于查询...

Global site tag (gtag.js) - Google Analytics