一文带你吃透JSP增删改查实战案例详细解读

一文带你吃透JSP增删改查实战案例详细解读

概述

本文将介绍JSP的增删改查实战案例,包含如下内容:

  1. 数据库的创建与数据表的设计
  2. JSP页面的开发
  3. Servlet的编写
  4. 实现增删改查功能

数据库的创建与数据表的设计

在本案例中,我们将以MySQL数据库为例进行数据库的创建和数据表的设计,具体步骤如下:

创建数据库

打开MySQL客户端,输入以下命令创建一个名为“hospital”的数据库:

CREATE DATABASE hospital;

创建数据表

在“hospital”数据库中创建一个名为“patient”的数据表,包含以下字段:

  • id:患者ID,类型为int,主键
  • name:患者姓名,类型为varchar(20)
  • age:患者年龄,类型为int
  • gender:患者性别,类型为varchar(4)
  • department:患者所在科室,类型为varchar(20)

以下是创建数据表的SQL语句:

USE hospital;
CREATE TABLE patient (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  age INT NOT NULL,
  gender VARCHAR(4) NOT NULL,
  department VARCHAR(20) NOT NULL
);

JSP页面的开发

在本案例中,我们将开发四个JSP页面,分别对应增删改查四个功能。

页面1:新增患者信息

该页面包含一个表单,用户可以在表单中输入患者信息,点击“提交”按钮后将信息插入数据库中。

以下是页面1的代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新增患者信息</title>
</head>
<body>
    <h1>新增患者信息</h1>
    <form action="addPatient" method="post">
        <p><label>姓名:<input type="text" name="name"></label></p>
        <p><label>年龄:<input type="text" name="age"></label></p>
        <p><label>性别:<input type="text" name="gender"></label></p>
        <p><label>科室:<input type="text" name="department"></label></p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>

页面2:查看患者列表

该页面包含一个表格,显示数据库中所有患者的信息。

以下是页面2的代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>患者列表</title>
</head>
<body>
    <h1>患者列表</h1>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
                <th>科室</th>
            </tr>
        </thead>
        <tbody>
            <% 
                List<Patient> patients = (List<Patient>)request.getAttribute("patients");
                for (Patient patient : patients) {
            %>
            <tr>
                <td><%=patient.getId()%></td>
                <td><%=patient.getName()%></td>
                <td><%=patient.getAge()%></td>
                <td><%=patient.getGender()%></td>
                <td><%=patient.getDepartment()%></td>
            </tr>
            <% } %>
        </tbody>
    </table>
</body>
</html>

页面3:修改患者信息

该页面包含一个表单,用户可以在表单中修改患者信息,点击“提交”按钮后将信息更新到数据库中。

以下是页面3的代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改患者信息</title>
</head>
<body>
    <h1>修改患者信息</h1>
    <form action="updatePatient" method="post">
        <input type="hidden" name="id" value="<%=patient.getId()%>">
        <p><label>姓名:<input type="text" name="name" value="<%=patient.getName()%>"></label></p>
        <p><label>年龄:<input type="text" name="age" value="<%=patient.getAge()%>"></label></p>
        <p><label>性别:<input type="text" name="gender" value="<%=patient.getGender()%>"></label></p>
        <p><label>科室:<input type="text" name="department" value="<%=patient.getDepartment()%>"></label></p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>

页面4:删除患者信息

该页面包含一个表单,用户可以在表单中输入患者ID,点击“提交”按钮后将该患者信息从数据库中删除。

以下是页面4的代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>删除患者信息</title>
</head>
<body>
    <h1>删除患者信息</h1>
    <form action="deletePatient" method="post">
        <p><label>患者ID:<input type="text" name="id"></label></p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>

Servlet的编写

在本案例中,我们将编写一个Servlet类,通过该类实现对数据库的增删改查操作。

以下是Servlet类的主要代码:

@WebServlet(name = "PatientServlet", urlPatterns = {"/listPatients", "/addPatient", "/getPatient", "/updatePatient", "/deletePatient"})
public class PatientServlet extends HttpServlet {
    private PatientDAO patientDAO;

