用户登录之后,我分配给他一个session假如他想进入b.jsp 但是前提是必须a.jsp必须要打开.
就是说 先进a.jsp 才能进b.jsp但是a.jsp这个页面不能关,关了之后b.jsp还是不能继续访问. 只要重新再打开了a.jsp才能继续访问b.jsp有没有好一点的实现方法?
注: 不推荐使用cookie.

解决方案 »

  1.   

    我认为可以把a.jsp作为b.jsp的父页面,这样可以用js判断a.jsp是否打开。
      

  2.   

    奇怪的要求,HTTP 是无状态的,我不知道你为什么要这样做?
      

  3.   

    我认为这样不知道可以不。
    请求A页面的时候实际请求的是一个后台servlet,可以用url重写完成url的欺骗!
    在请求servlet时候设置一个session,当关闭A页面的时候让JS去请求另外一个servlet或者同一个servlet来注销这个session。
    那么当请求B页面的时候也是请求一个servlet来判断请求A页面时保存的session,如果不存在就不能请求!
      

  4.   

    进入a.jsp维持一个session,离开时把这个session注销掉。进入b.jsp判决这个session是否存在
      

  5.   

    首先,你的所有页面都确保只有在登录的情况下才能访问(也就是session存在下,这个可以通过filter来完成)然后 关闭a.jsp的时候将session注销掉就可以了,我已经实现了这样的功能。
      

  6.   

    可以在进入a.jsp时往session里面传一值,应a.jsp关闭前,调用一个方法把这个值清掉
    在b.jsp里,只要判断这个值是否存在就可以了但现在最关键的是:如何在a.jsp关闭前用它调用一方法,如果一般正常的关闭,如:点页面的“关闭”、点浏览器的右上角的关闭还可以实现目的,但如果是强行关键(如用任务管理器关闭等),就难以调用方法了,这个问题我也一直困扰着
      

  7.   


    b.jsp是通过a.jsp window.open打开的。然后如何判断呢?
      

  8.   

    为什么关闭a页面要注销session?
    我理解楼主的意思是a页面和b页面是一个依赖关系,用户只要进入了不管有没有打开a页面session都是存在的具体可以这么实现,打开a页面时在session中记录一个标志,关闭a页面时去掉这一标志,这样在打开b页面时就可以通过判断这一标志来决定是否允许了。人是活的,方式也是活的,根据实际情况而定
      

  9.   


    对的.b.jsp就是通过a.jsp window.open打开的..
    如果在a.jsp判断子页面b.jsp是否打开了呢?????
      

  10.   

    不要注销session,用户不关掉页面。直接KILL掉IE进程.session还是不会失效   通过JS去判断用户是否关闭页面session是否失效感觉不太可靠.
      

  11.   

    a.jsp这个页面不能关,关了之后b.jsp还是不能继续访问要维持a.jsp 只能在客户端放定时器,让服务器知道a.jsp的存在
      

  12.   

    在a.jsp里面,
    用setTime按照一个周期,比如2秒,一直给服务器发送“我活着”的请求
    服务器收到后,session里面放个东西,
    然后b.jsp来了,先到session里面看看a.jsp的标志是不是“还活着”,
    如果死了(没有这个标志,或着标志超时),就XXX
    如果没死,就正常操作。这样,如果一个阶段a.jsp“报平安”的信息没过来,
    就说明a.jsp已经“挂”了。
    然后再从b.jsp来,就XXX在写暴力童话故事似的。呵呵good luck