java项目中登陆时记住密码
1.在登陆的时候记住密码,不知自动登陆;
2.登陆页面,填写用户名,密码,点击记住密码,下次进入登陆页面的时候,填写同样的用户名,密码自动填充(在不一次会话的情况下也就是说在不关闭浏览器的情况下);
3.这样,可以有效的防止自动登录时的不安全性
思路:
- 首先设置一个多选框,<input type="checkbox" onclick="remember()">记住密码
- 调用remember方法function remember(){1.设置一个remFlag,用来确定是否选中记住密码的多选框;2.获取checkbox的值;3.提醒用户是否要选中记住密码4.返回remFlag}
- 当调用login的方法时,获取remFlag的值,将remFlag作为参数传递给后台;
- 判断remFlag是否为1,如果为1,说明选中记住密码的按钮,之后(1.获取用户名密码,2创建cookies,3.将用户名密码作为值赋给cookies中,传递给前台)
5. 在$(function).ready({})的方法中获取cookies中的用户名密码,进行使用blur的方式进行填充
代码如下:
1.
<div style="float:right;padding-right:38%;display:true" >
<div style="float: left;margin-top:3px;margin-right:2px;">
<font>记住密码</font>
</div>
<div style="float: left;">
<input name="form-field-checkbox" id="saveid" type="checkbox"
onclick="remember();" style="padding-top:0px;" />
</div>
</div>
2.
function remember(){
var remFlag = $("input[type='checkbox']").is(':checked');
if(remFlag==true){ //如果选中设置remFlag为1
//cookie存用户名和密码,回显的是真实的用户名和密码,存在安全问题.
var conFlag = confirm("记录密码功能不宜在公共场所(如网吧等)使用,以防密码泄露.您确定要使用此功能吗?");
if(conFlag){ //确认标志
$("#remFlag").val("1");
}else{
$("input[type='checkbox']").removeAttr('checked');
$("#remFlag").val("");
}
}else{ //如果没选中设置remFlag为""
$("#remFlag").val("");
}
}
3.
function login(){
if(check()){
var userName = $("#userName").val();
var password = $("#password").val();
var remFlag = $("#remFlag").val();
$.ajax({
type: "POST",
url: 'login/userLogin.action',
data: {userName:userName,password:password,remFlag:remFlag},
dataType:'json',
cache: false,
success: function(data){
window.location.href="index.jsp?no-cache=" + Math.random();
}
}
4.
@RequestMapping("/userLogin")
public void doLogin(HttpServletRequest request,HttpServletResponse response){
String msg = "";
String userName = request.getParameter("userName");
request.getSession().setAttribute("userName",userName);
String password = request.getParameter("password");
//记住用户名、密码功能(注意:cookie存放密码会存在安全隐患)
String remFlag = request.getParameter("remFlag");
if("1".equals(remFlag)){ //"1"表示用户勾选记住密码
/*String cookieUserName = Utils.encrypt(name);
String cookiePwd = Utils.encrypt(passWord);
String loginInfo = cookieUserName+","+cookiePwd;*/
String loginInfo = userName+","+password;
Cookie userCookie=new Cookie("loginInfo",loginInfo);
userCookie.setMaxAge(-1); //存活期为关闭浏览器cookie消失
userCookie.setPath("/");
response.addCookie(userCookie);
}
Subject subject = SecurityUtils.getSubject();
String pwd = new Md5Hash(password).toHex();
UsernamePasswordToken token = new UsernamePasswordToken(userName, pwd);
JSONObject job = new JSONObject();
subject.login(token);
}
5.
$(document).ready(function() {
changeCode();
$("#codeImg").bind("click", changeCode);
//记住密码功能
var str = response.getCookies("loginInfo");
str = str.substring(1,str.length-1);
var username = str.split(",")[0];
var password = str.split(",")[1];
//自动填充用户名和密码
/* $("#userName").val(username);
$("#password").val(password); */
$("#userName").blur(function(){
var usrName=$("#userName").val();
if(username==usrName){
$("#password").val(password);
}else{
$("#password").val('');
}
});
});
java项目中登陆时记住密码的更多相关文章
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
function setCookie(){ //设置cookie var loginCode = $("#login_code").val(); //获取用户名信息 var pwd ...
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...
- ASP.NET中登录时记住用户名和密码(附源码下载)--ASP.NET
必需了解的:实例需要做的是Cookie对象的创建和对Cookie对象数据的读取,通过Response对象的Cookies属性创建Cookie,通过Request对象的Cookies可以读取Cookie ...
- 对java异常的总结及java项目中的常用的异常处理情况
文章涉及内容来源:黑马程序员自学整理的笔记,网上查阅资料,以及转载名为墨钺的博客大佬,附上博客转载地址:https://www.cnblogs.com/gothic-death/p/9946415.h ...
- ckeditor编辑器在java项目中配置
一.基本使用: 1.所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2.配置使用 A.将 ...
- SuperDiamond在JAVA项目中的三种应用方法实践总结
SuperDiamond在JAVA项目中的三种应用方法实践总结 1.直接读取如下: @Test public static void test_simple(){ PropertiesConfigur ...
- JAVA项目中常用的异常处理情况总结
JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
- Java项目中使用log记录日志的一些总结
本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...
- Ant在Java项目中的使用(一眼就看会)
参考:http://www.cnblogs.com/zhengqiang/p/5557155.html Ant是跨平台的构建工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将A ...
随机推荐
- SAP月结操作讲解
SAP月结操作讲解 https://wenku.baidu.com/view/ac6fe45d312b3169a451a4b9.html 步聚 操作内容 事务码 是否必须 操作时间 月/年结 1 ...
- WinForm 中 comboBox控件数据绑定
一.IList 现在我们直接创建一个List集合,然后绑定 IList<string> list = new List<string>(); list.Add("11 ...
- 遍历一个可迭代对象中的所有元素,但是却不想使用for循环
def manual_iter(): with open('/etc/passwd') as f: try: while True: line = next(f) print(line, end='' ...
- python函数名称
一.第一类对象, 函数名的使用 函数名就是变量名, 函数名存储的是函数的内存地址 变量的命名规范: 由数字, 字母, 下划线组成 不能是数字开头, 更不能是纯数字 不能用关键字 不要太长 要有意义 不 ...
- 关于Oracle 12C pdb用户无法登录的问题
新装了oracle12c,对新的CDB和PDB用户如何登录一直一头雾水,经过一晚上的查找,终于解决. sqlplus /nolog -> conn /as sysdba 登录到oracle 将s ...
- 使用python读取yaml文件
在做APP测试时,通常需要把参数存到一个字典变量中,这时可以将参数写入yaml文件中,再读取出来. 新建yaml文件(android_caps.yaml),文件内容为: platformName: A ...
- Meta referrer标签的,可以防止CSRF的攻击
Meta referrer标签的简要介绍 在某些情况下,出于一些原因,网站想要控制页面发送给 server 的 referer 信息的情况下,可以使用这一 referer metadata 参数. 参 ...
- ubuntu 配置sublime text3
1安装st3(http://blog.csdn.net/zhaoyu106/article/details/52858962) sudo apt-get update sudo apt-get ins ...
- split函数
b="aa,:bb:c,c"a1,a2,a3=b.split(":") #以:为分隔符,分成3个字符串
- icehouse版本中常用操作命令
•Glance操作常用命令1,列出所有镜像.glance image-list 2,显示某个image的详细信息.glance image-show 某个image的ID. 3,获得命令的帮助.gla ...