struts2判断同一ip一定时间内不能重复走action 有没有简单的例子可以提供呢?jsp里form对应的action进入后,10分钟之内在这个jsp里再调这个action就不行的控制方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不现实的问题,IP地址都被划分的子网的,你一个人登录以后,那公司其他的人也就不能登录了,IP地址也可以造假,静止不到的,你如实在要获得IP地址,你可以通过request.getRemoteAddr();然后放入session中,并且设置session的过期时间,你要防止就用一个filter 建一张表,给action加个拦截器,访问action的时候,在拦截器中查一下表中10分钟内有没有这条记录,有的话就不能访问,没有就能访问。。然后再加一个定时任务,把10分钟前的数据删掉,免得数据太多。。 可以这样,不用表那么麻烦。需要两步:1,过滤器.2,session里保存每次访问的时间,以便和下次访问的时间比较.第一次访问action时,在session里记录这次访问的时间,然后第二次访问时,在过滤器中,获取当前访问的时间和第一次访问的时间,然后比较,如果差值小于10分钟,则不能访问,如果大于10分钟,则可以访问,并把这次访问的时间保存,覆盖之前的。其他访问一次如此!这样就能保证同一用户,10分钟之内不能2次访问! 不好意思,我那个思路有问题,考虑的只是10分钟之类,不能访问所有的action 可以这样,用session保存一个集合hashmap,键存放你要访问的方法,值存放访问的时间,访问的方法如果没有在hashmap存在,则代表第一次访问,那么将访问的方法名和时间保存在hashmap中,下一次在过滤器中取出来,名称和时间相对应的判断。OK这样就能保证同一用户、同一方法、在10分钟之内不可再访问! 那要看你的session是多久释放,我觉得可以用sessionId来做,但是有怕客户端关闭浏览器重来,还是可以用IP的,个人觉得,因为不是每个人都是程序员,都懂IP欺骗,考虑大多数人就好了,那些只是极少数的 session当然是直到客户退出时候才释放,当然session会有失效时间,那就得重新登录,又重新开始那样的操作! Servlet调用流程问题(了解源码流程的大牛帮忙解释下吧) 关于javascript链接oracle的问题,求指点 ext 更新后怎么去加载页面? 求助各位高手 如何得到本地svn版本号 JSP&java.lang.ClassNotFoundException: com.microsoft.JDBC.sqlserver.SQLServerDriver 的问题 菜鸟问题:struts里,xml担负那些功能的实现 有知道hashmap用发的吗? 上一页和下一页问题 HTTPClientUtil工具类出现问题 java中如何创建Servlet 数据库 connect time out
需要两步:
1,过滤器.
2,session里保存每次访问的时间,以便和下次访问的时间比较.第一次访问action时,在session里记录这次访问的时间,然后第二次访问时,在过滤器中,获取当前访问的时间和第一次访问的时间,然后比较,如果差值小于10分钟,则不能访问,如果大于10分钟,则可以访问,并把这次访问的时间保存,覆盖之前的。其他访问一次如此!这样就能保证同一用户,10分钟之内不能2次访问!
session当然是直到客户退出时候才释放,当然session会有失效时间,那就得重新登录,又重新开始那样的操作!