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 ...
随机推荐
- UVA1025 城市里的间谍
#include<iostream> #include<cstdio> #include<memory.h> using namespace std; #defin ...
- VirtualBox安装Centos6.8出现——E_INVALIDARG (0x80070057)
VirtualBox使用已有的虚拟硬盘出错: 问题描述:UUID已经存在 Cannot register the hard disk 'E:\system_iso\centos6.8.vdi' {05 ...
- ubuntu 14.04 安装pip
sudo apt-get install python-pip
- oracle的批量操作sql语句
1.批量删除/批量更新 mapper: <update id="updatePrjStateByFPrjId" parameterType="string" ...
- python静态方法、类方法
常规: class Dog(object): def __init__(self,name): self.name=name def eat(self): print('%s is eating'%s ...
- Java之——利用Comparator接口对多个排序条件进行处理
转载自:http://blog.csdn.net/l1028386804/article/details/56513205 膜拜大神··· 一.需求 假设现在有个如此的需求:需要对一个这样的雇员列表进 ...
- arcface和Dlib人脸识别算法对比
我司最近要做和人脸识别相关的产品,原来使用的是其他的在线平台,识别率和识别速度很满意,但是随着量起来的话,成本也是越来越不能接受(目前该功能我们是免费给用户使用的),而且一旦我们的设备掉线了就无法使用 ...
- Vim 8.0
安装Vim 8.0yum install ncurses-devel wget https://github.com/vim/vim/archive/master.zip unzip master.z ...
- 对Maven项目进行强制更新
选中项目 然后 选中Force Update of Snapshots/Releases,点击OK即可. 此时pom.xml就不会报错了.
- Python Selenium 文件上传之SendKeys
昨天写了Web 文件下载的ui自动化,下载之后,今天就要写web 文件上传的功能了. 当然从折腾了俩小时才上传成功.下面写一下自己操作的步骤 首先网上说的有很多方法 如 input 标签的最好做了,直 ...