Java实现登录时cookie记住密码
2023-09-11 14:22:31 时间
前言
Java实现登录时cookie记住密码,下次登录不用重新输入密码,自动记住密码进行登录
编写代码
首先写一个页面登录表单,还有它对应的js
<%--
Created by IntelliJ IDEA.
User: wx_weiyihe
Date: 2021/8/30
Time: 15:50
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form method="post" action="/cookie">
用户名:<input type="text" name="username" id="username"><br>
密码:<input type="password" name="password" id="password"><br>
<input type="checkbox" name="remember" id="remember" value="true">记住密码<br>
<input type="submit" value="登录">
</form>
</body>
<script>
var cookies=document.cookie.split(";");
function getCK(mkey) {
for(var i=0;i<cookies.length;i++){
var kv=cookies[i].split("=");
if(kv[0].trim()==mkey){
return kv[1].trim();
}
}
return "";
}
window.onload=function(){
var remember=getCK("remember");
var username=getCK("username");
var password=getCK("password");
if(remember=='true'){
var userNameInput=document.getElementById("username");
userNameInput.value=username;
var rememberInput=document.getElementById("remember");
rememberInput.checked='checked';
var passwordInput=document.getElementById("password");
passwordInput.value=password;
}
}
</script>
</html>
java处理,用户名密码验证,判断是否勾选记住密码,并生成cookie,保存到客户端
@RequestMapping("/cookie")
public void cookieTest(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setHeader("content-type","text/html;charset=utf-8");
String username=request.getParameter("username");
String password=request.getParameter("password");
String remember=request.getParameter("remember");
//这里方便测试我把用户名密码写死了 用户名:sw 密码:123
boolean success="sw".equals(username) && "123".equals(password);
if(success){
response.getWriter().write("登陆成功");
}else{
response.getWriter().write("登陆失败");
}
if("true".equals(remember) && success==true){
Cookie ck1=new Cookie("remember", remember);
ck1.setMaxAge(60*60);
response.addCookie(ck1);
Cookie ck2=new Cookie("username", username);
ck1.setMaxAge(60*60);
response.addCookie(ck2);
Cookie ck3=new Cookie("password", password);
ck1.setMaxAge(60*60);
response.addCookie(ck3);
}else{
//清除cookie
Cookie[] cks=request.getCookies();
if(cks !=null){
for (Cookie c : cks) {
c.setMaxAge(0);
response.addCookie(c);
}
}
}
}
查看效果
退出去重新刷新页面,密码自动绑定
总结
把密码存入cookie是有盗号风险的,为了解决这个问题,推荐将密码加密,这样就能保证密码的安全了。欢迎大家一起研究
相关文章
- JAVA-数据库之Statement对象
- java错误:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Bu
- Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
- Java实现派(Pie, NWERC 2006, LA 3635)
- Java实现 蓝桥杯 一步之遥
- java实现第N个素数
- java实现第四届蓝桥杯快速排序
- java实现第六届蓝桥杯三角形面积
- 【JAVA】java中split以"." 、""、“|”分隔字符串
- 【JAVA】基于MVC架构Java技术荟萃案例演练
- java.lang.OutOfMemoryError: Java heap space 解决方法
- 【JAVA】Java 异常中e的getMessage()和toString()方法的异同
- Atitit java播放器调音速率快慢的实现 目录 1.1. 原理 本质上是改变采样率即可1 2. 使用Java增加/降低AudioInputStream的音频播放速度(Increase/dec
- 华为OD机试 - 最少面试官数(Java & JS & Python)
- 华为OD机试 - 真正的密码(Java & JS & Python)
- Java实现7种常见密码算法
- 【Java用法】java 8两个List集合取交集、并集、差集、去重并集
- java - List取差集时报错 Method threw 'java.lang.UnsupportedOperationException' exception. 解决
- 【华为OD机试 2023】 最长的密码(C++ Java JavaScript Python)
- Java 8 中的 java.util.Map#computeIfAbsent
- Java通过PDF模板导出数据 adobe acrobat的PDF编辑器 itextpdf java导出文件输出流
- java-信息安全(十二)-数字证书、CA证书【Java证书体系实现】
- java中的匿名内部类
- java并发:volatile关键字
- java 实现DBScan聚类算法
- JAVA开发讲义(二)-Java程序设计之数据之谜三
- JAVA开发讲义(一)-Java的自白
- java入门 常见问题0016:变量名不合适