javaweb登录代码
时间: 2024-11-19 17:15:53 浏览: 9
在Java Web中,实现登录功能的具体代码可能会因框架的不同而略有差异,这里以简单的Servlet为例说明:
```java
// User.java (实体类)
public class User {
private String username;
private String password;
// getters and setters...
}
// LoginServlet.java (Servlet)
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE username=?")) {
pstmt.setString(1, username);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
String dbPassword = rs.getString("hashed_password");
if (Utils.checkPassword(password, dbPassword)) { // 使用密码校验库检查密码
HttpSession session = request.getSession();
session.setAttribute("user", username);
response.sendRedirect("/protected"); // 登录成功,重定向到受保护页面
} else {
response.getWriter().println("Invalid password");
}
} else {
response.getWriter().println("User not found");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private boolean Utils.checkPassword(String providedPassword, String hashedPassword) {
// 这里省略了实际的密码比较逻辑,一般会使用加盐哈希库来比较
// 可能会用BCrypt等库进行密码验证
}
}
```
请注意,上述代码仅作为一个示例,实际应用中还需要处理异常、使用连接池、以及考虑密码的安全存储等问题。
阅读全文