`
- 浏览:
251500 次
- 性别:
- 来自:
北京
-
在禁用 Cookie 的浏览器中使用 Session
Java Servlet API 中引用 Session 机制来追踪客户的状态。Servlet API 中定义了 javax.servlet.http.HttpSession 接口,Servlet 容器必须实现这个接口。当一个 Session 开始时,Servlet 容器将创建一个 HttpSession 对象,Servlet 容器为 HttpSession 分配一个唯一标识符,称为 Session ID。Servlet 容器将 Session ID 作为 Cookie 保存在客户的浏览器中。每次客户发出 HTTP 请求时,Servlet 容器可以从 HttpRequest 对象中读取 Session ID,然后根据 Session ID 找到相应的 HttpSession 对象,从而获取客户的状态信息。
当客户端浏览器中禁止 Cookie,Servlet 容器无法从客户端浏览器中取得作为 Cookie 的 Session ID,也就无法跟踪客户状态。
Java Servlet API 中提出了跟踪 Session 的另一种机制,如果客户端浏览器不支持 Cookie,Servlet 容器可以重写客户请求的 URL,把 Session ID 添加到 URL 信息中。
HttpServletResponse 接口提供了重写 URL 的方法:public java.lang.String encodeURL(java.lang.String url)
该方法的实现机制为:
● 先判断当前的 Web 组件是否启用 Session,如果没有启用 Session,直接返回参数 url。
● 再判断客户端浏览器是否支持 Cookie,如果支持 Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url。
我们可以对网页中的链接稍作修改,解决以上问题:
修改前:
<a href=“maillogin.jsp“>
修改后:
<a href=“<%=response.encodeURL(“maillogin.jsp“)%>“>
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在本文中,我们将深入探讨Session编程,特别是如何在禁用Cookie的情况下实现Session管理。 Cookie是一种小型文本文件,通常由服务器发送到用户的浏览器,并由浏览器在后续请求中返回给服务器,以此来维持会话状态。...
Java 中 Cookie 被禁用后 Session...Java 中 Cookie 被禁用后 Session 追踪问题可以通过使用 encodeURL 或 encodeRedirectURL 方法来解决,这些方法可以确保服务器端可以获取 JSESSIONID 信息,从而实现 Session 追踪。
### Cookie与Session详解 在现代Web开发中,保持用户的会话状态是一项基本需求。通过Cookie与Session机制...在实际应用中,开发者需要根据具体需求合理选择使用Cookie还是Session,或者两者结合使用,以达到最佳效果。
Cookie 和 Session 是两种常见的用户身份验证和会话管理机制,它们在Web开发中扮演着重要角色,用于跟踪用户的在线状态和存储用户数据。下面将详细阐述它们的异同以及如何在集群环境中进行共享。 首先,Cookie 是一...
- 如果用户的浏览器禁用了Cookie,或者某些情况无法使用Cookie,可以采用URL重写等技术来实现Session ID的传递。 - 例如,可以在URL中加入Session ID参数,或者通过隐藏表单字段等方式来传递Session ID。 3. **...
### Cookie机制与Session机制的区别及关系 在现代网络应用中,服务器端与客户端之间的...在实际开发中,开发者应根据具体需求选择最合适的方案,有时也需要结合使用Cookie和Session,以达到最佳的用户体验和安全性。
但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用2、Cookie的配置与应用 ...
Cookie、Session机制详解 Cookie机制是Web程序中常用的技术,用来跟踪用户的整个会话。Cookie通过在客户端记录信息确定用户身份。Cookie机制可以弥补HTTP协议...6. 在Web应用程序中使用Cookie和Session机制的注意事项
通过`session.setAttribute(String name, Object value)`可以将对象存储在Session中,`session.getAttribute(String name)`用于获取数据。当不再需要Session时,调用`session.invalidate()`注销Session。 - **生命...
例如,如果你正在构建一个购物车应用,你可以将用户添加到购物车的商品信息存储在Session中,这样即使用户浏览其他页面,购物车内容也不会丢失。 Session的使用方法很简单。在代码中,你可以通过`Session["Key"] = ...
客户端在后续请求中携带Session ID,服务器根据ID找到对应Session中的数据。Session存储在服务器内存中,相比Cookie安全性更高,但消耗服务器资源。 **二、会话Cookie与持久Cookie的区别** 1. **会话Cookie**:若...
Cookie和Session是Web开发中两种重要的用户状态管理机制,它们帮助开发者在用户浏览网页时保持用户的登录状态和其他个性化设置。 1. **Cookie机制**:Cookie是客户端存储的一种小数据片段,通常用来存储用户的一些...
在Java中,可以使用HttpServletResponse接口的addCookie方法添加Cookie,HttpSession接口进行Session的操作。在处理用户会话时,合理地结合使用Cookie和Session,可以提高应用的用户体验和安全性。
Session和Cookie是两种常见的Web...比如,为了确保用户安全,登录信息通常存储在Session中,而一些非敏感的用户偏好则可以存储在Cookie中。同时,考虑到隐私和安全问题,合理设置Cookie的生命周期和使用策略至关重要。
在本例中,“java中使用session购物车的简单例子”是通过Servlet技术实现的一个应用场景,旨在帮助开发者理解如何利用Session来存储用户购物车的数据。 购物车功能在电商网站中非常常见,它允许用户临时保存想要...
如果浏览器不支持 Cookie(如大部分手机中的浏览器)或者把 Cookie 禁用了,Cookie 功能就会失效。不同的浏览器采用不同的方式保存 Cookie。 5. COOKIE 的应用 Cookie 可以用来记录用户访问次数。Java 中把 Cookie...
在使用JSP开发的Web应用中,开发者可能会遇到一个令人困惑的问题:当用户使用Firefox浏览器时,基于Session的单点登录(Single Sign-On, SSO)功能表现正常;然而,切换至IE6浏览器时,初始阶段一切正常,但进行几次...