`

cookie和session的结合实现多浏览器共享session

阅读更多

在会话过程中,保存会话数据有两种方式:session和cookie,这两种方式存在的场合不一样。

session主要保存在服务器端,从会话建立直到消亡,而cookie存在于客户端浏览器,当然也可通过服务器的某些方法获得。

 这样在解决共享session时,对于session与浏览器的对应存在着一对多的联系,此时我们需要了解到对于动态网站这样的开发,通常服务器会把session的唯一标识通过cookie的 形式写回到浏览器在用户第一次建立连接时,如果浏览器禁用cookie就在url地址后面加上session标识。

因而,问题就变成如何将sessionid写回到多个浏览器或多个连接地址后面。

此类方式对解决实现记录用户操作非常有用。

下面是购买过程的servlet实现:

//1.得到用户想买的书
  String id = request.getParameter("id");
  Book book = (Book) DB.getMap().get(id);
  
  //2.把用户购买的书加在session中用于管理所有书的集合了
  HttpSession session = request.getSession();
  Cookie cookie = new Cookie("JSESSIONID",session.getId());
  cookie.setMaxAge(30*60);
  cookie.setPath("/day06");
  response.addCookie(cookie);
  List<Book> list = (List<Book>) session.getAttribute("list");
  if(list==null){
   list = new ArrayList<Book>();
   session.setAttribute("list", list);
  }
  list.add(book);
  
  //3.跳转到购物车显示列表
  String url = response.encodeRedirectUrl("/day06/servlet/ListCartServlet");
  //request.getRequestDispatcher("/servlet/ListCartServlet").forward(request, response);
  //response.sendRedirect("/day06/servlet/ListCartServlet");没禁用cookie时采用的方法
  response.sendRedirect(url);

 

这样不管用户是否禁用cookie都可以实现共享session

分享到:
评论

相关推荐

    浏览器多窗口共用session引发的混乱

    "浏览器多窗口共用session引发的混乱"这个标题揭示了一个常见但往往被忽视的问题,即当用户在同一浏览器的不同窗口或标签页中打开同一个网站时,它们可能会共享同一份Session数据,这可能导致意料之外的行为和用户...

    JAVA之cookie与session

    **Cookie** 的主要功能是存储用户的状态信息,并且这些信息可以在多次请求之间共享。以下是 Cookie 的几个关键特性: 1. **Cookie的结构**:Cookie 由名称、值和一系列可选属性组成。这些属性包括过期时间、路径、...

    cookie 和 session 保存的异同

    在集群环境中的共享和管理,Cookie本身是可以在所有服务器之间共享的,因为它们在客户端,但Session由于存储在服务器,所以在多台服务器的集群中,需要有一种机制来同步Session数据。这可以通过以下几种方式实现: ...

    cookie+session实现的单点登录案例

    在这个案例中,我们将探讨如何利用Cookie和Session来实现SSO,同时结合第三方社交登录,如微博,来增强用户体验。 ### Cookie与Session的基本原理 1. **Cookie**: 是服务器发送到用户浏览器并存储的一小块数据,...

    nginx实现多个tomcat7直接session共享所需jar包

    但这仅解决了部分问题,如果所有服务器需要共享Session数据,还需要更复杂的解决方案。 描述中提到的“jar包”,很可能是指实现Session共享的中间件,如Redis或Memcached。这些缓存服务可以作为一个集中式的Session...

    解决springboot实现跨域session共享问题

    综上所述,解决Spring Boot中的跨域session共享问题和防止SQL注入,需要结合CORS配置、分布式session存储和安全编程实践。通过合理的配置和编程习惯,我们可以构建更加健壮、安全的Web服务。提供的压缩包文件`...

    SpringSession同时支持Cookie和header策略

    这个工具扩展了Spring框架的功能,使得在集群服务器之间共享session数据变得简单。本文将深入探讨SpringSession如何支持Cookie和header策略,并解析`CookieHeaderHttpSessionStrategy.java`这个文件中的关键概念和...

    跨域共享session (实现http跳转https 共享session)

    综上所述,跨域共享session涉及到多个技术层面,包括浏览器限制、服务器配置、前端处理和安全措施。实现HTTP到HTTPS的session共享需要综合考虑这些因素,并确保在提供便利的同时,保证用户数据的安全。

    Web测试你需要知道的HTTP—cookie与session的实现

    1. **基于 Cookie 的 Session 实现**:在这种情况下,服务器将 Session ID 作为 Cookie 的内容存储在浏览器的临时 Cookie 中。每当客户端发起请求时,Session ID 都会以 Cookie 形式发送给服务器。 2. **URL 重写...

    利用Cookie、Session写的登录页面、成功页面、退出页面

    - 在实际应用中,通常结合使用Cookie和Session,Cookie用于存储Session ID,而Session存储用户详细信息,兼顾安全性和效率。 4. 安全考虑: - 防止Session劫持:使用HTTPS加密传输,防止Session ID被中间人截取。...

    tomcat8集群实现session共享,内含session共享包

    当用户在网站上进行操作时,服务器会为每个用户创建一个唯一的Session ID,并将这个ID存储在用户的浏览器Cookie中。每次用户发送请求时,都会携带这个Session ID,服务器通过这个ID识别出特定的用户,从而保持用户的...

    对session和cookie的一些理解

    在“源码”和“工具”标签的提示下,我们可以推断文章可能涉及了Cookie和Session的实现细节,或许还涵盖了如何在实际项目中使用它们,或者分析了一些常见的库和框架如何处理Session和Cookie。例如,Spring框架提供了...

    java实现多次HttpURLConnection共享session

    总结来说,Java实现多次HttpURLConnection共享session的关键在于正确处理Cookie,保存服务器返回的Session ID,并在后续请求中携带这个ID。通过这种方式,即使没有浏览器环境,也能模拟登录状态,爬取登录后的内容。...

    基于Cookie的Session跨域.zip

    在Web开发中,Session和Cookie是两种常见的用户会话管理技术。它们被广泛应用于保持用户的登录状态,确保用户在访问不同页面时仍能保持个性化设置和数据连续性。本项目"基于Cookie的Session跨域"则关注如何在分布式...

    cookie和session完全讲解(精通必备)

    【Cookie和Session详解】 在Web开发中,Cookie和Session是...总结,Cookie和Session在Web开发中各有所长,通常结合使用,以实现最佳的用户体验和安全性。了解和熟练掌握这两种机制对于构建复杂的Web应用程序至关重要。

    Cookie和Session区别用法.pdf

    在Web开发和网络通信中,Cookie和Session是两个非常重要的技术概念,它们主要用于管理客户端和服务器之间的会话(Session)状态。下面将详细介绍Cookie和Session的区别、用法以及它们的原理。 首先,从概念上来说,...

    Cookie机制和Session机制

    - **兼容性**:大多数现代浏览器都支持Cookie和Session,但在某些旧版本或受限环境中,可能需要额外的兼容性处理。 #### 七、总结 Cookie机制和Session机制是解决HTTP协议无状态性的两种常用方法。Cookie机制侧重...

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

    总之,Cookie和Session是Web开发中的重要工具,了解它们的工作原理和使用场景,可以帮助我们更好地设计和实现Web应用程序。在Java中,可以使用HttpServletResponse接口的addCookie方法添加Cookie,HttpSession接口...

    cookie和session的运用

    **Cookie** 和 **Session** 是两种用于跟踪用户会话的技术,在Web开发中非常常见。它们的主要功能是帮助服务器识别用户并维持用户的登录状态等信息。 ##### 1. Cookie - **定义**: Cookie是一种小型的数据文件,...

    Cookie与Session机制

    - 分布式环境:在多服务器的分布式环境中,Session共享或复制需要额外配置和处理。 - 生存期:Session默认有一定生存期,过期后会丢失数据,需谨慎设置。 **选择Cookie还是Session** 选择Cookie还是Session取决...

Global site tag (gtag.js) - Google Analytics