技术路线:使用session存储用户信息,退出时删除用户信息
1.index. html设置退出按钮
<div class="navbar-btn navbar-btn-right">
<a class="btn btn-success update-pro" href="#" title="Upgrade to Pro" data-toggle="modal" data-target="#exitModal"><i class="fa fa-rocket"></i> <span>安全退出</span></a>
</div>
调用确认删除模态对话框,单击确认后退出,此处需要使用<a> 来跳转到controller
<div class="modal fade" id="exitModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="exampleModalLabel">确认框</h4>
</div>
<div class="modal-body">
<form action="logout">
<div class="form-group">
<label class="control-label">确定要退出吗?</label>
</div>
</form>
</div>
<div class="modal-footer">
<a class="btn btn-sm btn-primary" th:href="@{/logout}">确认</a>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
</div>
</div>
</div>
</div>
2.后台注销登录,删除session信息,并跳转到login页面
//注销登录
@RequestMapping("/logout")
public String logout(HttpSession session)
{
System.out.println("logout");
//session失效
session.removeAttribute("name");
session.removeAttribute("num");
return "redirect:/tologin";
}
session本身在登录时有记录,如下
@RequestMapping("/login")
public String gologin(String name,String password, HttpSession session) {
User user=userMapper.getUserByNum(name);
session.setAttribute("username",user.getUsername());
session.setAttribute("employeeNum",user.getEmployeeNum());
return "redirect:/index";
}
3. 设置session的有效时长 7200s,2小时
server:
port: 8092
session:
timeout: 7200
注意:此外,获取session的方法如下:
在controller的函数里添加参数:HttpSession session,然后用getAttribute获取值
@RequestMapping("/action")
public String action(HttpSession session) {
String username=(String)session.getAttribute("username");
return "action";
}