JAVA记住密码功能的实现代码

准备:SSM框架,mysql数据库

用户表 user

实体类:

public class User {
  /**
   * 主键id
   */
  private Integer userId;
  /**
   * 账号
   */
  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, "用户名或密码错误");
      }
    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>
    <%--验证码--%>
    <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="验证码" 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>教务综合信息服务平台
    </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 () {
        //发送ajax请求
        $.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>

总结

以上所述是小编给大家介绍的JAVA记住密码功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • JavaWeb 中Cookie实现记住密码的功能示例

    本文主要内容: •1.什么是Cookie •2.Cookie带来的好处 •3.Cookie的主要方法 一.什么是Cookie cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段.Cookie的目的就是为用户带来方便,为网站带来增值.虽然有着许多误传,事实上Cookie并不会造成严重的安全威胁.Cookie永远不会以任何方式执行,因此也不会带来病毒或攻击你的系统.另外,由于浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为

  • java web中使用cookie记住用户的账号和密码

    毕业设计中需要用到记住账号密码的功能,网上搜到了一个解决方案,自己稍加改造就是下面的方法. 首先是登录的页面,当用户勾选记住密码,传递给controller(我用的SSM框架),后台设置cookie的值,然后下次登录的时候就不用再次输入账号和密码了. login.jsp的代码: <%@page import="org.apache.commons.lang.StringUtils"%> <%@ page language="java" conten

  • JAVA记住密码功能的实现代码

    准备:SSM框架,mysql数据库 用户表 user 实体类: public class User { /** * 主键id */ private Integer userId; /** * 账号 */ private String username; /** * 密码 */ private String password; public Integer getUserId() { return userId; } public void setUserId(Integer userId) {

  • vue实现禁止浏览器记住密码功能的示例代码

    查找资料 网上查到的一些方法: 使用 autocomplete="off"(现代浏览器许多都不支持) 使用 autocomplete="new-password" 在真正的账号密码框之前增加相同 name 的 input 框 使用 readonly 属性,在聚焦时移除该属性 初始化 input 框的 type 属性为 text,聚焦时修改为 password 使用 type="text",手动替换文本框内容为星号 "*" 或者

  • asp.net中使用cookie与md5加密实现记住密码功能的实现代码

    在做一个前台的登陆和后台的信息审核管理功能时,需要用到记住密码的模块:虽然.net内置了登陆控件,有记住密码的功能,但还是想自己实践一下,以下代码主要应用了COOKIE,包括安全加密的过程等. 复制代码 代码如下: //设置,删除Cookie//provider jb51.net        protected void set_cookie()        {            HttpCookie UserNameCookie = Request.Cookies["UserNameC

  • jquery.cookie.js 操作cookie实现记住密码功能的实现代码

    复制代码 代码如下: //初始化页面时验证是否记住了密码 $(document).ready(function() { if ($.cookie("rmbUser") == "true") { $("#rmbUser").attr("checked", true); $("#user").val($.cookie("userName")); $("#pass").va

  • Android实现记住密码功能

    本文实例为大家分享了Android实现记住密码功能的具体代码,供大家参考,具体内容如下 LoginActivity.java package com.wangdeqiang.www.chatwithrobot.BroadcastBestPractice; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preferen

  • Android开发笔记SQLite优化记住密码功能

    本文实例为大家分享了Android SQLite优化记住密码功能的具体代码,供大家参考,具体内容如下 package com.example.alimjan.hello_world; /** * Created by alimjan on 7/4/2017. */ import com.example.alimjan.hello_world.bean.UserInfo; import com.example.alimjan.hello_world.dataBase.UserDBHelper; i

  • Android实现登陆界面的记住密码功能

    本文实例为大家分享了Android实现登陆界面记住密码功能的具体代码,供大家参考,具体内容如下 所需工具 一.复选框控件:CheckBox,二.SharedPreferences用于存储数据,该工具的读取和写入较为简单,放在代码里的注释中解释 实现逻辑: 如果没弄懂逻辑,代码看起来还是有点小难度的 一.判断SharedPreferences中已存入的CheckBox的Boolean信息(没有读取到则默认条件为“否”),如果条件为“是”(同时满足能读取到和读取的信息为“是”两个条件),通过Shar

  • Android制作登录页面并且记住账号密码功能的实现代码

    一.页面搭建 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmln

  • IOS NSUserDefault 记住用户名及密码功能的实例代码

    一般的登录界面都会有一个记住密码的选项,要实现这个功能可以使用NSUserDefault,这里只是讲解明文的处理方式,虽然这样是有一定的风险性的但是目前只是了解如何实现这个功能: 首先声明一个NSUserDefault对象: let userDefaults = NSUserDefaults.standardUserDefaults() //本地操作所需 然后根据是否记住密码按钮的状态来判断是否要为用户名和密码设置值,如果是记住密码,那么需要取出需要记住的密码,并且为这两个TextField赋值

  • js中利用cookie实现记住密码功能

    在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse response Cookie username = new Cookie("username ","cookievalue"); Cookie password = new Cookie("password ","cookievalue&quo

随机推荐