jsp编程设计一个用户登录页面,用户可以输入用户名和密码,让用户选择“是否保存登录状态”,如果账号和密码相符,则登录成功,进入欢迎页面,否则不跳转并显示“登录错误”的信息。在登录时,如果保存了登录状态,下次登录时若访问登录页面则进入欢迎页面,如果用户没有经过登录就访问欢迎页面,则跳转到登录页面。
时间: 2023-11-17 19:06:36 浏览: 54
好的,这是一个比较典型的用户登录场景,下面是一个简单的 JSP 代码示例,供您参考:
```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 method="post" action="login.jsp">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
是否保存登录状态:<input type="checkbox" name="rememberMe" value="true"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
```
在上面的代码中,我们建立了一个简单的登录表单,包括用户名、密码和是否保存登录状态的复选框。表单会提交到 `login.jsp` 页面进行处理。
下面是 `login.jsp` 的代码实现:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 获取用户提交的表单数据
String username = request.getParameter("username");
String password = request.getParameter("password");
String rememberMe = request.getParameter("rememberMe");
// 模拟数据库中的用户账号和密码
String dbUsername = "admin";
String dbPassword = "123456";
// 判断用户账号和密码是否正确
if (dbUsername.equals(username) && dbPassword.equals(password)) {
// 登录成功,判断是否保存登录状态
if ("true".equals(rememberMe)) {
// 如果用户选择了保存登录状态,则在 Cookie 中保存用户信息
Cookie usernameCookie = new Cookie("username", username);
Cookie passwordCookie = new Cookie("password", password);
usernameCookie.setMaxAge(3600 * 24 * 7); // 设置 Cookie 有效期为一周
passwordCookie.setMaxAge(3600 * 24 * 7);
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
}
// 跳转到欢迎页面
response.sendRedirect("welcome.jsp");
} else {
// 登录失败,返回登录页面并显示错误信息
out.println("登录错误!");
}
%>
```
在 `login.jsp` 中,我们首先获取用户提交的表单数据,然后模拟数据库中的用户账号和密码进行比对。如果账号和密码相符,则判断是否保存登录状态。如果用户选择了保存登录状态,则在 Cookie 中保存用户信息。最后,跳转到欢迎页面。如果账号和密码不正确,则返回登录页面并显示错误信息。
下面是 `welcome.jsp` 的代码实现:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 判断用户是否已经登录
boolean isLoggedIn = false;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName()) && "admin".equals(cookie.getValue())) {
isLoggedIn = true;
break;
}
}
}
// 如果用户已经登录,则显示欢迎信息,否则跳转到登录页面
if (isLoggedIn) {
out.println("欢迎您,admin!");
} else {
response.sendRedirect("login.jsp");
}
%>
```
在 `welcome.jsp` 中,我们首先判断用户是否已经登录,这里通过查找 Cookie 中是否存在保存的用户名为 "admin" 的 Cookie 来判断。如果用户已经登录,则显示欢迎信息,否则跳转到登录页面。
这就是一个简单的用户登录页面的 JSP 实现,您可以根据实际需求进行修改和扩展。