`

在禁用 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“)%>“>
分享到:
评论

相关推荐

    session编程(包括禁用cookie的情况)

    在本文中,我们将深入探讨Session编程,特别是如何在禁用Cookie的情况下实现Session管理。 Cookie是一种小型文本文件,通常由服务器发送到用户的浏览器,并由浏览器在后续请求中返回给服务器,以此来维持会话状态。...

    java中Cookie被禁用后Session追踪问题

    Java 中 Cookie 被禁用后 Session...Java 中 Cookie 被禁用后 Session 追踪问题可以通过使用 encodeURL 或 encodeRedirectURL 方法来解决,这些方法可以确保服务器端可以获取 JSESSIONID 信息,从而实现 Session 追踪。

    cookie和session

    ### Cookie与Session详解 在现代Web开发中,保持用户的会话状态是一项基本需求。通过Cookie与Session机制...在实际应用中,开发者需要根据具体需求合理选择使用Cookie还是Session,或者两者结合使用,以达到最佳效果。

    cookie 和 session 保存的异同

    Cookie 和 Session 是两种常见的用户身份验证和会话管理机制,它们在Web开发中扮演着重要角色,用于跟踪用户的在线状态和存储用户数据。下面将详细阐述它们的异同以及如何在集群环境中进行共享。 首先,Cookie 是一...

    session与cookie的区别和联系?

    - 如果用户的浏览器禁用了Cookie,或者某些情况无法使用Cookie,可以采用URL重写等技术来实现Session ID的传递。 - 例如,可以在URL中加入Session ID参数,或者通过隐藏表单字段等方式来传递Session ID。 3. **...

    cookie机制和session机制的区别

    ### Cookie机制与Session机制的区别及关系 在现代网络应用中,服务器端与客户端之间的...在实际开发中,开发者应根据具体需求选择最合适的方案,有时也需要结合使用Cookie和Session,以达到最佳的用户体验和安全性。

    PHP100视频教程 32:PHP5中Cookie与 Session详解

    但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用2、Cookie的配置与应用 ...

    Cookie、Session机制详解.doc

    Cookie、Session机制详解 Cookie机制是Web程序中常用的技术,用来跟踪用户的整个会话。Cookie通过在客户端记录信息确定用户身份。Cookie机制可以弥补HTTP协议...6. 在Web应用程序中使用Cookie和Session机制的注意事项

    Cookie与Session机制

    通过`session.setAttribute(String name, Object value)`可以将对象存储在Session中,`session.getAttribute(String name)`用于获取数据。当不再需要Session时,调用`session.invalidate()`注销Session。 - **生命...

    asp.net的session和cookie的应用

    例如,如果你正在构建一个购物车应用,你可以将用户添加到购物车的商品信息存储在Session中,这样即使用户浏览其他页面,购物车内容也不会丢失。 Session的使用方法很简单。在代码中,你可以通过`Session["Key"] = ...

    session与cookie

    客户端在后续请求中携带Session ID,服务器根据ID找到对应Session中的数据。Session存储在服务器内存中,相比Cookie安全性更高,但消耗服务器资源。 **二、会话Cookie与持久Cookie的区别** 1. **会话Cookie**:若...

    cookie与session多可爱的伙伴

    Cookie和Session是Web开发中两种重要的用户状态管理机制,它们帮助开发者在用户浏览网页时保持用户的登录状态和其他个性化设置。 1. **Cookie机制**:Cookie是客户端存储的一种小数据片段,通常用来存储用户的一些...

    Java使用cookie和session共7页.pdf.zip

    在Java中,可以使用HttpServletResponse接口的addCookie方法添加Cookie,HttpSession接口进行Session的操作。在处理用户会话时,合理地结合使用Cookie和Session,可以提高应用的用户体验和安全性。

    session与cookie.doc的区别

    Session和Cookie是两种常见的Web...比如,为了确保用户安全,登录信息通常存储在Session中,而一些非敏感的用户偏好则可以存储在Cookie中。同时,考虑到隐私和安全问题,合理设置Cookie的生命周期和使用策略至关重要。

    java中使用session购物车的简单例子

    在本例中,“java中使用session购物车的简单例子”是通过Servlet技术实现的一个应用场景,旨在帮助开发者理解如何利用Session来存储用户购物车的数据。 购物车功能在电商网站中非常常见,它允许用户临时保存想要...

    Cookie与Session机制.doc

    如果浏览器不支持 Cookie(如大部分手机中的浏览器)或者把 Cookie 禁用了,Cookie 功能就会失效。不同的浏览器采用不同的方式保存 Cookie。 5. COOKIE 的应用 Cookie 可以用来记录用户访问次数。Java 中把 Cookie...

    IE的cookie机制导致的session问题及解决办法.doc

    在使用JSP开发的Web应用中,开发者可能会遇到一个令人困惑的问题:当用户使用Firefox浏览器时,基于Session的单点登录(Single Sign-On, SSO)功能表现正常;然而,切换至IE6浏览器时,初始阶段一切正常,但进行几次...

Global site tag (gtag.js) - Google Analytics