本文介绍的记住用户名、密码功能是借用jQuery插件方式实现。
1. 从网上下载jquery.cookie.js,拷贝到应用程序中。
2. 登录页面(login.jsp)导入jquery.cookie.js
<script language="javascript" type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.cookie.js"></script>
页面元素如下:
<input type='text' name='j_username' id="j_username"
<c:if test="${not empty param.login_error}">value='<c:out value="${ACEGI_SECURITY_LAST_USERNAME}"/>'
</c:if>
/>
<input type='password' name='password' id="password"/><input type="hidden" name="j_password" id="j_password"/><input type="checkbox" name="cookiePwd" id="cookiePwd" value="" style="background:none;width:20px;border:none;"/>记住此密码
<a href="#"><img src="./img/btn_dl.gif" οnclick="doLogin()"/></a><!-- 登录按钮-->
<a href="#"><img src="./img/btn_reset.gif" οnclick="doReset()"/></a><!-- 重置按钮-->
页面格局如下:
3. 实现登录事件(当用户点击登录后,保存用户名、密码到本地Cookie中)
<script type="text/javascript"> function doLogin() { /** 实现记住密码功能 */ var $n = $('#j_username'); var $p = $('#password'); var n = $n.val(); var p = $p.val(); if(n==null || n==''){ alert('请输入用户名!'); $n.focus(); return; } if(p==null || p==''){ alert('请输入密码!'); $p.focus(); return; } if($('#cookiePwd').attr('checked')){ $.cookie('username', n, {expires:7}); $.cookie('password', p, {expires:7}); }else{ $.cookie('username', null); $.cookie('password', null); } $('#j_username').val(n); $('#j_password').val(hex_md5(p)); //密码加密 var p1 = document.forms[0].password; var p2 = document.forms[0].j_password; p2.value = hex_md5(p1.value); document.forms[0].submit(); } </script>
这样,保存用户名密码到Cookie功能就实现了。
4 实现初始化事件:当用户打开登录页面时,如果上次操作选择了记住密码功能,则初始化上次输入的用户名密码:
script type="text/javascript"> (function(){ var n = $.cookie('username'); var p = $.cookie('password'); if(n!=null) $('#j_username').val(n); if(p!=null) $('#password').val(p); if(p!=null){ $('#cookiePwd').attr('checked', true); }else{ $('#cookiePwd').attr('checked', false); } $('#cookiePwd').click(function(){ if($(this).attr('checked')){ $('#cookieInfo').attr('checked', true); } }); $('#password').keypress(function(e){ if(e.which == 13){ //Enter doLogin(); } }); }); </script>
通过以上操作,实现记住用户名、密码功能就完成了,赶紧试试吧!