关于jsp登录页面增加登录失败处理机制

lukelukelukelukeluke 2022-06-08 15:18:15
 <!DOCTYPE html>
<%@ page import="com.netsoft.shdx.common.ParameterTool" %>
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<%
    String error = ParameterTool.getParameter(request, "error");
%>
<html>
<head>
    <title>IT综合运维平台</title>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312"> 
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="./bootstrap/css/bootstrap.min.old.css" rel="stylesheet" media="screen">
    <link rel="stylesheet" href="./css/main.css" type="text/css">
    <link rel="stylesheet" href="./layer/theme/default/layer.css" type="text/css">
    <script type="text/javascript" src="./js/jquery-1.7.1.min.js"></script>
	<script type="text/javascript" src="./bootstrap/js/bootstrap.min.js"></script>
    <!--[if lt IE 8]>
        <script src=".bootstrap/js/html5.min.js"></script>
        <script src=".bootstrap/js/respond.min.js"></script>
    <![endif]-->
    <script src="./js/jquery.placeholder.js"></script>
    <script src="./layer/layer.js"></script>
	<script src="js/excanvas.js"></script>
     <style type="text/css">
        <!--
        .style2 {
            color: #0000FF;
            font-weight: bold;
        }
        -->
    </style>

    <script language="javascript">
        function run() {
            if (chkusr.LoginName.value == "") {
	            layer.tips('请输入用户名', '#LoginName', {
					 tips: [2, '#000'], //还可配置颜色, //设置tips方向和颜色 类型:Number/Array,默认:2 tips层的私有参数。支持上右下左四个方向,通过1-4进行方向设定。如tips: 3则表示在元素的下面出现。有时你还可能会定义一些颜色,可以设定tips: [1, '#c00']
	                 tipsMore: false, //是否允许多个tips
	                 time:2000  //2秒后销毁
	             });
                return false;
            }
            if (chkusr.Password.value == "") {
            	 layer.tips('请输入密码', '#Password', {
					 tips: [2, '#000'], //还可配置颜色, //设置tips方向和颜色 类型:Number/Array,默认:2 tips层的私有参数。支持上右下左四个方向,通过1-4进行方向设定。如tips: 3则表示在元素的下面出现。有时你还可能会定义一些颜色,可以设定tips: [1, '#c00']
	                 tipsMore: false, //是否允许多个tips
	                 time:2000  //2秒后销毁
	             });
                return false;
            }
            if ($("#code_input").val() == ""){
            	 layer.tips('请输入验证码', '#code_input', {
					 tips: [2, '#000'], //还可配置颜色, //设置tips方向和颜色 类型:Number/Array,默认:2 tips层的私有参数。支持上右下左四个方向,通过1-4进行方向设定。如tips: 3则表示在元素的下面出现。有时你还可能会定义一些颜色,可以设定tips: [1, '#c00']
	                 tipsMore: false, //是否允许多个tips
	                 time:2000  //2秒后销毁
	             });
                 return false;
            }
            if( $("#code_input").val().length<4 || !verifyCode.validate(document.getElementById("code_input").value)){
            	 layer.tips('验证码不正确,请重新输入!', '#code_input', {
					 tips: [2, '#000'], //还可配置颜色, //设置tips方向和颜色 类型:Number/Array,默认:2 tips层的私有参数。支持上右下左四个方向,通过1-4进行方向设定。如tips: 3则表示在元素的下面出现。有时你还可能会定义一些颜色,可以设定tips: [1, '#c00']
	                 tipsMore: false, //是否允许多个tips
	                 time:2000  //2秒后销毁
	             });
            	 $("#code_input").val("");
            	 $("#verifyCanvas").click();
                 return false;
            }
            return true;
        }

        function getFocus() {
        <%if(!error.equals("")){%>
            alert("<%=error%>");
        <%}%>
            document.chkusr.LoginName.focus();
        }
         
    </script>
    <script type="text/javascript">
    $(function () {
        // Invoke the plugin
        $('input, textarea').placeholder();
    });
