Jsp + struts要实现用户只能通过页面的链接进入下一页面。不能在地址栏直接打链接进入。如何实现?

解决方案 »

  1.   

    第一个页面,设置一个session值,其他页面来匹配这个值,如果,不相等,退回原来页面就ok 了,《〈
      

  2.   

    可以利用session来判断.你在登录页面设置一个session,然后每个页面都判断此session的值是否为空,为空的话就不让进入.
      

  3.   

    通过页面的链接与通过地址栏进入,我想:是没有任何区别的。
    楼上的各位搞清楚哈,这里与session无关。
    楼主并没有说关闭当前窗口,再新开一个窗口输入地址栏。
      

  4.   

    nighthawk 就是这位所说的,不关闭当前窗口的情况下判断。没说清楚,抱歉。这样如何判断啊?谢谢!
      

  5.   

    这几乎是不可能的
    要么你就屏蔽地址栏,但是你能屏蔽所有的浏览器么?不过我想到了一个技巧,你可以试一试
    页面上的超级链接有一个onClick事件,点击页面上的超级链接就会触发这个事件,但是直接通过地址栏输入URL却不会产生这个事件,你可以从这个方向入手。别问我具体的实现,我没有碰到过这么奇怪的需求。
      

  6.   

    通过页面的链接与通过地址栏进入,办法的确想不出。我这里所指的链接是指<a href="">。
    如果是通过提交当前页面来链接的话,控制的方法会有很多。
    或者你把URL的链接隐藏起来通过javascript来转发。
    因为我这里也不清楚“要实现用户只能通过页面的链接进入下一页面。不能在地址栏直接打链接进入”在你系统当中的实际意义。
      

  7.   

    request 的 header 里面有。
      

  8.   

    request 的 header 里面有。
    可以判断
    比较一下从地址栏直接输入URL 和从网站的超级连接或提交的 request.getHeader("referer");
    看看有什么不同你就明白了。
      

  9.   

    如果你用的是struts,可以将jsp页面放在WEB-INF下面,用到的时候用forward指向这个文件,用户是不能直接访问WEB-INF下面的文件的。
      

  10.   

    判断来源
    request.getHeader("referer")
      

  11.   

    你分析下看看,如果是直接输入,那么
    request.getHeader("referer")=?
    通过其他的进入的request.getHeader("referer")=?
      

  12.   

    没什么用,没什么好办法,通过查你的页面源代码都可以看到,最多只是隐藏的深些罢了,一句老话,防君子不防小人。
    比如,可以把页面放到框架中,然后在该页面中加上脚本处理,如果该页面不处于框架中,就自动跳转到指定页面。
    或者是通过判断页面来源,或者把地址隐藏的更深一点,等等。
    完全根治是不可以的,浏览器不管你怎么实现的,只要是http请求,绝对是一视同仁的。
      

  13.   

    可以用post方法,session方法,或者request方法
      

  14.   

    或者把jsp也面放在web-inf下面,然后通过action转发
      

  15.   

    感谢各位回复!!通过链接request.getHeader("referer")可以得到来源页面.可是地址栏直接输入request.getHeader("referer")什么也得不到,这样该怎么判断?
    我本意是想做类似这样的处理:
    if (request.getHeader("referer") == null) response.sendRedirect("aa.jsp"); 
    可是用null和""判断request.getHeader("referer")的值都不行,如何处理啊?再次表示感谢!