开发一个功能,应用A提供链接(A.jsp)到应用B (B.jsp),会传递一些参数。
【背景:这些应用都是部署在weblogic10服务器上,domain是同一个,server肯定不同。】在A.jsp的数据通过参数传递。
会在应用A的A.jsp中实现跳转:<script type="text/javascript">
//跳转到应用B
window.open("http://XX.XX.XX.XX:XXXX/B.jsp?city_id="+cityID.value, "", "", "" );
</script>
在应该B的B.jsp会接收参数并处理。现在问题是,跳转到应用B后,
应用A之前保存的session会丢失掉吗【指的是在应用A中能不能重新获得原来的session,不是在应用B中】?
【背景:这些应用都是部署在weblogic10服务器上,domain是同一个,server肯定不同。】在A.jsp的数据通过参数传递。
会在应用A的A.jsp中实现跳转:<script type="text/javascript">
//跳转到应用B
window.open("http://XX.XX.XX.XX:XXXX/B.jsp?city_id="+cityID.value, "", "", "" );
</script>
在应该B的B.jsp会接收参数并处理。现在问题是,跳转到应用B后,
应用A之前保存的session会丢失掉吗【指的是在应用A中能不能重新获得原来的session,不是在应用B中】?
原来应用A的session在应用A中找不到了?做群集的话,是给server做群集,还是什么,不懂诶??
请教下!
估计也不行!
应用a不能等b处理完的。相当于是,应用a提供个入口给b。
但是,我模拟了下,
1.在同一个domain下建两个server,每个server下部署不同的应用,
但是在应用间a跳转b时,a中session还是可以找到。
2.在两个不同domain下分别建一个server,每个server下部署不同的应用,
但是在应用间a跳转b时,a中session也还是可以找到。现在,有点纠结了。
1.在同一个domain下建两个server,每个server下部署不同的应用,
但是在应用间a跳转b时,a中session找不到。
2.在两个不同domain下分别建一个server,每个server下部署不同的应用,
但是在应用间a跳转b时,a中session也还是找不到。和之前9# 做的模拟结果不一样。不知道,大家在不同的应用服务器下,能不能模拟下效果??
而且,现在不准备从应用上来改框架,
只是单纯的应用间参数传递,session在原有应用中会丢失吗?
以及原因。
可不可以从打开新应用的地方着手修改呢?
window.open()这个地方。
在应用B的weblogic.xml中,加上<session-descriptor>
<session-param>
<param-name>CookieName</param-name>
<param-value>BJSESSION</param-value>
</session-param>
<session-param>
<param-name>PersistentStoreTable</param-name>
<param-value>wl_servlet_sessions</param-value>
</session-param>
</session-descriptor>这样可以防止session的串改丢失。
服务器集群有复制SESSION的功能 楼主可以试试。
缺省模式下,所有的WEB应用都使用一样的cookie名字(JESSIONID)。
客户端在访问应用A时,domain会在该客户端上保留一个名为JSESSIONID的cookie,
记录domain的信息。当同一客户端方位应用B时,该客户端的Cookie中JSESSIONID
的值被应用B覆盖。
因为,应用是通过保存在cookie中的jsessionid来查找session信息,所以查不到原有的session内容。
所以,用了24#的重新设定cookiename的方法,解决了这个问题。
不知道,以上的解释有没有不对的地方?现在问题是,网上有好多说,Tomcat服务器不会发生这种覆盖的问题。
1、Tomcat中,难道不是通过jsessionid来查找session信息的吗?【或者说分配的jsessionid不一样?】
2、weblogic中,明明是两个不同的应用,难道weblogic服务器不给应用分配不同的内存空间吗,
即使jsessionid是一样的,那不同的应用查找session内容的地址也应该不一样啊,难道是
查找同一块区域?
3、weblogic.xml中配置的这个cookie是session cookie吗,也就是指存在会话中,不会存在本地硬盘中
吗?因为我在本地下貌似没找到这个cookie信息。
同域不会丢失
不同域会丢失PS:我刚研究了集群的东西,有SESSION复制的内容,你可以去看看我写的。
主要是中间件的配置,不过我用的是TOMCAT给你抛砖引玉吧。
http://user.qzone.qq.com/19810109/blog/1289833575
集群确实有SESSION赋值的功能。【只是听说过,我没研究过,哈哈。】
但现在的生产上的应用不允许我做集群。只能通过修改weblogic.xml这种代价小的来达到目的。
而改这个就引发了上面的27#的问题。
呵呵,
这个我没搞过,
学习下。
用FireFox浏览器,试了下,从FireFox的【工具】-【隐私】选项卡空,看了下cookie信息,
在weblogic.xml都配置了COOKIENAME的时候,
并没有JSESSIONID,只有weblogic.xml配置的cookie,(和IE不同)
而且过期时间是,会话结束时,也就是session cookie。
两个应用域下会有JSESSIONID的cookie存在。(也是session cookie)
session进行根据sessionid取值时,取的是新配置的sessionid的session。