</script>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="80" style="margin-top:80px" onload="getFocus()">
<center>
<table width="778" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td width="163" background="./images/left1.jpg"></td>
        <td width="615"><img src="./images/left2.gif" width="680" height="148"></td>
    </tr>
</table>
<table width="778" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td colspan="2"><img src="./images/2.jpg" width="778" height="69"></td>
    </tr>
</table>
<table width="778" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td width="467" background="./images/4.jpg">
            <table width="335" border="0" cellspacing="0" cellpadding="0" align="center">
                <tr>
                    <td width="8" height="17"><img src="./images/co1.gif" width="8" height="17"></td>
                    <td width="283" bgcolor="656565" height="17">
                        <div align="center"><font color="#FFFFFF" class="9p">用 户 登 录 </font></div>
                    </td>
                    <td width="8" height="17">
                        <div align="right"><img src="./images/co2.gif" width="8" height="17"></div>
                    </td>
                </tr>
                <tr>
                    <td width="8" bgcolor="#EFEFEF"></td>
                    <td width="99%">
                        <table width="100%" border="0" cellspacing="0" cellpadding="0" height="120">
                            <tr bgcolor="#EFEFEF">
                                <td valign="top">
                                    <form name="chkusr" method="post" action="./doLogin.jsp" onSubmit="return run()">
                                        <table width="100%" border="0" cellspacing="8" style="margin-top:10px;" cellpadding="0">
                                            <tr>
                                                <td width="27%"></td>
                                                <td width="73%" colspan="2"></td>
                                            </tr>
                                            <tr>
                                                <td width="27%">
                                                    <div align="center">用户名:</div>
                                                </td>
                                                <td width="73%" valign="top" colspan="2">
                                                    <input name="LoginName" id="LoginName" type="text" class="button" title="用户名"
                                                           size="25" maxlength="20" MUST="1">
                                                </td>
                                            </tr>
                                            <tr>
                                                <td width="27%">
                                                    <div align="center">密 码:</div>
                                                </td>
                                                <td width="73%" valign="top" colspan="2">
                                                    <input name="Password" id="Password" type="password" class="button" title="密码"
                                                           size="27" maxlength="20" MUST="1">
                                                </td>
                                            </tr>
                                            <tr>
                                            	<td width="27%">
													<div align="center">验证码:</div>
												</td>
												<td width="73%" valign="top" colspan="2">
														<input type="text" id="code_input" name="code_input" class=" " title="验证码"
                                                           placeholder="请输入验证码" size="25" maxlength="4" MUST="1"/>
												</td>
											</tr>
											<tr>
												<td width="27%"></td>
                                            	<td width="72%" valign="top" colspan="2">
													<div id="v_container" style="float:left;height:30px;width:80px;cursor:pointer;border:0px solid rgb(255,255,255);"></div>
													<div><input type="button" id="my_button" value="验证" class="btn-info" style="display:none;float:left;margin-left:46px;margin-bottom:5px;border:0px solid rgb(255,255,255);height:34px;width:85px;cursor:pointer;"></input></div>
													<input type="submit" name="Submit" value="登录" style="margin:3px 0px 0px 10px;" class="btn-success btn-xs">
													<input type="reset" name="Submit2" value="重写" style="margin:3px 0px 0px 10px;" class="btn-info btn-xs">
												</td> 
											</tr>
                                            <tr style="display:none">
                                                <td width="27%"></td>
                                                <td style="border:0px solid red">  
                                                    <input type="submit" name="Submit" value="登录" class="btn-info">
                                                </td>
                                                 <td style="border:0px solid red">  
                                                    <input type="reset" name="Submit2" value="重写" style="align:center" class="btn-info">
                                                </td>
                                            </tr>
                                        </table>
                                    </form>
                                </td>
                            </tr>
                        </table>
                    </td>
                    <td width="8" bgcolor="#EFEFEF"></td>
                </tr>
                <tr>
                    <td width="8" valign="top"><img src="./images/co3.gif" width="8" height="18"></td>
                    <td width="283" bgcolor="#EFEFEF" valign="top"></td>
                    <td width="8" valign="top">
                        <div align="right"><img src="./images/co4.gif" width="8" height="18"></div>
                    </td>
                </tr>
            </table>
        </td>
        <td width="311" valign="top" height="222" background="./images/3.gif" ">
            <div align="center">
                <table width="98%" border="0" cellspacing="2" cellpadding="0" align="center">
                    <tr>
                        <td></td>
                    </tr>
                    <tr>
                        <td>
                            <div align="center">== <span class="style2">用户操作说明</span> ==</div>
                        </td>
                    </tr>

                </table>
                 <table width="80%" border="1" cellspacing="0" cellpadding="0" align="center" height="166"
                       bgcolor="#EAEAEA" bordercolordark="#EAEAEA" bordercolorlight="#333333">
                    <tr>
                        <td valign="top">
                            <p><br>中国电信上海公司安全管理部警示:您将登录中国电信上海公司内部信息系统,系统内所有数据及用户信息均属企业商业秘密,一旦登录,您即负有保密义务。您在系统中的一切操作,均有日志记录,严禁从事与本职工作无关的违规操作。如有违反,公司将依据现行规章制度予以查处。涉嫌违法犯罪的,将移送有关国家机关依法处理。</p>

                                                    </td>
                    </tr>
                </table>
            </div>
        </td>
    </tr>
