`
weifly
  • 浏览: 238906 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jetty存在session不一致问题

阅读更多

jetty在集群环境中使用时,浏览器中的sessionId和后台代码中获得的sessionId可能存在不一致的情况,

 

部署结构为:apache httpd2.2 + 2个jetty7.4

 

jetty.xml中配置了sessionIdManager:

<Set name="sessionIdManager">
    <New class="org.eclipse.jetty.server.session.HashSessionIdManager">
        <Set name="workerName">jetty_instance1</Set>
    </New>
</Set>

其中的workerName类似于tomcat中的jvmRoute,用于集群中的请求分发(session粘滞)

浏览器中获得的JSESSIONID的值带有 workerName后缀,例如:

JSESSIONID	tas1lktlh90nwcqru3sk1ev2b2z0.jetty_instance1

 而后台获得的sessionId则不带workerName后缀

String sid = request.getSession().getId();
System.out.println(sid);

// 获得的sessionId为:
tas1lktlh90nwcqru3sk1ev2b2z0

 

希望jetty尽快修改这个bug

分享到:
评论
3 楼 ss321pp076 2012-09-27  
问一句,博主有没有试试terracotta的web session共享?
2 楼 weifly 2011-04-20  
这样设计有不合理的地方

tomcat部署到集群中时,浏览器和后台中的sessionId就是一致的

jetty这样设计容易让人误解
1 楼 rovermartin 2011-04-20  
这不是BUG,就是这么设计的。

相关推荐

    struts1.2之token解决重复提交

    如果不匹配或Session中不存在该Token,说明可能是重复提交,服务器可以直接忽略此次请求,或者返回一个提示告知用户。 4. 清理Token 一旦处理完请求,应从Session中移除Token,避免后续的误匹配。同时,也可以在...

    JavaWeb期中考试

    Java Transaction API (JTA) 则提供了分布式事务处理能力,确保在多系统间的操作一致性。 5. **JDBC与数据库连接**:Java Database Connectivity (JDBC) 是Java访问数据库的标准接口。通过JDBC,Java程序可以连接到...

    jsp实例开发

    通过设置session属性和检查session是否存在,可以确保用户在预定过程中的一致性。 **权限控制**是后台管理功能的一部分,通常需要实现用户角色划分,比如管理员和普通用户。这涉及到身份验证和授权机制,如基于...

    购物车程序JSP

    Session是一种服务器端存储用户状态的方式,每次用户请求时,服务器会检查Session中是否存在购物车数据,从而提供个性化服务。 4. **数据库操作**: 商品信息、库存状态等通常存储在数据库中,如MySQL或Oracle。...

    基于java的网上花店

    9. **问题与改进**:描述中提到项目存在一些问题,这可能是功能不完善、性能瓶颈、安全漏洞或者用户体验不佳等。开发者可以通过调试、代码审查、性能优化、引入新框架等方式进行改进。 总的来说,"基于Java的网上...

    简单bbs 基本实现注册 留言等功能

    9. **部署与运行环境**:开发完成后,需要在Tomcat或Jetty等Web服务器上部署,使用IDE如Eclipse或IntelliJ IDEA等可以方便地进行调试和部署。 10. **版本控制**:使用Git等版本控制系统管理代码,便于团队协作和...

    选课系统项目模板、毕业设计

    这些操作需要在同一个事务中完成,以保证数据一致性,防止因部分操作失败导致数据不一致。 9. **异常处理**: 异常处理机制能够捕获运行时错误,提供友好的错误提示,同时避免程序异常中断。Spring框架提供了AOP...

    简易在线拍卖

    它将Java对象与数据库表之间的映射配置在XML文件(Hibernate.cfg.xml)中,通过SessionFactory创建Session对象,进而执行CRUD操作。Hibernate自动处理SQL语句,降低了开发人员对数据库操作的依赖。 3. **Spring**:...

    java web实现用户中心个人管理功能

    为了保证数据一致性,可以使用数据库的约束,如唯一约束(username和email)和外键约束(如果存在其他关联表)。 4. **后端逻辑处理**: Java后端使用Servlet、JSP或现代的Spring MVC框架处理HTTP请求。控制器类...

    20220136.基于Java EE“陕西农特产品”网络交易平台设计与实现ssm.rar

    12. **部署与运维**:项目最终部署在Tomcat或Jetty等应用服务器上,可能需要考虑负载均衡、日志监控、性能优化等方面的问题,以保证平台的稳定运行。 以上是基于Java EE的SSM框架开发"陕西农特产品"网络交易平台时...

    javaweb在线电影网站源码(含数据库).zip

    2. **角色与权限管理**:用户和管理员的角色划分意味着存在权限控制。用户可能可以浏览电影信息、观看电影、评论等;管理员则可能有添加、编辑、删除电影的权限,以及管理用户账户等高级操作。这通常需要实现一套...

    JAVAweb开发课件.ppt

    Servlet 容器,如 Tomcat 或 Jetty,是运行 Servlet 的环境,它负责管理 Servlet 的生命周期。在本课件中,我们将深入学习 Servlet 容器模型,重点关注 ServletContext 接口、会话管理和Cookie的应用。 首先,我们...

    Java 开发--基于jsp的新闻发布系统(论文).rar

    3. 业务逻辑层:实现具体业务功能,如新闻的添加、修改、删除,用户管理等,通常以JavaBeans或EJB的形式存在。 4. 数据持久化:数据库存储新闻数据,可能采用MySQL、Oracle等,通过JDBC进行数据操作。 三、核心技术...

    bbs.zip_bbs jsp_servlet BBS论坛

    JSP通过内置对象如`request`, `response`, `session`等,可以方便地获取请求参数、设置响应头以及处理会话信息。 2. **Servlet技术**:Servlet是Java Web应用程序的核心组件,用于处理HTTP请求和生成响应。在BBS...

    基于JAVA的企业级应用开发复习资料

    JTA可以确保数据的一致性和完整性。 - **JNDI (Java Naming and Directory Interface)**:JNDI是一个应用程序接口,用于访问命名和目录服务。它可以用于查找和引用网络上的对象和服务,是J2EE中组件之间通信的基础...

    SSM考研互助学习管理系统(源码+数据库)241104

    7. **数据库设计**:数据库设计是系统的核心部分,包括用户表、讨论区表、收藏表、新闻资讯表等多个表,可能使用了关系型数据库MySQL,通过外键约束保证数据的一致性。 8. **开发环境**:开发过程中可能使用了...

    百度2019年最新面试题库

    - **Heap(堆)**: 动态分配内存区域,由程序员手动管理分配和释放,适合大小不确定或者需要长期存在的数据结构。heap内存分配没有固定的规则,因此分配效率相对较低,但由于其灵活性,适用于各种复杂场景。 - **...

    jsp毕业设计——JSP科研处管理信息系统(源代码+论文).zip

    毕业论文通常会涵盖系统的需求分析、设计、实现和测试等环节,详细介绍系统的架构、功能模块的设计思路、技术选型的原因、遇到的问题及解决方案等,同时附带系统的截图和实际操作演示,以证明系统的可行性。...

    java面试题

    - **缓存管理**:一级缓存(session缓存)和二级缓存(全局缓存),提高数据访问性能。 #### 多线程应用与机制 - **线程创建**:通过继承Thread类或实现Runnable接口。 - **线程同步**:synchronized关键字、...

    jsp租车系统

    这通常通过session或cookie来实现用户身份验证,结合Servlet过滤器(Filter)进行权限校验。 **六、数据库设计** 数据库设计是系统的关键部分,涉及到用户表、车辆表、订单表等。用户表存储用户名、密码(加密存储...

Global site tag (gtag.js) - Google Analytics