数据库登录检验servlet代码
时间: 2023-09-01 16:06:25 浏览: 42
以下是一个简单的数据库登录检验的Servlet代码示例:
```java
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// 数据库连接信息
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydb";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "password";
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取登录表单提交的用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
// 查询数据库
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
String sql = "SELECT * FROM user WHERE username=? AND password=?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
rs = stmt.executeQuery();
if (rs.next()) {
// 登录成功,跳转到主页
response.sendRedirect("home.jsp");
} else {
// 登录失败,返回错误信息
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<script>alert('用户名或密码错误!');history.back();</script>");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
// 处理异常,返回错误信息
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<script>alert('服务器发生异常,请稍后再试!');history.back();</script>");
} finally {
// 关闭数据库连接
try { rs.close(); } catch (Exception e) { }
try { stmt.close(); } catch (Exception e) { }
try { conn.close(); } catch (Exception e) { }
}
}
}
```
这个Servlet接收一个POST请求,从请求参数中获取用户名和密码,然后查询数据库,如果查询到了匹配的用户,则跳转到主页,否则返回一个JavaScript弹窗提示用户用户名或密码错误。需要注意的是,这个示例代码并没有使用加密算法对密码进行加密,实际应用中应该对密码进行加密存储,以提高安全性。