目录
-
创建数据库表
首先需要创建一个用户表,用于存储用户的登录信息。可以使用以下SQL语句创建一个名为user的表:
sql复制代码
CREATE TABLE user ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL );
-
创建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;
}
}
-
创建Servlet
创建一个名为LoginServlet的Servlet,用于处理用户的登录请求。代码如下:
java复制代码
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");
User user = new User();
user.setUsername(username);
user.setPassword(password);
UserDao userDao = new UserDao();
boolean result = userDao.login(user);
if (result) {
HttpSession session = request.getSession();
session.setAttribute("username", username);
response.sendRedirect("welcome.jsp");
} else {
response.sendRedirect("login.jsp?error=1");
}
}
}
-
创建Dao
创建一个名为UserDao的Dao,用于处理用户的登录验证。代码如下:
java复制代码
public class UserDao {
public boolean login(User user) {
boolean result = false;
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
PreparedStatement ps = conn.prepareStatement("SELECT * FROM user WHERE username=? AND password=?");
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
ResultSet rs = ps.executeQuery();
if (rs.next()) {
result = true;
}
rs.close();
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
-
创建JSP页面
创建一个名为login.jsp的JSP页面,用于显示登录表单。代码如下:
html复制代码
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<% if (request.getParameter("error") != null) { %>
<p style="color: red;">Invalid username or password.</p>
<% } %>
<form method="post" action="LoginServlet">
<label>Username:</label>
<input type="text" name="username" required><br>
<label>Password:</label>
<input type="password" name="password" required><br>
<input type="submit" value="Login">
</form>
</body>
</html>
创建一个名为welcome.jsp的JSP页面,用于显示欢迎信息。代码如下:
html复制代码
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome <%= session.getAttribute("username") %>!</h1>
<a href="LogoutServlet">Logout</a>
</body>
</html>
-
配置web.xml
在web.xml文件中配置Servlet和JSP页面的映射关系。代码如下:
xml复制代码
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.example.LoginServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>LogoutServlet</servlet-name>
<servlet-class>com.example.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LogoutServlet</servlet-name>
<url-pattern>/LogoutServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
-
创建LogoutServlet
创建一个名为LogoutServlet的Servlet,用于处理用户的注销请求。代码如下:
java复制代码
public class LogoutServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.invalidate();
response.sendRedirect("login.jsp");
}
}
以上就是使用Jsp,Servlet,JavaBean实现用户登录的详细过程和代码。