具体情况如下:
现有项目A和项目B, 项目A中有项目B的一个链接,点击此链接传递过去用户名和密码登陆到B项目中去,此时B项目作为A项目的一个页面出现,第一次点击链接时操作没有问题,当返回来点击A项目链接时提示掉线。
以下为项目部署说明:
项目A用到了集群,apache+tomcat 没有采用session复制,其中A项目也是通过统一门户点击链接进入,并且A项目链接B项目时用到了frameset框架。门户网站也是通过apache转发过来。
现在问题是进入A项目后,如果不点击B项目链接,没有任何问题,只要点击了B项目链接,回过来点A项目的其他菜单即提示掉线(即session为空)
开始的时候点击B项目链接的时候也掉线,后来在B项目加了一个头 P3P什么的解决了。
此问题我想了两天不知何因,求解。
问题补充:问题原因很简单,因为在同一域名下,用的又都是tomcat,而tomcat默认在cookie里放得session的标识是jsessionid,所以点击不同项目的时候jessionid会覆盖上个jsessionid,这样再点击回来的时候会造成jsessionid被覆盖,tomcat根据jessionid找不到session,也就会掉线。有以下几种解决方式:1.改变项目的的cookie path,如果是域名的话,可以将几个项目的域名设为不同。2.可以采用其他的web容器,如jetty或者weblogic,这些容器都可以设置session的标识jsessionid,可以设置成不同的标识这样也不会相互覆盖,也就不会出现掉线的情况。
相关推荐
1. **防止Session Hijacking**:使用HttpOnly Cookie可以防止JavaScript脚本访问session ID,降低session劫持的风险。 2. **防止Session Fixation**:在用户成功登录后,重新生成session ID,避免攻击者利用预先...
//解决IE7\8跨域访问问题 response.setHeader("P3P","CP=\"IDC DSP COR ADM DEV TAI PSA PSD IVAI IVI CONI HIS OUR DEL IND INT\""); %> ``` 这段代码的作用是在响应头中添加一个P3P声明,告诉IE浏览器这个网站...
8. **跨域问题**:如果Web应用涉及到跨域访问,Session不会在不同的域名之间共享。解决方法包括使用JSON Web Tokens(JWT)或者将所有资源部署在同一域名下。 9. **用户手动清理Cookie**:用户主动清理浏览器Cookie...
在使用Nginx作为反向代理服务器时,有时会遇到session丢失的问题,这通常是由于代理和后端服务器之间交互配置不当引起的。下面是处理和解决Nginx session丢失问题的一些知识点和方法: 1. 了解Session机制:在Web...
在Web开发中,Iframe(内联框架)常用于嵌入其他网页内容,但涉及到跨域访问时,尤其是在处理Cookie和Session时,会遇到一些挑战。本文主要探讨如何解决Iframe跨域访问Cookie和Session的问题。 首先,理解跨域访问...
因此,需要指定具体的源地址,确保仅允许特定的前端应用进行跨域访问。 前端Vue.js应用中,为了配合跨域携带Cookie,需要在发送请求时指定`withCredentials`为`true`。对于使用axios库的情况,可以在全局配置中设置...
现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不
Session是Asp.net网站的一种重要机制,用于保持用户登录状态和验证码等信息,但是Session丢失的问题却经常出现。那么, Session 丢失的原因是什么?如何解决这个问题呢? Session的工作机制是这样的:第一次访问IIS...
在Web开发中,Session是一个至关重要的概念,尤其是在ASP.NET框架下。Session机制是服务器端存储用户特定信息的一种方式,它允许开发者在多个页面之间保持用户状态,解决了HTTP协议无状态的问题。"szsessdifn"可能是...
当用户在HTTP和HTTPS之间切换时,由于它们属于不同的域,浏览器会认为这是两个不同的环境,因此不会自动传递原有的session ID,导致session丢失。 为了解决这个问题,我们可以手动处理session ID的传递。以下是一种...
本文将详细介绍几种常见的C# Session丢失问题及其解决办法。 首先,Session状态丢失的原因可能有以下几种: 1. 杀毒软件扫描Web.Config文件。由于Web.Config文件包含了应用程序配置信息,包括Session状态的设置,...
- **Session丢失**:当用户清除Cookie或更改浏览器设置时可能导致Session丢失。 - **性能问题**:大量Session数据可能会导致服务器内存占用过高。 - **跨域访问**:当涉及到跨域请求时,需要特别处理Session数据的...
Session的工作原理是,当用户访问服务器并进行登录或其他需要记录状态的操作时,服务器会在内存中创建一个唯一的Session ID,并将其发送给浏览器。这个Session ID通常以Cookie的形式存储在客户端。之后,每当客户端...
- **负载均衡**:负载均衡器可以根据需求将请求分配给任何服务器,无需担心session丢失或冲突。 - **性能优化**:Redis作为内存数据库,读写速度远快于传统的硬盘存储,提升了session操作的效率。 - **跨域共享**...
- **Session丢失问题**: - 检查是否在输出任何内容之前调用了`session_start()`。 - 确保Cookie没有被禁用。 - 检查Session配置是否正确设置。 - **Session跨域问题**: - 通过设置`session.cookie_domain`来...
在Web开发中,Cookie和Session是两种常见的用户身份验证机制,尤其在C#编程语言中,它们被广泛用于实现登录功能。本实例将探讨如何在C#环境下利用Cookie和Session来处理用户登录状态。 首先,我们要理解Cookie和...
在“HUIHUA.rar_session”中,可能包含了一些关于如何在实际项目中创建、读取和销毁`session`,以及如何处理跨域`session`问题的具体示例。通过这些例子,学习者不仅可以理解`session`的基本概念,还能学会如何在...
在ASP.NET中,默认情况下,当第一个服务器控件或代码尝试访问Session对象时,会话会被自动启动。如果你想在应用程序开始时就明确开启或关闭会话,可以在Global.asax文件中的`Session_Start`或`Session_End`方法中...
- **Session丢失**:这可能是由于未正确配置中间件、Cookie问题或错误的驱动设置导致的。检查中间件配置,确保Session Cookie能正确发送。 - **性能优化**:在高并发环境下,考虑使用Redis或Memcached作为Session...
- **跨域共享**:在分布式环境中,所有服务器都可以访问同一份Session数据。 但也要注意以下事项: - **性能开销**:相比内存中的Session,使用Redis会增加网络I/O和CPU开销。 - **数据一致性**:虽然Redis支持事务...