1.一个IP在5秒内只能请求一次某个jsp或者servlet,如果刷新太快就导向失败。
2.对于已经登陆到系统的用户:一个session的,5秒内只能对系统的所有JSP或者Servlet的请求不能超过5次。
这2个分别怎么实现好?

解决方案 »

  1.   

    你自己的需求很明确了,按照逐个实现就行了
    1 系统记录IP的请求,判断已经记录的数据,如果符合条件则forward走
    2 session更简单了,直接记录到session 里面就行了。
      

  2.   

    怎么保存IP,根据IP进行判断的?
      

  3.   

    1.一个IP在5秒内只能请求一次某个jsp或者servlet,如果刷新太快就导向失败。 
    Filter,记录IP的访问时间在静态HashMap里面。2.对于已经登陆到系统的用户:一个session的,5秒内只能对系统的所有JSP或者Servlet的请求不能超过5次。 
    Filter,记录访问url和次数在静态HashMap里面。错误页面的url不要记录。
      

  4.   

    具体思路:
    1. 在过滤器中为每个 JSP 页维护两个列表,对于登陆用户内装“SessionID-最后访问时间”(精确到毫秒),对于未登陆用户内装“IP-最后访问时间”列表。
    2. 过滤器每次收到请求后到相应列表中取对应最后访问时间,先计算当前时间和列表中时间之差,再根据是否大于指定时间间隔来确定处理方法(放行或500),最后用当前时间刷新列表时间。
    注意:别 forward 了,forward 也要占用系统资源,我的做法是直接500或404,谁叫你小子想黑我。