`
181054867
  • 浏览: 148174 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何重写HttpSession的setAttribute方法,实现Session集群

阅读更多

我有一个想法,我想重写HttpSession对象的setAttribute和getAttribute方法,来实现session集群,具体逻辑是:

public void setAttribute(String key, Object obj){
	memcachedClient.set(key, obj);
}

public Object getAttribute(String key){
	return memcachedClient.get(key);
}

 其实就是改为通过memcached来存取session的值,实现多jvm集群,类似于单点登录的功能。

小弟的设想可能比较初级,希望大家帮忙评估一下可行性,及怎样实现,感谢大家!

0
0
分享到:
评论
2 楼 istone 2014-03-11  
gubaojian 写道
集群时采用负载均衡策略时,选用session。这样每次相同的session请求,都会转发到同一台服务器,无需session复制.

此方法有局限性,如果集群中的某个节点挂了,该节点的用户将无法得到正确的响应
1 楼 gubaojian 2011-03-04  
集群时采用负载均衡策略时,选用session。这样每次相同的session请求,都会转发到同一台服务器,无需session复制.

相关推荐

    session存用户名密码实现用户登录和退出

    这时,可以考虑使用Session集群、Session存储到数据库或使用分布式Session解决方案(如Redis、Memcached)。 综上所述,通过Session,我们可以方便地实现用户登录和退出功能,跟踪用户的会话状态。正确管理和使用...

    session的使用

    2. **Session复制与集群**:在分布式环境下,为了保证Session数据的一致性,可能需要实现Session复制或使用Session黏贴技术(如 Sticky Sessions)。 3. **Session ID的安全性**:防止Session ID被嗅探或盗取,可以...

    Session实例

    - **Session复制**:在集群环境中,为了确保所有服务器都能访问到同一Session,需要实现Session复制或使用共享Session存储如Redis。 - **Session ID重用安全**:避免在Session ID被窃取后,攻击者利用旧Session ID...

    session_test.zip

    2. Session复制与集群:在多台服务器的集群环境下,需要实现Session复制或共享,确保所有服务器都能访问到同一份Session数据。 3. Session管理:过多的Session会消耗大量内存,可以考虑使用数据库或缓存系统(如...

    在Java的web编程中关于session技术的使用详解

    获取Session数据则通过`getAttribute()`方法,设置Session数据使用`setAttribute()`方法。 3. **Session的生命周期** 一个Session的生命周期由服务器管理,默认情况下,如果一段时间内(默认30分钟)客户端没有...

    关于session.doc

    - **存储数据**:可以使用`setAttribute`方法将数据存储在HttpSession对象中。 - **读取数据**:通过`getAttribute`方法可以从HttpSession对象中读取存储的数据。 #### 六、HttpSession常见问题 使用HttpSession时...

    Session登录在线人

    6. **优化与扩展**:在大型应用中,单台服务器可能不足以存储所有Session,这时可以考虑使用Session集群或者Session存储在数据库、Redis等外部存储中。这需要实现Session复制或黏性负载均衡策略。 7. **监控与管理*...

    java中使用session模拟用户登陆

    7. **Session管理**:在大型应用中,可能需要考虑Session的分布式存储,例如使用Redis或Memcached等缓存服务来共享Session,以解决集群环境下的Session同步问题。 8. **安全注意事项**:尽管Session提供了用户状态...

    有关session

    2. **Session复制**:在集群环境下,需要考虑Session复制以保持用户状态的一致性。 3. **Session ID的安全性**:避免Session ID被第三方获取,防止会话劫持。 4. **Session最少化**:尽量减少对Session的使用,过多...

    session.会话实例源码

    开发者可以调用`HttpSession`的`setAttribute`方法来设置值,`getAttribute`来获取值,`removeAttribute`来删除值,以及`invalidate`来销毁整个Session。 **4. Session源码分析** 在Java Servlet API中,`...

    Session详解.doc

    使用`HttpSession`的`setAttribute`和`getAttribute`方法时,应该考虑到并发访问的问题。 3. **Session复制**:在集群环境中,为了保持Session的可用性,通常需要将Session数据复制到集群中的其他节点。这可以通过...

    WebLogic Clusters Session_v1.doc

    - **用SETATTRIBUTE修改SESSION状态**:当需要更新session中的数据时,应使用`HttpSession.setAttribute()`方法,而不是直接修改session对象的属性。这是因为直接修改可能不会触发session的更新机制,导致复制失败...

    session的用法

    - **设置和获取数据**:使用`setAttribute(String name, Object value)`和`getAttribute(String name)`方法,分别用于设置和获取Session中的数据。 - **移除数据**:`removeAttribute(String name)`方法用于从...

    Session

    标签"源码"提示我们,这篇博客可能还涉及到了Session实现的内部代码或开源库的源码分析,这可能包括对Servlet容器(如Tomcat)中Session管理的源码研究,或者是第三方库(如Spring Session)的实现原理。 至于"工具...

    session详解

    在Java Web应用程序中,`javax.servlet.http.HttpSession`接口是实现session机制的核心。它提供了一系列的方法,用于创建、管理和检索会话状态。以下是一些重要的方法: 1. **getId()**:返回会话ID。 2. **...

    购物车示例 session

    例如,我们可以使用`getSession()`方法获取或创建`session`,`setAttribute()`方法设置`session`属性,以及`getAttribute()`方法获取`session`属性。 当用户查看购物车时,我们需要从`session`中获取`cartItems`,...

    Session机制总结

    - **设置Session值**:在服务器端,通过`HttpSession`接口的`setAttribute()`方法可以设置Session的键值对,例如`session.setAttribute("username", "张三")`。 - **获取Session值**:使用`getAttribute()`方法可以...

    spring session入门

    Spring Session还提供了API来手动操作session,例如`HttpSessionOperations`接口提供了`session.setAttribute`和`session.removeAttribute`等方法。另外,Spring Session支持基于JWT的无状态会话,这在实现RESTful ...

    session会话技术

    在JSP中,`session`是内置对象之一,它实现了javax.servlet.http.HttpSession接口,提供了多种操作session的方法: 1. `setAttribute(String name, Object value)`: 将键值对存入session,键为name,值为value。 2....

    jsp 会话追踪

    session.setAttribute("username", "John Doe"); // 获取属性 String username = (String) session.getAttribute("username"); // 删除属性 session.removeAttribute("username"); // 使会话失效 ...

Global site tag (gtag.js) - Google Analytics