tomcat里的虚拟目录之间能否共享Session ?

jk3278jk 2004-04-07 09:47:58
tomcat里默认有一个Root目录(比如是d:\tomcat\root),然后我又在另一个盘下建一个虚拟目录(如 c:\test下)

能否使 Root 和 test 目录共享session ? 就是在Root里设置了一个用于判断用户是否登陆的标记,我想在test也使用这个检查这个session标记。但现在实现不了。为什么同一站点,只是不同的虚拟目录就不行呢? 为什么

tomcat好像认为在不同盘下的虚拟目录就是不同的站点,站点间不能通信,不能共享session,application,数据库连接池等。

怎么解决啊?
...全文
144 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jk3278jk 2004-04-08
  • 打赏
  • 举报
回复
谢谢!
fancyerII 2004-04-07
  • 打赏
  • 举报
回复
《Servlet和JSP权威指南》的
4.6在Web 应用之间共享数据
1,cookie
cookie有浏览器而不是服务器维护。因此,可在多个web应用间共享cookie,只要将他们设置为适合于服务器上的路径即可。缺省时,浏览器只将cookie发到与第一次接收cookie的URL有相同前缀的URL。如服务器从http://host/path1/somefile.jsp发送cookie,则浏览器将此cookie送回http://host/path1/other.jsp和http://host/path1/path2/anying,但不送给http://host/path3/anything。 但可以用Cookie类的setPath改变这种行为。
Cookie c=new Cookie("name","value");
c.setMaxAge(...);
c.setPath("/"); //指示浏览器将cookie发到从前接收cookie的主机上的所有URL
response.addCookie(c);

2,于某个特定URL相关的ServletContext对象。
ServletContext myContext=getServletContext();
String url="/someWebAppPrefix";
ServletContext otherContext=myContext.getContext(url);
Object someData=otherContext.getAttribute("somekey");

两中方法的优缺点
cookie存的数据有限。
共享servlet环境必须知道其他Web应用的URL前缀,而且出于安全,允许服务器禁止对某些Web应用中ServletContext的访问,此时getContext的调用返回null。


照书打的,反正我是没用过,不大明白。
winkyTan 2004-04-07
  • 打赏
  • 举报
回复
当然不能拉
xylohouse 2004-04-07
  • 打赏
  • 举报
回复
只一个服务器存储备份session,
jk3278jk 2004-04-07
  • 打赏
  • 举报
回复
那象网易,新浪,微软的MSN等大型网站是如何实现的?

比如网易,只要用户登陆进入后就可以直接进邮箱等等其他子功能,并且这些子功能都是在不同的服务器上的。

这是怎么实现的??????
shenhaiziyouren 2004-04-07
  • 打赏
  • 举报
回复
应该不能实现吧
wandou999 2004-04-07
  • 打赏
  • 举报
回复
不能共享!!
haohuai1981 2004-04-07
  • 打赏
  • 举报
回复
不可以的,不同的虚拟目录间属于不同的服务:),如果是一个站点的话,不如放在同一个虚拟目录的不同目录下吧
cricketlj 2004-04-07
  • 打赏
  • 举报
回复
不同的虚拟目录不能共享session
办法就是放到同一个虚拟目录下的不同目录下
biggie 2004-04-07
  • 打赏
  • 举报
回复
web service or jms
cricketlj 2004-04-07
  • 打赏
  • 举报
回复
不同的虚拟目录不能共享session
办法就是把它放到同一个虚拟目录的不同目录下。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