JAVA記住密碼功能的實(shí)現(xiàn)代碼
準(zhǔn)備:SSM框架,mysql數(shù)據(jù)庫
用戶表 user

實(shí)體類:
public class User {
/**
* 主鍵id
*/
private Integer userId;
/**
* 賬號(hào)
*/
private String username;
/**
* 密碼
*/
private String password;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
UserMapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 命名空間 -->
<mapper namespace="com.luowx.mapper.UserMapper">
<resultMap id="userMap" type="User">
<id property="userId" column="user_id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
<select id="getUserByname" resultMap="userMap">
select * from s_user where username=#{username}
</select>
</mapper>
mapper層
public interface UserMapper {
User getUserByname(String username);
}
service層
public interface UserService {
User getUserByname(String username, String password, HttpSession session, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse);
}
impl
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public ResultVO getUserByname(String username, String password, HttpSession session, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
String remember = httpServletRequest.getParameter("remember");
if (username!= null && username!= 0){
User user = userMapper.getUserByname(username);
if (user != null && user.getPassword().equals(password)){
session.setAttribute("user", user);
if (remember != null){
Cookie cookieUser = new Cookie("username", username);
Cookie cookiePass = new Cookie("password", password);
cookieUser.setMaxAge(60 * 60 * 24);
cookiePass.setMaxAge(60 * 60 * 24);
httpServletResponse.addCookie(cookieUser);
httpServletResponse.addCookie(cookiePass);
return ResultVO.success(user);
}
return ResultVO.error(1, "用戶名或密碼錯(cuò)誤");
}
return ResultVO.error(3, "用戶名或密碼不能為空");
}
}
Controller
@RestController
public class UserController {
@Autowired
private UserService userService;
//登錄
@RequestMapping("/getUserByname")
public ResultVO getUserByname(String username, String password, HttpSession session, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse){
return userService.getUserByname(username, password, session, httpServletRequest, httpServletResponse);
}
}
前端代碼(JSP)
html的自己修改下,樣式是BootStrap的
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登錄</title>
<link rel="stylesheet" href="/bootstrap4/css/bootstrap.min.css" rel="external nofollow" >
<style>
body{
background-color: #fafafa;
}
.nice{
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.container{
margin-top: 100px;
display: flex;
justify-content: space-between;
border: #b3b7bb 2px solid;
border-radius: 5px;
}
#loginForm{
width: 300px;
background-color: rgba(255,255,255,0.7);
margin-top: 30px;
border: #b3b7bb 1px solid;
border-radius: 5px;
}
</style>
</head>
<body>
<div class="container">
<div><img src="img/login_bg_pic.jpg"></div>
<form action="getUserByname" method="post" id="loginForm">
<div class="form-group">
<label for="exampleInputEmail1">用戶名</label>
<input type="text" class="form-control" id="exampleInputEmail1" name="userId" autocomplete="off" value="${userId}">
</div>
<div class="form-group">
<label for="exampleInputPassword1">密碼</label>
<input type="password" class="form-control" id="exampleInputPassword1" name="password" value="${password}">
</div>
<%--驗(yàn)證碼--%>
<div class="form-group">
<div class="input-icon" style="display: flex;justify-content: space-around;align-items: center">
<i class="fa fa-picture-o"></i>
<input class="form-control" style="width:180px;" type="text" id="verifyCode" name="verifyCode" placeholder="驗(yàn)證碼" maxlength="4" autocomplete="off">
<img src="${pageContext.request.contextPath }/getVerifyCode" width="110" height="34" id="verifyCodeImage">
</div>
</div>
<div class="custom-control custom-checkbox mb-3 was-validated">
<input type="checkbox" class="custom-control-input" id="rem" name="remember" checked>
<label class="custom-control-label" for="rem">記住密碼</label>
</div>
<button type="button" class="btn btn-primary login">登 錄</button>
<a href="/forgotpass" rel="external nofollow" ><button type="button" class="btn btn-danger">忘記密碼</button></a>
<br><br>
<div class="nice">
歡迎來到:<br>教務(wù)綜合信息服務(wù)平臺(tái)
</div>
</form>
<script src="/js/jquery-3.4.1.min.js"></script>
<script src="/bootstrap4/js/bootstrap.min.js"></script>
<script>
$(function () {
$(".login").click(function () {
//發(fā)送ajax請(qǐng)求
$.ajax({
url:'getUserByname',
type:'post',
data:$("#loginForm").serialize(),
success:function (res) {
console.log(res);
if (res.status === 0){
if(res.data.role === 0) {
location.href = "overview";
}else if (res.data.role === 1){
location.href = "teacher";
}else if (res.data.role === 2){
location.href = "teacher";
}else if (res.data.role === 3){
location.href = "student";
}
} else {
$(".nice").html("<div>" + res.message + "</div>");
}
}
});
});
});
</script>
</div>
</body>
</html>
總結(jié)
以上所述是小編給大家介紹的JAVA記住密碼功能的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Java實(shí)現(xiàn)定時(shí)任務(wù)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)定時(shí)任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09
Java運(yùn)行時(shí)數(shù)據(jù)區(qū)域(內(nèi)存劃分)的深入講解
聽說Java運(yùn)行時(shí)環(huán)境的內(nèi)存劃分是挺進(jìn)BAT的必經(jīng)之路,這篇文章主要給大家介紹了關(guān)于Java運(yùn)行時(shí)數(shù)據(jù)區(qū)域(內(nèi)存劃分)的相關(guān)資料,需要的朋友可以參考下2021-06-06
Java實(shí)現(xiàn)圖片與Base64編碼互轉(zhuǎn)
這篇文章主要介紹了Java中實(shí)現(xiàn)圖片與Base64編碼互轉(zhuǎn)的方法,比較實(shí)用,需要的朋友可以參考下。2016-06-06
spring使用@Async注解導(dǎo)致循環(huán)依賴問題異常的排查記錄
這篇文章主要介紹了spring使用@Async注解導(dǎo)致循環(huán)依賴問題異常的排查記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
全面掌握J(rèn)ava中的循環(huán)控制語句與條件判斷語句的使用
這篇文章主要介紹了Java中的循環(huán)控制語句與條件判斷語句的使用,循環(huán)和判斷是Java編程中流程控制的基礎(chǔ),需要的朋友可以參考下2016-02-02

