通常,会话管理是通过服务器将 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");
%>
<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());
%>
分享到:
相关推荐
以下是一个简单的JSP应用示例,展示了如何在关闭cookies的情况下使用URL重写来管理会话: 1. `hello1.jsp`:在这个页面中,我们首先创建一个新的会话,并在其中存储一个对象(例如,一个整数)。然后,我们使用`...
2. **Cookie的属性:** 每个Cookie都有生命周期(maxAge),默认情况下,浏览器关闭后Cookie会失效。可以设置`maxAge`来延长或缩短其有效期,如: ```java cookie.setMaxAge(60 * 60 * 24 * 7); // 设置为7天有效 ...
- **定义**:在Web开发中,会话通常指的是用户打开浏览器并访问一系列网页直至关闭浏览器的整个过程。 - **目的**:会话管理的主要目标是跟踪用户在不同页面之间的活动,以便系统能够识别用户状态并提供个性化体验。...
JSP实践练习题 JSP(Java Server Pages)是一种...* Manager.jsp:处理管理逻辑,验证 Session 属性 JSP 内置对象和 Session 对象是 JSP 开发中非常重要的概念,正确地使用它们可以提高网站的安全性和可扩展性。
【会话与状态管理】是Web应用程序开发中的关键概念,主要涉及如何跟踪和维护用户在网站上的一系列交互。在Web应用中,一个用户从打开网页到完成一系列操作(如购物、浏览信息等)的过程称为会话。会话状态则是指用户...
总结,使用JSP实现Cookie功能可以帮助我们实现诸如用户会话管理、个性化设置等常见的Web应用功能。理解并正确使用Cookie对于开发动态、交互性强的Web应用程序至关重要。在实际开发中,还应注意Cookie的存储限制...
根据提供的文档信息,我们可以深入探讨如何使用JSP技术来实现一个简单的用户在七天内无需再次登录的功能。这种功能在很多网站上都有应用,能够极大地提升用户体验,减少重复操作。 ### JSP简介 JSP(JavaServer ...
### JSP中的会话状态管理 #### 一、引言 在JSP (JavaServer Pages) 开发中,会话状态管理是一项非常重要的技术。由于HTTP协议本身是无状态的,即每次客户端与服务器之间的通信都是独立的,不保存任何历史信息。...
通过理解它们的基本概念、配置以及如何进行页面跳转、会话管理和共享数据的操作,开发者能够更好地设计和实现高效、稳定的Web应用。希望以上知识点能够帮助大家深入理解和掌握JSP与Servlet的相关知识。
#### 十二、在关闭Cookies的情况下跟踪Session 当浏览器禁用了Cookies时,可以通过URL重写的方式来保持会话跟踪。这种方式将Session ID嵌入到每个URL中,从而即使没有Cookie也能维护会话状态: ```jsp Integer ...
总之,Cookies是Web开发中不可或缺的一部分,用于跟踪用户会话、实现个性化功能和存储轻量级数据。在JSP中,我们可以通过Cookie类轻松地创建、读取和管理Cookies,实现诸如“记住登录密码”等功能。然而,安全问题...
**JSP(JavaServer Pages)**是Java技术中用于创建动态网页的一种技术,它结合了HTML、Java代码和脚本语言,使得开发者可以在服务器端处理数据并生成HTML页面,然后发送给客户端浏览器进行渲染。本资源包含7个经典的...
5. **cookies操作**:设置和读取客户端cookies,实现用户登录状态持久化。 6. **转发和重定向**:使用`<jsp:forward>`和`response.sendRedirect()`处理页面跳转。 7. **自定义标签**:创建和使用自定义JSP标签,...
在Ajax应用中,需要处理浏览器缓存和会话状态。例如,通过设置HTTP头来控制缓存策略,或者使用cookies或URL参数来跟踪用户状态。 7. **错误处理** 实例可能包括了对Ajax请求失败的处理,如超时、网络中断或服务器...
这使得服务器能够识别和跟踪特定用户,实现个性化设置、会话管理等功能。 **Cookie的工作原理:** 1. **创建Cookie**:在JSP中,我们可以使用`HttpServletResponse`对象的`addCookie()`方法来创建和添加新的Cookie...
### jsp隐含对象详细解析 #### 一、概述 JSP(Java Server Pages)是一种基于Java技术的服务器端动态网页开发技术。它允许开发者在HTML文档中嵌入Java代码来实现动态内容的生成。在JSP开发中,有一些内置的对象...
4. **会话管理**:利用Cookies和Session管理用户会话状态。 5. **错误处理**:设计错误页面,处理异常情况。 #### 六、进阶话题 1. **MVC架构**:学习如何使用Model-View-Controller模式构建应用程序。 2. **框架...
这可能通过会话管理、cookies或HTTP认证实现。在JSP中,可以使用内置的request、session和application对象进行用户状态管理。 5. **MVC设计模式** 项目可能采用了Model-View-Controller(MVC)设计模式,分离了...
3. **会话管理**:为了保持用户登录状态,通常会使用session技术。当用户成功登录后,服务器会在session中存储用户信息,每次请求时检查session中的登录状态。 二、核心组件与功能 1. **登录页面(Login.jsp)**:...