Validate.java:处理注册请求的servlet。实现功能:检查接受到的姓名是否在数据库中已存在。
时间: 2024-05-06 22:16:14 浏览: 72
以下是一个简单的Validate.java 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 Validate extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 加载数据库驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
// 查询数据库中是否存在指定姓名的记录
ps = conn.prepareStatement("SELECT * FROM user WHERE name = ?");
ps.setString(1, name);
rs = ps.executeQuery();
// 如果查询结果不为空,则表示姓名已存在
if (rs.next()) {
out.println("<font color=\"red\">该姓名已存在,请重新输入!</font>");
} else {
out.println("<font color=\"green\">该姓名可以使用!</font>");
}
} catch (Exception 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();
}
}
}
}
```
当客户端发送一个POST请求到该Servlet时,它会从请求参数中获取姓名,并查询数据库中是否存在该姓名的记录。如果存在,则返回一个红色的文字提示;如果不存在,则返回一个绿色的文字提示。
阅读全文