web获取表单输入的用户名密码,判断密码用户名是否正确(直接在程序中设定用户名密码),正确,将用户名写入session对象并跳转到index.jsp,否则跳转到登录界面
时间: 2024-02-18 17:01:08 浏览: 30
好的,这是一个简单的用户认证流程,可以使用Java Servlet和JSP来实现。以下是一个简单的示例代码:
1. 创建一个login.jsp页面,包含一个表单,用户输入用户名和密码,提交表单到一个Servlet:
```html
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h1>Login Page</h1>
<form action="login" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
```
2. 创建一个LoginServlet,处理表单提交,验证用户名和密码,如果正确,将用户名写入session对象并重定向到index.jsp,否则重定向回登录页面:
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// 在这里设定正确的用户名和密码
private static final String USERNAME = "admin";
private static final String PASSWORD = "admin123";
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
// 验证用户名和密码
if (USERNAME.equals(username) && PASSWORD.equals(password)) {
// 将用户名写入session对象
HttpSession session = request.getSession();
session.setAttribute("username", username);
// 重定向到index.jsp
response.sendRedirect("index.jsp");
} else {
// 用户名或密码错误,重定向回登录页面
response.sendRedirect("login.jsp");
}
}
}
```
3. 创建一个index.jsp页面,用于显示用户已登录的信息:
```html
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<h1>Welcome <%= session.getAttribute("username") %>!</h1>
<p>You have successfully logged in.</p>
<a href="logout">Logout</a>
</body>
</html>
```
4. 创建一个LogoutServlet,处理注销请求,从session对象中删除用户名,然后重定向回登录页面:
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 从session对象中删除用户名
HttpSession session = request.getSession();
session.removeAttribute("username");
// 重定向回登录页面
response.sendRedirect("login.jsp");
}
}
```
以上就是一个简单的用户认证流程的实现。当用户在登录页面输入正确的用户名和密码后,会被重定向到index.jsp页面,其中显示了用户已登录的信息和一个注销链接。当用户点击注销链接时,会被重定向回登录页面,并且session对象中的用户名被删除。