在idea中JSP+Servlet + JDBC+MySQL 注册和登录
时间: 2023-09-14 17:08:47 浏览: 65
首先,你需要在IDEA中创建一个Web项目,并添加Tomcat服务器。
接下来,你需要创建一个JSP页面来实现用户注册和登录的界面,例如:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<h1>用户登录</h1>
<form action="login" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
<hr>
<h1>用户注册</h1>
<form action="register" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
确认密码:<input type="password" name="password2"><br>
<input type="submit" value="注册">
</form>
</body>
</html>
```
然后,你需要创建一个Servlet来处理用户的注册和登录请求。在Servlet中,你需要连接MySQL数据库,并编写相应的SQL语句来实现用户信息的查询、插入和更新操作。
例如,在doPost方法中,你可以编写以下代码:
```java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getServletPath();
switch (action) {
case "/login":
String username = request.getParameter("username");
String password = request.getParameter("password");
boolean success = checkUser(username, password);
if (success) {
response.sendRedirect("welcome.jsp");
} else {
response.sendRedirect("login.jsp");
}
break;
case "/register":
String username2 = request.getParameter("username");
String password2 = request.getParameter("password");
String password3 = request.getParameter("password2");
if (!password2.equals(password3)) {
response.sendRedirect("register.jsp");
} else {
boolean success2 = addUser(username2, password2);
if (success2) {
response.sendRedirect("login.jsp");
} else {
response.sendRedirect("register.jsp");
}
}
break;
default:
response.sendRedirect("login.jsp");
break;
}
}
private boolean checkUser(String username, String password) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
boolean success = false;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
conn = DriverManager.getConnection(url, "root", "123456");
String sql = "select * from users where username=? and password=?";
ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
rs = ps.executeQuery();
if (rs.next()) {
success = true;
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return success;
}
private boolean addUser(String username, String password) {
Connection conn = null;
PreparedStatement ps = null;
boolean success = false;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
conn = DriverManager.getConnection(url, "root", "123456");
String sql = "insert into users(username,password) values(?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
int rows = ps.executeUpdate();
if (rows > 0) {
success = true;
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return success;
}
```
在以上代码中,checkUser方法用于检查用户的登录信息是否正确,如果正确,则重定向到欢迎页面;否则,则重定向到登录页面。addUser方法用于向数据库中插入新用户的信息,如果插入成功,则重定向到登录页面;否则,则重定向到注册页面。
最后,你需要配置web.xml文件,将Servlet和JSP页面进行映射,例如:
```xml
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.example.LoginServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>com.example.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>
```
这样,你就可以在IDEA中实现JSP+Servlet + JDBC+MySQL 注册和登录的功能了。