    @Override
    public void init() throws ServletException {
        super.init();
        patientDAO = new PatientDAOImpl();
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String servletPath = request.getServletPath();
        if ("/addPatient".equals(servletPath)) {
            doAddPatient(request, response);
        } else if ("/updatePatient".equals(servletPath)) {
            doUpdatePatient(request, response);
        } else if ("/deletePatient".equals(servletPath)) {
            doDeletePatient(request, response);
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String servletPath = request.getServletPath();
        if ("/listPatients".equals(servletPath)) {
            doListPatients(request, response);
        } else if ("/getPatient".equals(servletPath)) {
            doGetPatient(request, response);
        }
    }

    private void doAddPatient(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        int age = Integer.parseInt(request.getParameter("age"));
        String gender = request.getParameter("gender");
        String department = request.getParameter("department");
        Patient patient = new Patient(name, age, gender, department);
        patientDAO.add(patient);
        response.sendRedirect(request.getContextPath() + "/listPatients");
    }

    // 其余方法省略
}

实现增删改查功能

通过以上代码,我们已经可以实现对数据库的增删改操作了。最后的步骤是将上述四个JSP页面进行路由与Servlet类绑定,使得点击对应的按钮能够访问到对应的Servlet方法,并且将查询到的结果渲染到JSP页面上。

其中,查询操作需要实现分页功能,这里给出一个简单的实现示例:

private void doListPatients(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
    int size = 10;
    List<Patient> patients = patientDAO.list((page - 1) * size, size);
    request.setAttribute("patients", patients);
    request.getRequestDispatcher("/listPatients.jsp").forward(request, response);
}

至此,JSP的增删改查实战案例就介绍完了,以上是一个简单的示例,供大家学习参考。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你吃透JSP增删改查实战案例详细解读 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • Java读取文件的简单实现方法

    下面我会详细讲解“Java读取文件的简单实现方法”的完整攻略。 什么是Java读取文件? Java读取文件是指通过Java程序去读取本地或服务器上的文件,可以实现从文件中获取数据、修改数据等功能。在Java中,可以使用多种方法来读取文件,比如使用字节流或字符流等。 如何使用Java读取文件? 使用字节流读取文件 字节流可以读取任何类型的文件,比如文本文件、图…

    Java 2023年5月19日
    00
  • java创建一个类实现读取一个文件中的每一行显示出来

    下面是详细的攻略: 创建一个Java类 首先,要在Java中创建一个类来实现读取文件中每一行并显示出来。在这个类中,我们需要使用Java的文件读取API以及循环来逐行读取文件中的内容并将其显示出来。 public class FileReadExample { public static void main(String[] args) { try { //…

    Java 2023年5月19日
    00
  • SpringBoot中的五种对静态资源的映射规则的实现

    SpringBoot中的五种对静态资源的映射规则的实现 在SpringBoot中,我们可以使用五种不同的方式来映射静态资源,包括: 默认的映射规则 自定义的映射规则 使用WebMvcConfigurerAdapter来配置映射规则 使用@Configuration注解来配置映射规则 使用@EnableWebMvc注解来配置映射规则 下面将详细介绍这五种映射规…

    Java 2023年5月18日
    00
  • java 数值类型分秒时间格式化的实例代码

    让我来为你详细讲解一下“Java数值类型分秒时间格式化的实例代码”的攻略。 一、需求分析 在进行实例编写前,我们先来分析一下需求: 我们需要实现一个功能能够将时间以及数值类型的分秒转化成如下格式:mm:ss,例如:将80秒转化成01:20,将150秒转化成02:30等。 二、实现思路 基于上面的需求,我们大概可以想到以下的实现思路: 通过对秒数的模运算来计算…

    Java 2023年5月20日
    00
  • JSP制作简单登录界面实例

    下面是在JSP中制作简单登录界面的完整攻略。 步骤1:创建JSP页面 首先,创建一个简单的JSP页面来显示登录表单。在该页面中添加必要的元素,如用户名、密码、提交按钮等。 示例代码: <!DOCTYPE html> <html> <head> <title>Login Page</title> &l…

    Java 2023年6月15日
    00
  • 进制转换基础

    进制转换基础 1. 什么是进制? 进制是一种数学表示法,指定了一组用于表示数值的符号或数字。在日常计算中,我们通常使用的是十进制(或者说是“阿拉伯数字”),即使用0到9这10个数字进行计数。但是在计算机中,为了存储和处理数据方便,使用的是二进制,即使用0和1这两个数字进行计数。 2. 进制转换方法 2.1 十进制转其他进制 十进制转其他进制的方法是:把十进制…

    Java 2023年5月19日
    00
  • Java实现解析zip压缩包并获取文件内容

    针对“Java实现解析zip压缩包并获取文件内容”,可以按照以下步骤进行: 导入java.util.zip包: 使用ZipFile类需要导入java.util.zip下的所有类。 import java.util.zip.*; 打开zip文件: 使用ZipFile类,可以打开zip压缩文件。 ZipFile zip = new ZipFile("t…

    Java 2023年5月19日
    00
  • Java Servlet输出中文乱码问题解决方案

    针对“Java Servlet输出中文乱码问题解决方案”,我来给你一个完整的攻略。具体步骤如下: 1. 设置请求和响应的编码方式 在Servlet中,我们需要设置请求和响应的编码方式为utf-8,即: request.setCharacterEncoding("utf-8"); // 设置请求编码方式为utf-8 response.set…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部