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

yizhihongxing

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

相关文章

  • 关于SpringBoot整合redis使用Lettuce客户端超时问题

    好的。关于SpringBoot整合redis使用Lettuce客户端超时问题,需要注意以下几个方面:Lettuce版本问题、超时时间设置、连接池配置等。下面是一个详细的攻略: 1. 确定Lettuce版本 在使用SpringBoot整合redis时,我们需要确认使用的Lettuce版本是否与SpringBoot版本兼容。Lettuce有两个主版本:4.x和5…

    Java 2023年6月3日
    00
  • java实现简单的英文文本单词翻译器功能示例

    Java实现简单的英文文本单词翻译器功能示例攻略 需求分析 我们需要实现一个简单的英文文本单词翻译器,实现以下功能: 输入一段英文文本。 选择想要翻译的单词。 选择翻译的目标语言。 输出翻译后的结果。 技术方案 我们将采用以下技术方案来实现上述需求: 采用Java编程语言。 通过读取API或者自定义语料库,获取单词的翻译。 采用Java图形用户界面(GUI)…

    Java 2023年5月19日
    00
  • SpringBoot Application核心注解详解

    SpringBoot Application核心注解详解 Spring Boot是一个流行的Java框架,可以帮助开发人员更加高效地构建和部署应用程序。在Spring Boot中,@SpringBootApplication是一个核心注解,用于标记Spring Boot应用程序的入口点。本文中,我们将详细讲解@SpringBootApplication注解的…

    Java 2023年5月15日
    00
  • 如何使用安全管理器?

    如何使用安全管理器 安全管理器是用于管理应用程序的安全性的工具。它可以控制应用程序的访问权限,确保只有经过授权的用户可以访问应用程序的敏感信息。下面介绍如何使用安全管理器。 步骤1:创建安全策略文件 要使用安全管理器,首先需要创建安全策略文件。安全策略文件中定义了应用程序的安全规则和策略。在安全策略文件中,我们可以定义如下规则: 允许/拒绝特定用户或用户组访…

    Java 2023年5月11日
    00
  • 一文了解Java中record和lombok的使用对比

    一文了解Java中record和lombok的使用对比 record 和 Lombok 都是 Java 中提高开发效率的工具。它们的相似点是都可以通过简化代码的方式减少 Java 的样板代码。但它们基于的思想有所不同,record 是 Java 语言的一部分,而 Lombok 是一个库。在这篇文章中,我们将探讨这两种工具的不同之处和适用情况。 Record …

    Java 2023年5月26日
    00
  • Java实现简单字符生成器代码例子

    下面我就来详细讲解Java实现简单字符生成器代码的攻略。 步骤一:了解需求 在开始编写代码之前,首先要明确这个代码的需求。我们需要编写一个简单的字符生成器,根据指定的规则生成一定数量的字符并输出。 步骤二:编写基础代码 在开始编写功能代码之前,我们要先编写一些基础代码,如获取用户输入的信息、生成指定范围内的随机数等。下面是代码示例: import java.…

    Java 2023年5月18日
    00
  • Filter、Servlet、Listener的学习_动力节点Java学院整理

    Filter、Servlet、Listener的学习攻略 一、什么是Filter Filter又称过滤器,是Java Web中一种很重要的组件。Filter的主要作用是在 Servlet容器的请求与资源(例如 Servlet、JSP等)之间加一个拦截器,对请求进行预处理,也可以对响应做出后处理。 Filter是Servlet API中最实用的技术之一,它非常…

    Java 2023年6月15日
    00
  • 计算机网络面试问题集锦(附答案)

    以下是针对“计算机网络面试问题集锦(附答案)”的完整攻略。 1. 了解面试题目类型及基本知识点 首先,我们需要了解计算机网络面试题目的种类和计算机网络基本知识点。可能会包括以下几种类型的问题: 基础概念(如OSI七层模型,TCP/IP协议族等) 网络协议(如UDP,TCP,HTTP等的原理和应用场景) 网络编程(如socket编程,HTTP服务器搭建等) 网…

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