import ...
@WebServlet("/delete")
public class DeleteServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String id = req.getParameter("id");
//将id转换成Int类型
Integer intId = Integer.parseInt(id);
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
User user = null;
try {
//连接
connection = JdbcUtils.getConnection();
//预编译
String sql = "delete from student where id = ?";
preparedStatement = connection.prepareStatement(sql);
//填充
preparedStatement.setInt(1, intId);
//执行
preparedStatement.executeUpdate();
String sql2 = "select * from student";
preparedStatement = connection.prepareStatement(sql2);
resultSet = preparedStatement.executeQuery();
List<Student> studentList = new ArrayList<>();
while (resultSet.next()) {
Integer stuId = resultSet.getInt(1);
String scode = resultSet.getString(2);
String studentName = resultSet.getString(3);
String sex = resultSet.getString(4);
Integer grade = resultSet.getInt(5);
Student student = new Student(stuId, scode, studentName, sex, grade);
System.out.println(student);
studentList.add(student);
}
req.setAttribute("studentList", studentList);
//跳转到主页
req.getRequestDispatcher("index.jsp").forward(req, resp);
} catch (SQLException e) {
e.printStackTrace();
} finally {
//关闭
JdbcUtils.close(connection, preparedStatement, resultSet);
}
}
}
2-创建DeletServlet类响应网页发出的请求
-----HTML:<form action="delet" method="get">
-----Java:@Override protected void doGet(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException{}
----------delet:路径,get:行为
6-HttpServletRequest:客户端的请求,用来获取相关客户端信息,HttpServletResponse:服务器的响应,用来向客户端发送信息。可以获得request中的信息,或向response中设置信息。
10-getParameter:读取提交的表单中的值。
14-Connection connection = null :创建连接数据库的变量,初始值设为空。
15-PreparedStatement:SQL语句对象。
-----Statement接口:将SQL语句递给数据库。
16-ResultSet:封装数据库查询的结果集。
22-JdbcUtils:从配置文件中读取配置参数,然后创建连接对象。
27-setInt(int i,int x):将第i个参数设置为x。
-----第i个参数指的是上文sql语句里'?'的位序。
29-executeUpdate:执行sql语句。
35-executeQuery():执行select语句,把数据库查询结果放入ResultSet类的对象中。
37-ArrayList:可简单认为是动态数组。
38-ResultSet.next():将光标向后移一行,新的当前行有效,则返回true,如果不存在下一行,则返回false。
39-getInt():查询当前行中指定列的值。
51-setAtribute(attributename,attributevalue):attributename:属性名称,attributevalue:属性值。
53-getRequestDispatcher(String url):从客户端获取请求request,并传递到下一个jsp上。跳转页面。
-----forward方法:用来传递request中的参数。
56-printStackTrace:在命令行打印异常信息在程序中出错的位置及其原因。
59-close():断开连接。