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 ...
随机推荐
- Python: 字典应用题
Write a program to read through the mbox-short.txt and figure out who has sent the greatest number o ...
- HDU 3401 Trade(斜率优化dp)
http://acm.hdu.edu.cn/showproblem.php?pid=3401 题意:有一个股市,现在有T天让你炒股,在第i天,买进股票的价格为APi,卖出股票的价格为BPi,同时最多买 ...
- python学习 day014打卡 内置函数二&递归函数
本节主要内容: 1.lambda匿名函数 2.sorted() 3.filter() 4.map() 5.递归函数 6.二分法 一.lambda匿名函数 为了解决一些简单的需求而设计的一句话函数 # ...
- 微信小游戏开发之JS面向对象
//游戏开发之面向对象 //在js的开发模式中有两种模式:函数式+面向对象 //1.es5 // 拓展一:函数的申明和表达式之间的区别 // 函数的申明: // function funA(){ // ...
- RN返回navigation方法
RN官方指定的路由管理是navigation 通过打印我们可以得到navgation的相关属性 1:dispatch ,Redux的事件发起 2:goback()返回 3:navigate(rout ...
- idea 启动时报 error:java 无效的源发行版
说白了就是编译的版本不符合,有的地方是jdk1.7 有的地方是jdk1.8 所以你只要每个地方都保持一致就行. 每个地方!! 每个地方!! 每个地方!! 重要的设置说三遍! 以jdk1.7为例 fil ...
- 常见字符集&乱码问题
字符集 常用字符集分类 ASCII及其扩展字符集 作用:表语英语及西欧语言. 位数:ASCII是用7位表示的,能表示128个字符:其扩展使用8位表示,表示256个字符. 范围:ASCII从00到7F, ...
- leecode第一百二十二题(买卖股票的最佳时机II)
class Solution { public: int maxProfit(vector<int>& prices) { int len=prices.size(); ) ; , ...
- vue cli 打包项目造成css背景图路径错误
vue cli做项目的时候难免会碰到,css引用背景图或者css,js之间的相互引用!!!这时候打包后可能会出现一个错误!!如下图: 写法: 错误: 会无端多出一个“/css/static/” 这样就 ...
- Asp.net core 学习笔记 ( Identity 之 Authentication )
和从前的 identity 区别不是很大. 从 2.1 开始 vs 模板的 identity 都被封装了起来, 你几乎看不到任何一行代码, 需要向下面这样打开它, 才能做修改. 说一下比较常用的配置 ...