在一个web2工程项目中要获取另外一个web1工程的session值,请问哪位曾经获取过?
有些资料说session值只能在当前工程项目获取,到其他web项目中是没有权限访问的(因为此session值只属于该web容器下创建)。 但如果web2一定要获取web1中的session值该如何获取?(项目web1该怎么设置,web2又该如何编写)?

解决方案 »

  1.   

    汗,有这种访问??不懂呀!呵呵,有高手指点下是否可以放到cookie中呢?
      

  2.   

    web1留个接口给web2访问,比如使用webService.
      

  3.   

    把值放进一个文件内,然后另一个web工程访问这个文件或者把数据存入数据库中web1存入Session,web2读取Session
      

  4.   

    这是个 sso 的需求,你可以搜索下sso
      

  5.   

    首先你要了解 session的有效范围,session的有效范围是连接有效,意思就是说你在项目 web1 中的session 可以通过 点击 项目web1 的超链接传递到 项目 web2中,你在web2中只要针对 项目web1的session 的名称就可以读取。
    比如我通过 <a href='web1/ServerLet/GetSession'>web2 link </a> 这样的超链接来触发 web1中的serverlet,然后通过 访问 sesssion的名称得到 web2的 session值
      

  6.   

    J2EE体系认为seesion只能在一个web应用中访问。
    如果想在两个web应用之间共享session,需要手动扩展,比如将session临时存储到文件或数据库中。部分中间件提供了已经提供了session功能。
    目前我知道的有,IBM的WebSphere,同一个企业级应用(EAR)下的Web应用(WAR)可以共享session,只需在EAR文件的配置文件目录增加一个xmi文件并制定session可以共享。
    weblogic不支持Web应用之间共享session,其他的我就不清除了
      

  7.   

    J2EE session id的获取方式(一般)是使用cookie(name=JSESSIONID;path=/contextPath1),代表这个cookie只属于contextPath1的,只要修改web容器生成session id时候的配置,让它生成的session id 的cookie的path=/,也就是这个站点下的所有webapp共享就可以达到共享session的目的了。比如Tomcat 5.5中修改server.xml中connector的emptySessionPath="true"
      

  8.   

    cookie是不行的,在同一台计算机测试时可以,两台计算机就不行了,放在application也不可以,如果把两个工程发布在同一项目下就可以了!
      

  9.   

    这好像是不可能的,session只在一个应用中有效。
    你可以把session值放到隐藏域中,在另一个应用中可以通过getParameter("xxx"),拿到值。