LibrarySystem图书管理系统(八)

完善部分功能

  1. Session在线状态
  2. 添加修改密码页面
  3. 添加退出登录功能

第一步:修改indexpage.html

            <div class="collapse navbar-collapse">
                <ul class="nav navbar-nav">
                    <li class="dropdown">
                        <a href="#" id="username" class="dropdown-toggle" data-toggle="dropdown">
                            <script type="text/javascript">
                                online();
                            </script>
                        </a>
                        <ul class="dropdown-menu">
                            <li><a href="updatePwd.html">修改密码</a></li>
                            <li><a href="mybook.html">借阅记录</a></li>
                            <li><a href="login.html" onclick="logout()">退出登录</a></li>
                        </ul>
                    </li>
                </ul>
                <div class="navbar-form navbar-left">
                    <div class="form-group">
                        <input type="text" id="searchTxt" class="form-control" placeholder="Search">
                    </div>
                    <button type="submit" class="btn btn-default" id="search_bt" onclick="search()"/>Search</div>
                </div>
            </div>


第二步:创建updatePwd.html

<!doctype html>
<html lang="zh">
<script src="js/userJS.js"></script>
<script src="js/searchJS.js"></script>
<script src="js/jquery-1.7.1.min.js"></script>
<link rel="stylesheet" href="css/bootstrap-3.3.7.min.css">
<script src="js/bootstrap-3.3.7.min.js"></script>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>修改密码</title>
    <!--<link rel="stylesheet" type="text/css" href="css/styles.css">-->
</head>
<body>
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <div class="navbar-header">
                <a href="#" class="navbar-brand">图书管理系统</a>
            </div>
            <div class="collapse navbar-collapse">
                <ul class="nav navbar-nav">
                    <li><a href="indexpage.html">返回首页</a></li>
                    <li class="dropdown">
                        <a href="#" id="username" class="dropdown-toggle" data-toggle="dropdown">
                            <script type="text/javascript">
                                online();
                            </script>
                        </a>
                        <ul class="dropdown-menu">
                            <li><a href="updatePwd.html">修改密码</a></li>
                            <li><a href="mybook.html">借阅记录</a></li>
                            <li><a href="login.html" onclick="logout()">退出登录</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </nav>

    <div class="container">
        <div class="row">
            <div class="col-md-offset-3 col-md-6">
                <div class="form-group">
                    <h2>修改密码</h2>
                </div>
            </div>
            <div class="form-group">
                <input class="form-control" type="password" id="password1" placeholder="请输入新密码"/>
            </div>
            <div class="form-group">
                <input class="form-control" type="password" id="password2" placeholder="请再次输入新密码"/>
            </div>
            <div class="form-group">
                <button class="btn btn-primary btn-default" type="submit" onclick="updatePwd()">提交</button>
            </div>
        </div>
    </div>
</body>


第三步:修改UserMapper.xml 和 UserMapper.java

<!-- UserMapper.xml -->
  <update id="updatePwd" parameterType="com.ray.entity.User">
    update user
    set user_pwd = #{userPwd}
    where user_name = #{userName}
  </update>

UserMapper.java

 void updatePwd(@Param("userPwd") String newPwd,
                   @Param("userName") String userName);


第四步:修改UserService 和 UserServiceImpl

public interface UserService {

    void save(User user);
    User checkLogin(String userName, String userPwd);
    boolean checkRegister(String userName, String userPwd, String email);
    boolean updatePwd(String newPwd, String username);
}

UserServiceImple.java

package com.ray.service.impl;

import com.ray.dao.UserMapper;
import com.ray.entity.User;
import com.ray.service.UserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;

/**
 * @author Ray
 * @date 2018/5/23 0023
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements UserService {

    @Resource
    private UserMapper userMapper;

    /**
     * 新增用户
     * @param user
     */
    @Override
    public void save(User user) {
        userMapper.insert(user);
    }

    /**
     * 登录检查
     * @param userName
     * @param userPwd
     * @return
     */
    @Override
    public User checkLogin(String userName, String userPwd) {
        User user = userMapper.selectUser(userName);
        if(user != null && user.getUserPwd().equals(userPwd)){
            return user;
        }
        return null;
    }

    /**
     * 注册检查
     * @param userName
     * @param userPwd
     * @param email
     * @return
     */
    @Override
    public boolean checkRegister(String userName, String userPwd, String email) {
        User user = userMapper.selectUser(userName);
        if(user != null){
            return false;
        }else{
            User insertUser = new User();
            insertUser.setUserName(userName);
            insertUser.setUserPwd(userPwd);
            insertUser.setUserEmail(email);
            save(insertUser);
            return true;
        }
    }

    /**
     * 更改密码
     * @param newPwd
     * @param username
     * @return
     */
    @Override
    public boolean updatePwd(String newPwd, String username) {
       userMapper.updatePwd(newPwd, username);
       return true;
    }
}

