完善部分功能
- Session在线状态
- 添加修改密码页面
- 添加退出登录功能
第一步:修改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; } }