有没有简单的例子可以提供呢?
jsp里form对应的action进入后,10分钟之内在这个jsp里再调这个action就不行的控制方法。

解决方案 »

  1.   

    不现实的问题,IP地址都被划分的子网的,你一个人登录以后,那公司其他的人也就不能登录了,IP地址也可以造假,静止不到的,你如实在要获得IP地址,你可以通过request.getRemoteAddr();然后放入session中,并且设置session的过期时间,你要防止就用一个filter
      

  2.   

    建一张表,给action加个拦截器,访问action的时候,在拦截器中查一下表中10分钟内有没有这条记录,有的话就不能访问,没有就能访问。。然后再加一个定时任务,把10分钟前的数据删掉,免得数据太多。。
      

  3.   

    可以这样,不用表那么麻烦。
    需要两步:
    1,过滤器.
    2,session里保存每次访问的时间,以便和下次访问的时间比较.第一次访问action时,在session里记录这次访问的时间,然后第二次访问时,在过滤器中,获取当前访问的时间和第一次访问的时间,然后比较,如果差值小于10分钟,则不能访问,如果大于10分钟,则可以访问,并把这次访问的时间保存,覆盖之前的。其他访问一次如此!这样就能保证同一用户,10分钟之内不能2次访问!
      

  4.   

    不好意思,我那个思路有问题,考虑的只是10分钟之类,不能访问所有的action
      

  5.   

    可以这样,用session保存一个集合hashmap,键存放你要访问的方法,值存放访问的时间,访问的方法如果没有在hashmap存在,则代表第一次访问,那么将访问的方法名和时间保存在hashmap中,下一次在过滤器中取出来,名称和时间相对应的判断。OK这样就能保证同一用户、同一方法、在10分钟之内不可再访问!
      

  6.   

    那要看你的session是多久释放,我觉得可以用sessionId来做,但是有怕客户端关闭浏览器重来,还是可以用IP的,个人觉得,因为不是每个人都是程序员,都懂IP欺骗,考虑大多数人就好了,那些只是极少数的
      

  7.   


    session当然是直到客户退出时候才释放,当然session会有失效时间,那就得重新登录,又重新开始那样的操作!