javaweb简易登录功能
时间: 2023-07-12 11:48:54 浏览: 23
好的,我可以为你介绍一下 JavaWeb 简易登录功能的实现。
首先,我们需要创建一个登录页面,一般使用 HTML 和 CSS 来实现。在登录页面中,我们需要提供用户名和密码的输入框,并提供一个提交按钮。用户在输入用户名和密码后,点击提交按钮,将数据发送到后台进行验证。
接下来,我们需要创建一个 Servlet 来处理登录请求。在 Servlet 中,我们可以获取用户提交的数据,然后进行验证。如果用户名和密码正确,我们可以将用户信息存储到 Session 中,表示用户已经登录成功。如果用户名和密码错误,则返回登录页面,并提示用户输入错误信息。
下面是一个简单的示例代码:
```java
@WebServlet("/login")
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");
if(username.equals("admin") && password.equals("123456")) {
HttpSession session = request.getSession();
session.setAttribute("username", username);
response.sendRedirect("welcome.jsp");
} else {
response.sendRedirect("login.jsp?msg=error");
}
}
}
```
在上面的代码中,我们首先获取用户提交的用户名和密码,然后进行验证。如果验证通过,我们将用户信息存储到 Session 中,并跳转到欢迎页面。如果验证失败,我们将用户重定向到登录页面,并在 URL 中添加一个错误参数。
希望这个简单的示例可以帮助你了解 JavaWeb 简易登录功能的实现。
相关推荐






这里提供一个简单的注册登录功能的示例代码,使用JavaWeb和MySQL实现:
1. 创建数据库表
首先创建一个名为“user”的MySQL数据库表,包含以下字段:
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(50) NOT NULL,
password varchar(50) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY username_UNIQUE (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 创建JavaBean类
创建一个名为“User”的JavaBean类,包含以下属性和方法:
java
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3. 编写DAO层代码
创建一个名为“UserDAO”的类,用于操作数据库。包含以下方法:
java
public class UserDAO {
// 数据库连接信息
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/test";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
// 获取数据库连接
public Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName(DRIVER);
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
// 关闭数据库连接
public void closeConnection(Connection conn, Statement stmt, ResultSet rs) throws SQLException {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
// 根据用户名查询用户信息
public User getUserByUsername(String username) throws SQLException, ClassNotFoundException {
User user = null;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = getConnection();
stmt = conn.prepareStatement("SELECT * FROM user WHERE username = ?");
stmt.setString(1, username);
rs = stmt.executeQuery();
if (rs.next()) {
user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
}
} finally {
closeConnection(conn, stmt, rs);
}
return user;
}
// 添加用户信息
public void addUser(User user) throws SQLException, ClassNotFoundException {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = getConnection();
stmt = conn.prepareStatement("INSERT INTO user (username, password) VALUES (?, ?)");
stmt.setString(1, user.getUsername());
stmt.setString(2, user.getPassword());
stmt.executeUpdate();
} finally {
closeConnection(conn, stmt, null);
}
}
}
4. 编写Servlet代码
创建一个名为“RegisterServlet”的Servlet类,用于处理用户注册请求。包含以下代码:
java
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserDAO dao = new UserDAO();
try {
// 判断用户名是否已存在
if (dao.getUserByUsername(username) != null) {
request.setAttribute("message", "用户名已存在!");
request.getRequestDispatcher("/register.jsp").forward(request, response);
} else {
// 添加用户信息
User user = new User();
user.setUsername(username);
user.setPassword(password);
dao.addUser(user);
request.setAttribute("message", "注册成功!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
request.setAttribute("message", "注册失败,请稍后重试!");
request.getRequestDispatcher("/register.jsp").forward(request, response);
}
}
}
创建一个名为“LoginServlet”的Servlet类,用于处理用户登录请求。包含以下代码:
java
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserDAO dao = new UserDAO();
try {
// 根据用户名获取用户信息
User user = dao.getUserByUsername(username);
if (user == null) {
request.setAttribute("message", "用户名不存在!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
} else if (!user.getPassword().equals(password)) {
request.setAttribute("message", "密码错误!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
} else {
request.getSession().setAttribute("user", user);
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
request.setAttribute("message", "登录失败,请稍后重试!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
}
5. 编写JSP页面
创建一个名为“register.jsp”的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>
用户注册
<% String message = request.getAttribute("message") == null ? "" : request.getAttribute("message").toString(); %>
<% if (!message.equals("")) { %>
<%= message %>
<% } %>
<form action="register" method="post">
用户名:<input type="text" name="username" required>
密码:<input type="password" name="password" required>
<input type="submit" value="注册">
</form>
已有账号?去登录
</body>
</html>
创建一个名为“login.jsp”的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>
用户登录
<% String message = request.getAttribute("message") == null ? "" : request.getAttribute("message").toString(); %>
<% if (!message.equals("")) { %>
<%= message %>
<% } %>
<form action="login" method="post">
用户名:<input type="text" name="username" required>
密码:<input type="password" name="password" required>
<input type="submit" value="登录">
</form>
没有账号?去注册
</body>
</html>
创建一个名为“index.jsp”的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>
欢迎 <%= ((User) session.getAttribute("user")).getUsername() %>
退出登录
</body>
</html>
6. 部署项目
将以上代码保存到对应的文件中,并将JavaBean类和DAO类的.class文件放到WEB-INF/classes目录下。将MySQL驱动文件放到WEB-INF/lib目录下。将所有文件打包成.war文件,并部署到Tomcat或其他JavaWeb服务器上。
7. 测试功能
访问http://localhost:8080/login.jsp,进行用户登录;访问http://localhost:8080/register.jsp,进行用户注册。如果用户名已存在,则注册失败;如果用户名不存在或密码错误,则登录失败;登录成功后跳转到http://localhost:8080/index.jsp页面,显示欢迎信息和退出登录按钮。点击退出登录按钮,退出登录并返回到登录页面。





