一文带你吃透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日

相关文章

  • 一文教你如何使用原生的Feign

    一文教你如何使用原生的Feign 简介 Feign 是一个基于Java的HTTP客户端,用于将HTTP请求映射到界面上,并将调用者与远程服务进行解耦。Feign通过使用注解支持请求/响应编码、注释传播、错误处理等功能。 使用原生的Feign的步骤 步骤一:引入依赖 首先,我们需要在项目中引入feign相关的依赖,以下是一些常用的依赖: <depende…

    Java 2023年5月20日
    00
  • Java序列化常见实现方法代码实例

    Java序列化常见实现方法代码实例 Java序列化是将Java对象转化为字节流的过程,方便进行Java对象在网络中的传输或者持久化储存。本文将介绍Java序列化的常见实现方法以及代码实例。 Java序列化实现方法 Serializable接口 Java的原生序列化实现采用Serializable接口,它是Java提供的一个标记接口,将一个类实现Seriali…

    Java 2023年5月23日
    00
  • 如何在Springboot实现拦截器功能

    在Spring Boot中,我们可以通过实现拦截器来实现对请求的拦截和处理。本文将详细讲解如何在Spring Boot中实现拦截器功能,并提供两个示例。 1. 创建拦截器 我们可以通过实现HandlerInterceptor接口来创建拦截器。以下是创建拦截器的基本流程: 创建一个拦截器类。 public class MyInterceptor impleme…

    Java 2023年5月15日
    00
  • JavaScript将Table导出到Excel实现思路及代码

    下面我将详细讲解JavaScript将Table导出到Excel的实现思路及代码,内容如下: 实现思路 获取要导出的表格元素,并获取其中的数据。 将数据转换为Excel支持的格式。 创建一个Blob对象,将Excel格式的数据放入其中。 创建一个下载链接,将Blob对象作为链接的数据,设置文件名为Excel文件名。 自动模拟点击链接下载文件。 代码实现 fu…

    Java 2023年6月16日
    00
  • SpringBoot后端进行数据校验JSR303的使用详解

    下面是关于“SpringBoot后端进行数据校验JSR303的使用详解”的完整攻略。 一、什么是JSR303校验 JSR303是Java Bean Validation规范的一部分,用于数据验证,可以用于校验数据的正确性,比如校验输入的参数是否符合要求等。在SpringBoot应用中,可以方便地使用JSR303进行数据校验。 二、如何在SpringBoot中…

    Java 2023年5月20日
    00
  • Java8中Stream的详细使用方法大全

    Java8中Stream的详细使用方法大全 本文将详细介绍Java8中Stream的使用方法,包括Stream的定义、Stream常用操作、中间操作和终止操作等。 一、Stream的定义 Stream是Java 8中的新特性,它是对数据集合进行流式操作的API。使用Stream可以让我们更方便地对集合进行操作,提高代码的可读性和代码的简洁性。 二、Strea…

    Java 2023年5月26日
    00
  • java lambda表达式用法总结

    Java Lambda表达式用法总结 什么是Lambda表达式 Lambda表达式是Java 8中引入的一种新特性,可以用于创建一个匿名函数,从而大大简化了代码的编写。它可以看做是一种语法糖,用于简化某些类型的方法的声明。 在Java中,Lambda表达式由两部分组成: 参数列表:可以包含0个或多个参数,多个参数用逗号隔开。 代码块:可以是任意的Java代码…

    Java 2023年5月26日
    00
  • 基于Java SpringBoot的前后端分离信息管理系统的设计和实现

    基于Java SpringBoot的前后端分离信息管理系统的设计和实现攻略 一、背景介绍 随着互联网时代的到来,信息管理成为重要的需求。而采用前端和后端分离的开发方式可以提高开发效率和减轻后端压力。本文将介绍基于Java SpringBoot的前后端分离信息管理系统的设计和实现攻略。 二、技术栈 后端:Java SpringBoot、MyBatis、Swag…

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