springboot设置免登陆和注销

1. 前台jsp

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function() {
	//进入页面先判断有没有勾选按钮
	if('${cookie.flag.value}'=='true'){
	//获取cookie中的账号和密码
		$("[name=name]").val('${cookie.username.value}');
		$("[name=password]").val('${cookie.password.value}');
		//给登录设置点击事件
		$("#login").trigger("click");
	}
})

</script>
</head>
<body>
	<form action="login" method="post">
		<input name="name"><br>
		<input name="password"><br>
		<input type="checkbox" name="flag">免登陆<br>
		<input type="submit" value="登录" id="login">
	</form>
</body>

2. controller层登录方法

 @RequestMapping("login")
public String login(User user,boolean flag,HttpServletRequest request,HttpServletResponse response) {
	User u = userservice.login(user);
	//把登录信息放到session作用于,用于拦截器
	request.getSession().setAttribute("u", u);
	//判断有没有勾选按钮
	if(flag) {
	//获取传过来的账号和密码
		Cookie username=new Cookie("username",user.getName());
		//设置时间(秒*时*天)
		username.setMaxAge(3600*24*7);
		//把cookie放到浏览器
		response.addCookie(username);
		//同上
		Cookie password=new Cookie("password",user.getPassword());
		password.setMaxAge(3600*24*7);
		response.addCookie(password);
		Cookie flagg= new Cookie("flag", flag+"");
		flagg.setMaxAge(3600*24*7);
		response.addCookie(flagg);
	}
	return "redirect:list";
}
**注销**
注销就是清除session和cookie信息
@RequestMapping("exi")	//注销的方法
public String exi(HttpServletRequest request,HttpServletResponse response) {
	request.getSession().removeAttribute("u");	//先清楚session中的信息
	Cookie[] cookies = request.getCookies();		//获取cookie的信息
	for (Cookie cookie : cookies) {
		cookie.setMaxAge(0);		//设置cookie的过期时间为0 马上过期
		cookie.setPath("/");			//设置cookie路径
		response.addCookie(cookie);		//重新放到浏览器
	}
	return "redirect:login";		//重定向登录方法然后被拦截
}

猜你喜欢

转载自blog.csdn.net/liangyao_/article/details/86560069
今日推荐