1. java web 登录次数限制,该如何解决
java web 登录次数限制
一个用户登录系统,如果他一分钟之内连续登录 3 次,就让他在 15 分钟之内无法再登录,
------解决方案--------------------------------------------------------
将用户的每次登录都记入登录日志表
每次登录的时候,去查最近15 分钟内,是否存在连续3 次登录发生在一分钟之内的
------解决方案--------------------------------------------------------
呵呵,好方法啊.但这样会不会数据库服务器很累啊
------解决方案--------------------------------------------------------引用:
将用户的每次登录都记入登录日志表
每次登录的时候,去查最近15 分钟内,是否存在连续3 次登录发生在一分钟之内的
这是个方法. 不过总查数据库应该是有些不妥的.!
不过暂时还想不到更好的办法.! 再去想想
------解决方案--------------------------------------------------------
如果以后不需要日志查询和审计,可以使用缓存而不是数据库,把每次登陆的信息(登陆名、
时间) 这些放入缓存。然后每次登陆时查询缓存就可以了。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
如果你不想用数据库的形式的话,用session 存下试试。
先声明下,我没用过:
在用户登录时候,如果成功不记录session,如果登录不成功,记录下session +1;
到第三次,就不让登录了。session 的有效期设置为15 分钟。.setMaxInactiveInterval(15
分钟);当然,感觉这样有个弊端,session 的丢失是根据客户端的浏览器关闭来的。
2. Java web 怎样限制同一个ip地址访问网页查询次数,每天只允许一个IP查询一次,怎么实现
用你这种方式也可以实现,但是不能100%控制,因为代理服务器什么的可以隐藏IP
不过可以控制绝大多数的人吧
用Map去记录IP的话,如果访问量很大,后台服务器内存也会加大,
建议用数据库去记录
写个拦截器或者过虑器,访问的时候获取客户端IP存到数据库,之后只需要查一下数据库就可以了
数据库可以写个Job,24小时执行一次,清除24小时以前的数据即可实现你的需求了.
很简单的
3. web中如何判断某用户在一天之内 对某一操作 操作的次数... 求解....
数据库中记录下访问日志(用户名,操作,参数,IP,时间)啊,然后每次访问的时候先统计下当日当前用户(或IP)的操作次数,不符合你的意思就不让操作呗
4. javaweb防止表单重复提交的几种解决方案
1.js方法解决:关于js方法解决就是说通过js动态控制提交按钮不能多次点击,或者多次点击不起作用。
方案一:通过设立标识使表单不能重复提交:
要强调的是,利用session方法解决表单重复问题是十分完美的,基本上可以应对各种重复提交问题。
但!是不是之前在客户端防止表单重复提交的种种方法就不使用了呢?
答案是否定的,我们需要多种方法混合使用才能达到最好的效果,也许有人会问,不是说session方法基本可以应对各种重复提交问题了吗?
这里我们所说的达到最好效果指的是,给用户更好地体验,例如用户点击了提交按钮,这时将按钮变为不可用的,用以告诉用户你已经提交内容了,不可重复提交。还有如果无论什么情况都用session防止表单重复提交问题,反而无形的增加了服务器端的负担。
5. web项目用拦截器对IP进行频率限制,1秒最多访问5次
可以使用拦截器,获得客户端IP,然后session缓存计数,超过的就直接拦截。
6. 怎么不让java web中表单中的某一个数据重复提交
[javascript] view plain
package cn.com.form;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import sun.misc.BASE64Encoder;
//产生表单
public class FormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//产生随机数
TokenProcessor tp=TokenProcessor.getInstance();
String token=tp.generateToken();
request.getSession().setAttribute("token", token);
request.getRequestDispatcher("/form.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
class TokenProcessor//令牌
{
7. Java web怎么限制同一个ip(或mac地址)访问网站,查询资源次数的
获取并保存IP,每次查询前,遍历IP,若相等,跳过查询,提示次数受限!
8. 关于JAVA的WEB开发,想在页面中实现在一段时间内限制同一个IP登陆失败次数过多
给出在doXX(get或者post)方法里的一点,其他自己完善。
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException {
int resc = 6 ;//定义次数,比如六次
HttpSession sess = request.getSession(true);//获取一个session
//这里使用伪码,假设你已经有了验证是否登录失败的方法,假设这个方法名字为 validate(),返回类型为boolean,为true则为登录成功
if(validate()){
//继续你的程序流程。。
}else{//登录失败了。。。
String add = request.getRemoteAddr();//获取当前用户的IP
Integer times = (Integer) sess.getAttribute(add);
if(times == null ){//当前第一次登陆
sess.setAttribute(add, new Integer(1));//设置为登录了一次
}else{
times = times + 1;//这样做不太好,但是也有效。严谨点,你可以取出times的intValue,然后再操作
if(times >= resc){//超过次数限制。。。
//执行你需要的程序。。。
}else{//没有超过次数,继续。。。
sess.setAttribute(add,times);
}
}
}
}
9. 在web页面中,如果两个人同时对同一批数据操作,会不会也出现重复操作的情况
当然会有.因此有库据并发控制
Application的锁定与解锁就可理角为一种简单的并发控制.
当表单涉及对数据库进行操作时,数据库的会产生并发.因此在数据库知识中,数据库的并发控制是一个重要的知识、涉及的内容很多的。比方说记录集的打开的锁定方式,事务,等等
10. web应用中如何避免频繁点赞操作,比如点击又取消又点击如此循环
1、目前仅iPhone、iPad版手机 支持查看及“我赞过谁”的记录,且只有iPhone支持删除“我赞过谁”的记录;操作删除方法:登录手机 进入个人资料->点击“赞”->选择“我赞过谁”,在屏幕上左右滑动需要删除的网友/好友,赞择“删除”即可;2、当您删除1条“我赞过谁”的记录后,“我赞过谁”的总条数会相应减少1条;3、即使您曾经操作“赞”对方多次,只要在“我赞过谁”记录中删除了对其的赞记录,对方“赞”数量只会减少1条,并且您会在对方“谁赞过我”记录列表中完全消失。