JavaWeb course design project practice (09) - project coding practice 6


Copyright Notice

  • The original author of this article: Brother Gu’s younger brother
  • Author blog address: http://blog.csdn.net/lfdfhl

insert image description here
In this section of the tutorial, we implement the function of modifying students. When you click Modify on the student list page, you will first query the detailed information of the student based on the id, and then display the information on the modification page. After completing the modification of student information, click Modify to save the latest student information to the database and return to the student list. From the above analysis, we can see that the modification function includes the following steps:

  • 1. Query student information based on id
  • 2. Display student information on the modification page
  • 3. Modify student information on the modification page
  • 4. Save the latest student information to the database
  • 5. Jump to the student list and refresh

QueryStudentServlet

Please create QueryStudentServlet under the servlet package, the code is as follows:

package com.cn.servlet;

import com.cn.util.C3P0Utils;
import com.cn.bean.Student;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
 * 本文作者:谷哥的小弟
 * 博客地址:http://blog.csdn.net/lfdfhl
 */

@WebServlet(name = "QueryStudentServlet", urlPatterns = "/QueryStudentServlet")
public class QueryStudentServlet extends HttpServlet {
    
    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        int sid = Integer.parseInt(request.getParameter("id"));
        Student student = null;
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
    
    
            connection = C3P0Utils.getConnection();
            String sql = "SELECT * FROM student WHERE id =?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1, sid);
            preparedStatement.executeQuery();
            resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {
    
    
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                int age = resultSet.getInt("age");
                String gender = resultSet.getString("gender");
                String hobby = resultSet.getString("hobby");
                student = new Student(id, name, age, gender, hobby);
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        } finally {
    
    
            C3P0Utils.release(connection, preparedStatement, resultSet);
        }
        request.setAttribute("student", student);
        RequestDispatcher requestDispatcher = request.getRequestDispatcher("/studentUpdate.jsp");
        requestDispatcher.forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        doGet(request, response);
    }
}

The diagram is as follows:

insert image description here

Modify Student Page

QueryStudentServlet will jump to the modify student page after querying the student information, as shown in the figure below:
insert image description here

Please create studentUpdate.jsp under the web folder, the code is as follows:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<head>
    <title>更新学生</title>
    <style type="text/css">
        #updateForm {
      
      
            text-align: center;
            margin-top: 5%;
        }
        tr{
      
      
            height: 30px;
        }
    </style>
    <script type="text/javascript">
        function back() {
      
      
            window.location.href = "${pageContext.request.contextPath}/ShowStudentServlet";
        }
    </script>
</head>
<body bgcolor="#e2e6c2">
<div id="updateForm">
    <h3>学生信息</h3>
    <input type="button" name="back" value="返回" onclick="back()"/>
    <br/><br/>
    <form action="${pageContext.request.contextPath}/UpdateStudentServlet" method="post">
        <table style="margin: auto;">
            <tr>
                <td>学号</td>
                <td><input type="text" name="id" value="${student.id}" readOnly="true"/></td>
            </tr>
            <tr>
                <td>姓名</td>
                <td><input type="text" name="name" value="${student.name}"/></td>
            </tr>
            <tr>
                <td> 年龄 </td>
                <td><input type="text" name="age" value="${student.age}"/></td>
            </tr>
            <tr>
                <td> 性别</td>
                <td  style="display: flex;align-items: center;">
                    <input type="radio" style="width:10%" name="gender" value="男" ${student.gender=="男"?"checked":""} />男
                    <input type="radio" style="width:10%" name="gender" value="女" ${student.gender=="女"?"checked":""}/>女</td>
            </tr>
            <tr>
                <td>爱好 </td>
                <td><input type="text" name="hobby" value="${student.hobby}"/></td>
            </tr>
        </table>
        <input type="submit" value="修改">
        <input type="reset" value="重置">
    </form>
</div>
</body>
</html>

UpdateStudentServlet

After filling in the student information on the studentUpdate.jsp page, click Modify to save the latest student data to the database. Please create UpdateStudentServlet under the servlet package, the code is as follows:

package com.cn.servlet;

import com.cn.util.C3P0Utils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
/**
 * 本文作者:谷哥的小弟
 * 博客地址:http://blog.csdn.net/lfdfhl
 */

@WebServlet(name = "UpdateStudentServlet", urlPatterns = "/UpdateStudentServlet")
public class UpdateStudentServlet extends HttpServlet {
    
    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        int id = Integer.parseInt(request.getParameter("id"));
        String name = request.getParameter("name");
        int age = Integer.parseInt(request.getParameter("age"));
        String gender = request.getParameter("gender");
        String hobby = request.getParameter("hobby");
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
    
    
            connection = C3P0Utils.getConnection();
            String sql = "update student set name=?,age=?,gender=?,hobby=? where id=?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, name);
            preparedStatement.setInt(2, age);
            preparedStatement.setString(3, gender);
            preparedStatement.setString(4, hobby);
            preparedStatement.setInt(5, id);
            int result = preparedStatement.executeUpdate();
            if (result > 0){
    
    
                System.out.println("success");
            } else{
    
    
                System.out.println("error");
            }
        } catch (Exception e) {
    
    
            e.printStackTrace();
        } finally {
    
    
            C3P0Utils.release(connection, preparedStatement, null);
        }
        String contextPath = request.getContextPath();
        response.sendRedirect(contextPath+"/ShowStudentServlet");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        doGet(request, response);
    }
}

The diagram is as follows:
insert image description here

Guess you like

Origin blog.csdn.net/lfdfhl/article/details/131708866