Java 使用servlet和数据库限制登录尝试

Java 使用servlet和数据库限制登录尝试,java,servlets,Java,Servlets,我试图限制用户尝试使用servlet登录的次数,但在尝试3次后,它不会显示“阻止的帐户”。我怎样才能解决这个问题?请帮忙 这是我的密码: int maxAttempts; maxAttempts = 0; while(maxAttempts < 3) { String username = request.getParameter("username"); String pas

我试图限制用户尝试使用servlet登录的次数,但在尝试3次后,它不会显示“阻止的帐户”。我怎样才能解决这个问题?请帮忙

这是我的密码:

int maxAttempts;
            maxAttempts = 0;
             while(maxAttempts < 3)
               {

        String username = request.getParameter("username");
        String password = request.getParameter("password");


        HttpSession session = request.getSession();



        if(LoginConnection.checkUser(username, password))
        {

            session.setAttribute("username", username);

            RequestDispatcher rs = request.getRequestDispatcher("profile.jsp");
            rs.forward(request, response);
            break;
        }
        else
        {  
            String error = "Invalid password";
            request.setAttribute("error", error);
            request.getRequestDispatcher("index.jsp").forward(request, response);   
            maxAttempts++;
            break;


               }



        } if(maxAttempts == 3) {
            String error = "Blocked account.";
            request.setAttribute("error", error);
            request.getRequestDispatcher("index.jsp").forward(request, response);   


        }


    }
int;
最大尝试次数=0;
而(最大尝试次数<3)
{
字符串username=request.getParameter(“用户名”);
字符串密码=request.getParameter(“密码”);
HttpSession session=request.getSession();
if(LoginConnection.checkUser(用户名、密码))
{
session.setAttribute(“用户名”,用户名);
RequestDispatcher rs=request.getRequestDispatcher(“profile.jsp”);
转发(请求、响应);
打破
}
其他的
{  
字符串错误=“无效密码”;
setAttribute(“错误”,error);
getRequestDispatcher(“index.jsp”).forward(请求、响应);
max6++;
打破
}
}如果(最大尝试次数==3){
字符串错误=“已阻止帐户。”;
setAttribute(“错误”,error);
getRequestDispatcher(“index.jsp”).forward(请求、响应);
}
}

您需要在会话中设置最大尝试次数。不要在任何时候使用。除非另有选择。将最后一个if块放入else

在if块之前,从会话中获取最大尝试次数,并将其递增,然后将其放回if块中的会话中