javaweb连接数据库实现登录注册功能的完整的Java代码
时间: 2024-02-16 22:59:37 浏览: 53
当然,我很乐意为您提供JavaWeb连接数据库实现登录注册功能的完整Java代码。
首先,我们需要建立一个数据库,例如MySQL,创建一个名为"user"的表,其中包含"id"、"username"、"password"、"email"四个字段。然后,我们需要在JavaWeb项目中建立以下文件:
1. index.jsp:主页,包含登录和注册功能的链接。
2. login.jsp:登录页面,包含用户名和密码输入框。
3. register.jsp:注册页面,包含用户名、密码、确认密码、邮箱输入框。
4. User.java:用户实体类,包含id、username、password、email四个属性。
5. UserDao.java:用户数据访问对象,实现对数据库的增删改查等操作。
6. UserServlet.java:用户Servlet,处理与用户相关的请求。
下面是完整的Java代码:
User.java:
```java
public class User {
private int id;
private String username;
private String password;
private String email;
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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
```
UserDao.java:
```java
public class UserDao {
private Connection conn;
private PreparedStatement pstmt;
public UserDao() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
} catch (Exception e) {
e.printStackTrace();
}
}
public int addUser(User user) {
int result = 0;
try {
pstmt = conn.prepareStatement("insert into user(username, password, email) values (?, ?, ?)");
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
pstmt.setString(3, user.getEmail());
result = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
close();
}
return result;
}
public User getUserByUsernameAndPassword(String username, String password) {
User user = null;
try {
pstmt = conn.prepareStatement("select * from user where username = ? and password = ?");
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close();
}
return user;
}
private void close() {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
UserServlet.java:
```java
public class UserServlet extends HttpServlet {
private UserDao userDao = new UserDao();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if ("login".equals(action)) {
login(request, response);
} else if ("register".equals(action)) {
register(request, response);
}
}
private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = userDao.getUserByUsernameAndPassword(username, password);
if (user != null) {
request.getSession().setAttribute("user", user);
response.sendRedirect("index.jsp");
} else {
request.setAttribute("message", "Invalid username or password");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
private void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String confirmPassword = request.getParameter("confirmPassword");
String email = request.getParameter("email");
if (!password.equals(confirmPassword)) {
request.setAttribute("message", "Passwords do not match");
request.getRequestDispatcher("register.jsp").forward(request, response);
} else {
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setEmail(email);
userDao.addUser(user);
response.sendRedirect("login.jsp");
}
}
}
```
index.jsp:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaWeb Login and Register Example</title>
</head>
<body>
<h1>Welcome to JavaWeb Login and Register Example</h1>
<p>
<a href="login.jsp">Login</a>
<a href="register.jsp">Register</a>
</p>
</body>
</html>
```
login.jsp:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form method="post" action="UserServlet">
<input type="hidden" name="action" value="login">
<p>
<label>Username:</label>
<input type="text" name="username">
</p>
<p>
<label>Password:</label>
<input type="password" name="password">
</p>
<p>
<input type="submit" value="Login">
</p>
<p style="color: red;">
${message}
</p>
</form>
</body>
</html>
```
register.jsp:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Register</title>
</head>
<body>
<h1>Register</h1>
<form method="post" action="UserServlet">
<input type="hidden" name="action" value="register">
<p>
<label>Username:</label>
<input type="text" name="username">
</p>
<p>
<label>Password:</label>
<input type="password" name="password">
</p>
<p>
<label>Confirm Password:</label>
<input type="password" name="confirmPassword">
</p>
<p>
<label>Email:</label>
<input type="text" name="email">
</p>
<p>
<input type="submit" value="Register">
</p>
<p style="color: red;">
${message}
</p>
</form>
</body>
</html>
```
以上就是JavaWeb连接数据库实现登录注册功能的完整Java代码,希望对您有所帮助。