1、退出登錄
1、發送退出登錄請求
<a href="logout.do">退出</a>
2、在controller類中處理退出登錄請求
判斷用戶是否登錄,用戶是否登錄是根據session中是否有用戶的登錄信息。
@RequestMapping("/logout.do")
public String logout(HttpSession session) {
//清空session中保存的用戶信息
session.removeAttribute("emp");
//跳轉到登錄頁面
return "login.html";
}
2、顯示個人信息
<h5 class="media-heading mt5 mbn fw700 cursor">
<a target="right" href="myinfo.jsp">${emp.ename}</a>
<span class="caret ml5"></span></h5>
3、修改密碼
1、在index.jsp發送跳轉到修改密碼界面
<script type="text/javascript">
//添加編輯彈出層
function updatePwd(title, id) {
$.jq_Panel({
title: title,
iframeWidth: 500,
iframeHeight: 300,
url: "updatePwd.html"
});
}
</script>
2、在updatePwd.html頁面發送修改密碼請求,form表單中響應的target為index.jsp
<form action="updatePwd.do" target="index.jsp" class="am-form am-form-horizontal" method="post" style="padding-top:30px;" data-am-validator>
<div class="am-form-group">
<label for="user-name" class="am-u-sm-3 am-form-label">
新密碼 </label>
<div class="am-u-sm-9">
<input type="password" id="doc-vld-pwd-1" required placeholder="請輸入新密碼" name="epass"> <small>輸入新密碼。</small>
</div>
</div>
<div class="am-form-group">
<label for="user-name" class="am-u-sm-3 am-form-label">重復密碼</label>
<div class="am-u-sm-9">
<input type="password" id="doc-vld-pwd-2" required placeholder="請輸入重復密碼" name="repass" data-equal-to="#doc-vld-pwd-1" required> <small>輸入重復密碼。</small>
</div>
</div>
<div class="am-form-group">
<div class="am-u-sm-9 am-u-sm-push-3">
<input type="submit" id="btns" onclick="btnclose()" class="am-btn am-btn-success" value="修改密碼" />
</div>
</div>
</form>
3、在dao接口寫修改方法
@Update("update employee set epass = #{epass} where eid = #{eid}")
void updatePwd(Employee emp);
4、在service方法中調用到方法
public void updatePwd(Employee emp) {
dao.updatePwd(emp);
}
5、在controller中處理數據
@RequestMapping("/updatePwd.do")
public String updatePwd(HttpSession session, String epass, String repass) {
if(epass!=null && repass != null && epass.equals(repass)) {
//修改密碼
Employee emp = (Employee)session.getAttribute("emp");//獲取登錄用戶的信息
emp.setEpass(epass);//修改密碼
employeeService.updatePwd(emp);//把修改的密碼保存到數據庫
//更新session中用戶的密碼
session.setAttribute("emp", emp);
}
return "index.jsp";
}
4、登錄密碼加密
1、js中給密碼加密
<!-- 導入md5加密要用到的js文件 -->
<script type="text/javascript" src="js/md5.js"></script>
<script type="text/javascript">
md5("123456");
</script>
2、在java中進行加密
package com.hnjd.util;
import org.springframework.util.DigestUtils;
public class MD5Util {
public static void main(String[] args) {
String md5 = DigestUtils.md5DigestAsHex("123456".getBytes());
System.out.println(md5);
}
}
3、在mysql中石油md5加密
update employee set epass = md5(epass) where eid = 1;
4、對登錄功能進行加密處理
@RequestMapping("/login.do")
public String login(String ename, String epass, HttpSession session) {
Employee emp = employeeService.login(ename, DigestUtils.md5DigestAsHex(epass.getBytes()));
if(emp!=null) {//登錄成功
//1、共享登錄用戶的信息(request、session、application)
session.setAttribute("emp", emp);
//2、跳轉到首頁
return "index.jsp";
}
//登錄失敗,重新登錄
return "login.html";
}