第五步:创建userJS.js

function online() {
    $.ajax({
        url: "online",
        type: "GET",
        success: function (result) {
            if (result != null) {
                $("#username").append(
                    result.toString() + '<b class="caret"></b>'
                );
            }
        },
        error: function () {
            alert("请求失败!");
        }
    });
}

function updatePwd() {
    var password1 = document.getElementById("password1");
    var password2 = document.getElementById("password2");

    if(password1.value != password2.value){
        alert("两次密码不一致,请重新输入!");
        password1.text="";
        password2.text="";
    }else{
        var data = {};
        data["password"] = password2.value;
        $.ajax({
            url:"updateUserPwd",
            type:"POST",
            data:data,
            dataType:"JSON",
            success:function (result) {
                if(result == true){
                    alert("修改密码成功,请重新登录!");
                    setTimeout('window.location.href="login.html"');
                }
            }
        });
    }
}

function logout() {
    $.ajax({
        url:"logout",
        type:"GET",
        dataType:"JSON",
        success:function (result) {
            if(result == true){
                alert("退出成功!");
                setTimeout('window.location.href="login.html"');
            }else{
                alert("退出失败!");
            }
        },
        error:function () {
            alert("请求失败!");
        }
    });
}


扫描二维码关注公众号,回复: 1112657 查看本文章

第六步:修改UserController

package com.ray.controller;

import com.ray.entity.User;
import com.ray.service.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * @author Ray
 * @date 2018/5/23 0023
 */
@Controller
public class UserController {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Resource
    private UserService userService;

    /**
     * 用户注册
     * @RequestMapping 请求路径
     * @ResponseBody 返回JSON数据
     */
    @RequestMapping("insertUser")
    @ResponseBody
    public boolean insertUser(HttpServletRequest request, HttpServletResponse response){
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String email = request.getParameter("email");

        boolean result = userService.checkRegister(username,password,email);
        if(result){
            return true;
        }
        return false;
    }

    /**
     * 用户登录
     * @RequestMapping 请求路径
     * @ResponseBody 返回JSON数据
     */
    @RequestMapping("loginUser")
    @ResponseBody
    public boolean loginUser(HttpServletRequest request, HttpServletResponse response){
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        //控制台输出 -> 测试
        System.out.println("login_username: " + username);
        System.out.println("login_password: " + password);

        HttpSession session = request.getSession();

        User user = userService.checkLogin(username, password);
        if(user != null){
            session.setAttribute("username", user.getUserName());
            return true;
        }
        return false;
    }

    /**
     * Session在线状态
     */
    @RequestMapping("online")
    @ResponseBody
    public String online(HttpServletRequest request, HttpServletResponse response){
        Object user = request.getSession().getAttribute("username");

        if(user != null){
            System.out.println("Session_user: " + user.toString());
            return user.toString();
        }else{
            return null;
        }
    }

    /**
     * 修改密码
     */
    @RequestMapping("updateUserPwd")
    @ResponseBody
    public boolean updateUserPwd(HttpServletRequest request, HttpServletResponse response){
        Object user = request.getSession().getAttribute("username");
        String password = request.getParameter("password");
        System.out.println("当前用户: " + user.toString() + " 的新密码为: " + password);

        userService.updatePwd(password, user.toString());
        request.getSession().removeAttribute("username");
        return true;
    }

    /**
     * 退出登录
     */
    @RequestMapping("logout")
    @ResponseBody
    public boolean logout(HttpServletRequest request, HttpServletResponse response){
        Object user = request.getSession().getAttribute("username");

        if(user != null){
            request.getSession().removeAttribute("username");
            return true;
        }
        return false;
    }
}

第七步:运行测试






猜你喜欢

转载自blog.csdn.net/q343509740/article/details/80419852