</table>
<table width="778" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td><img src="./images/5.gif" width="778" height="19"></td>
    </tr>
</table>
<center>
<script src="./js/gVerify.js"></script>
	<script type="text/javascript">
		/**版本号**/
		var verifyCode = new GVerify("v_container");

		document.getElementById("my_button").onclick = function(){
			var res = verifyCode.validate(document.getElementById("code_input").value);
			if(res){
				layer.tips('验证正确', '#code_input', {
					 tips: [2, '#000'], //还可配置颜色, //设置tips方向和颜色 类型:Number/Array,默认:2 tips层的私有参数。支持上右下左四个方向,通过1-4进行方向设定。如tips: 3则表示在元素的下面出现。有时你还可能会定义一些颜色,可以设定tips: [1, '#c00']
	                 tipsMore: false, //是否允许多个tips
	                 time:2000  //2秒后销毁
	             });
			}else{
				layer.tips('验证码错误', '#code_input', {
					 tips: [2, '#000'], //还可配置颜色, //设置tips方向和颜色 类型:Number/Array,默认:2 tips层的私有参数。支持上右下左四个方向,通过1-4进行方向设定。如tips: 3则表示在元素的下面出现。有时你还可能会定义一些颜色,可以设定tips: [1, '#c00']
	                 tipsMore: false, //是否允许多个tips
	                 time:2000  //2秒后销毁
	             });
			}
		}
		setTimeout(function() {
			// IE
			if(document.all) {
				document.getElementById("verifyCanvas").click();
			}
			// 其它浏览器
			else {
				var e = document.createEvent("MouseEvents");
				e.initEvent("click", true, true);
				document.getElementById("verifyCanvas").dispatchEvent(e);
			}
		}, 200);
	</script>
</body>
</html>

以上这段jsp登录代码中,如何增加 密码输错3次,隔10分钟后才能登录,我是小白,望高手指点

...全文
262 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
luzhe3014151 2022-06-22
  • 打赏
  • 举报
回复

如果没使用过redis或者其他辅助工具,给你推荐一个“笨办法”,用户每次登录失败,就在数据库记录一下他的失败次数,达到三次以上,就提示锁定。若失败两次,第三次登录成功,就要清零错误次数。这是一个大概的思路。

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