javaweb编写一个登入页面和登入服务,要求如下: 1.用户可以选择7天内记住密码 2.用户可以设置取消记住密码 3.用户可以设置自动登入 用户可以取消自动登入
时间: 2024-05-02 21:18:23 浏览: 121
以下是一个简单的登入页面和登入服务的代码,包含了用户选择记住密码和自动登入的功能:
登入页面(login.jsp):
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登入页面</title>
</head>
<body>
<h1>登入页面</h1>
<form action="login" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
记住密码:<input type="checkbox" name="remember"><br>
自动登入:<input type="checkbox" name="autoLogin"><br>
<input type="submit" value="登入">
</form>
</body>
</html>
```
登入服务(LoginServlet.java):
```
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String remember = request.getParameter("remember");
String autoLogin = request.getParameter("autoLogin");
// 在此处根据用户名和密码验证用户身份,这里为了简单起见,假设用户名为admin,密码为123456
if ("admin".equals(username) && "123456".equals(password)) {
// 验证成功,保存用户信息到Session中
request.getSession().setAttribute("username", username);
// 如果用户选择了记住密码,则保存用户名和密码到Cookie中,有效期为7天
if ("on".equals(remember)) {
Cookie usernameCookie = new Cookie("username", username);
usernameCookie.setMaxAge(7 * 24 * 60 * 60); // 7天
response.addCookie(usernameCookie);
Cookie passwordCookie = new Cookie("password", password);
passwordCookie.setMaxAge(7 * 24 * 60 * 60); // 7天
response.addCookie(passwordCookie);
} else {
// 如果用户取消了记住密码,则删除保存的Cookie
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName()) || "password".equals(cookie.getName())) {
cookie.setMaxAge(0);
response.addCookie(cookie);
}
}
}
}
// 如果用户选择了自动登入,则保存用户名和密码到Cookie中,有效期为30天
if ("on".equals(autoLogin)) {
Cookie usernameCookie = new Cookie("username", username);
usernameCookie.setMaxAge(30 * 24 * 60 * 60); // 30天
response.addCookie(usernameCookie);
Cookie passwordCookie = new Cookie("password", password);
passwordCookie.setMaxAge(30 * 24 * 60 * 60); // 30天
response.addCookie(passwordCookie);
} else {
// 如果用户取消了自动登入,则删除保存的Cookie
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName()) || "password".equals(cookie.getName())) {
cookie.setMaxAge(0);
response.addCookie(cookie);
}
}
}
}
response.sendRedirect("welcome.jsp"); // 登入成功,跳转到欢迎页面
} else {
response.sendRedirect("login.jsp"); // 登入失败,重新跳转到登入页面
}
}
}
```
阅读全文