实现简单用户7天内免登录,可以采用以下步骤:
- 添加一个cookie,保存用户信息和登录时间。当用户勾选“7天内免登录”时,在后台生成一个cookie并设置有效期为7天,将用户信息和当前时间保存到cookie中。具体实现代码如下:
<%
String username = request.getParameter("username"); // 从前台获取用户名
String password = request.getParameter("password"); // 从前台获取密码
// 判断用户名和密码是否正确
if(username.equals("admin") && password.equals("root")) {
// 如果用户选择了7天免登录,就生成一个cookie
if(request.getParameter("rememberme") != null) {
// 将用户信息和当前时间保存到cookie中
Date now = new Date();
Cookie userCookie = new Cookie("userInfo", username + "#" + password + "#" + now);
userCookie.setMaxAge(60*60*24*7); // 设置有效期为7天
response.addCookie(userCookie); // 将cookie添加到响应头中
}
// 跳转到首页
response.sendRedirect("index.jsp");
} else {
// 返回登录页面,提示用户名或密码错误
response.sendRedirect("login.jsp?error=1");
}
%>
- 判断cookie是否存在,并验证登录时间。在网站的首页或其他需要登录验证的页面,需要先判断是否存在cookie,并验证cookie中记录的登录时间是否已经超过7天。如果改时间已经超过7天,则用户需要重新登录。具体实现代码如下:
<%
String username = ""; // 定义一个变量保存用户名
String password = ""; // 定义一个变量保存密码
Cookie[] cookies = request.getCookies(); // 获取所有cookie
if(cookies != null) {
// 遍历所有cookie,找到名为"userInfo"的cookie
for(int i=0; i<cookies.length; i++) {
Cookie c = cookies[i];
if(c.getName().equals("userInfo")) {
String[] values = c.getValue().split("#"); // 获取cookie中保存的值
username = values[0]; // 获取用户名
password = values[1]; // 获取密码
Date loginTime = new Date(Long.parseLong(values[2])); // 获取登录时间
// 判断登录时间是否超过7天
if((new Date().getTime() - loginTime.getTime()) > 7*24*60*60*1000) {
// 如果已经超过7天,则删除该cookie
c.setMaxAge(0);
response.addCookie(c);
// 跳转到登录页面,提示cookie已过期
response.sendRedirect("login.jsp?error=2");
}
break; // 找到cookie后即停止遍历
}
}
}
// 进行用户验证,代码省略
%>
这样,用户只需在登录页面勾选“7天内免登录”选项,即可在一定时间内无需重复输入用户名和密码登录系统。
示例1:用户A在登录页面勾选“7天内免登录”选项,并成功登录系统。用户A关闭浏览器后,再次打开浏览器并访问该网站的首页,可以直接进入系统,无需重新输入用户名和密码。
示例2:用户B在登录页面勾选“7天内免登录”选项,并成功登录系统。在7天的时间内,用户B多次访问系统首页和其他需要登录验证的页面,都可以直接进入系统,无需重新输入用户名和密码。超过7天后,用户B再次访问系统,需要重新登录才能进入系统。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jsp实现简单用户7天内免登录 - Python技术站