使用纯Servlet做一个单表的CRUD操作

这篇博客详细介绍了如何使用纯Servlet实现单表【部门】的增删改查功能。从创建数据库表和HTML页面开始,逐步讲解了每个功能的实现步骤,包括设置开发环境、编写Servlet、处理HTTP请求、连接数据库以及前端交互。整个流程覆盖了前端展示、用户交互、数据库操作等关键环节。
摘要由CSDN通过智能技术生成

使用纯粹的Servlet完成单表【对部门的】的增删改查操作。(B/S结构的。)

实现步骤

  • 第一步:准备一张数据库表。(sql脚本)

    # 部门表
    drop table if exists ndept;
    create table ndept(
    	deptno int primary key,
        dname varchar(255),
        loc varchar(255),
        principal varchar(255)
    );
    insert into dept(detno, dname, loc, principal) values(10, '销售部', '北京','张三');
    insert into dept(detno, dname, loc, principal) values(20, '研发部', '上海','李四');
    insert into dept(detno, dname, loc, principal) values(30, '技术部', '广州','王五');
    insert into dept(detno, dname, loc, principal) values(40, '媒体部', '深圳','赵六');
    commit;
    select * from ndept;
    
  • 第二步:准备一套HTML页面(项目原型)【前端开发工具使用HBuilder】

  • 把HTML页面准备好然后将HTML页面中的链接都能够跑通。(页面流转没问题。)

  • 应该设计的页面

    • 欢迎页面:index.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>欢迎使用本页面</title>
      </head>
      <body>
           <h1>欢迎使用本页面</h1>
           <a href="list.html">查看部门列表</a>
      </body>
      </html>
    • 列表页面:list.html(以列表页面为核心,展开其他操作。)

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>列表页面</title>
      </head>
      <body>
            <h1 align="center">部门列表</h1>
           <hr>
      <table border="1px" align="center" width="50%">
          <tr>
              <th>序号</th>
              <th>部门编号</th>
              <th>部门名字</th>
              <th>部门地址</th>
              <th>操作</th>
          </tr>
          <tr>
              <td>1</td>
              <td>10</td>
              <td>销售部</td>
              <td>北京</td>
              <td>
                  <a href="javascript:void(0)" onclick="window.confirm('确认删除该部门信息吗?')">删除部门</a>
                  <a href="edit.html">修改部门</a>
                  <a href="detail.html">查看详情</a>
              </td>
          </tr>
          <tr>
              <td>2</td>
              <td>20</td>
              <td>研发部</td>
              <td>上海</td>
              <td>
                  <a href="javascript:void(0)" onclick="window.confirm('确认删除该部门信息吗?')">删除部门</a>
                  <a href="edit.html">修改部门</a>
                  <a href="detail.html">查看详情</a>
              </td>
          </tr>
          <tr>
              <td>3</td>
              <td>30</td>
              <td>技术部</td>
              <td>广州</td>
              <td>
                  <a href="javascript:void(0)" onclick="window.confirm('确认删除该部门信息吗?')">删除部门</a>
                  <a href="edit.html">修改部门</a>
                  <a href="detail.html">查看详情</a>
              </td>
          </tr>
      </table>
            <hr>
             <a href="add.html">新增部门</a>
      </body>
      </html>
    • 新增页面:add.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>新增部门</title>
      </head>
      <body>
          <h1>新增部门</h1>
      <hr>
          <form action="list.html" method="post">
               部门编号<input type="text" name="deptno"><br>
               部门名字<input type="text" name="dname"><br>
               部门地址<input type="text" name="loc"><br>
              <input type="submit" value="保存">
          </form>
      </body>
      </html>
    • 修改页面:edit.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>修改部门</title>
      </head>
      <body>
           <h1>修改部门</h1>
      <hr >
           <form action="list.html" method="get">
                部门编号<input type="text" name="deptno" value="10" readonly /><br>
                部门名称<input type="text" name="dname" value="销售部"/><br>
                部门位置<input type="text" name="loc" value="北京"/><br>
               <!--以上的value应该设置为动态获取,除了编号不能做修改,设置为readonly只读-->
               <input type="submit" value="修改"/><br>
          </form>
      </body>
      </html>
    • 详情页面:detail.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>详情页面</title>
      </head>
      <body>
             <h1>部门详情</h1>
      <hr >
             部门编号:10 <br>
             部门名称:销售部<br>
             部门位置:北京<br>
             <!--以上的应该设置为动态获取-->
            <input type="button" value="返回" onclick="window.history.back()"/>
      </body>
      </html>

第三步:分析我们这个系统包括哪些功能

  • 什么叫做一个功能呢?

    • 只要 这个操作连接了数据库,就表示一个独立的功能。

  • 包括哪些功能

    • 查看部门列表

    • 新增部门

    • 删除部门

    • 查看部门详细信息

    • 跳转到修改页面

    • 修改部门

第四步:在IDEA当中搭建开发环境

  • 创建一个webapp(给这个webapp添加servlet-api.jar和jsp-api.jar到classpath当中。)

  • 向webapp中添加连接数据库的jar包(mysql驱动)

    • 必须在WEB-INF目录下新建lib目录,然后将mysql的驱动jar包拷贝到这个lib目录下。这个目录名必须叫做lib,全部小写的。(一定要注意位置,之前放错了位置,查了和测试半天才找出原因)。

      mysql-connector-java-8.0.27.jar
  • JDBC的工具类

    package com.dymolu.javaweb.oa.utils;
    
    import java.sql.*;
    import java.util.ResourceBundle;
    /**
     * JDBC的工具类
     */
    public class DBUtil {
        // 静态变量:在类加载时执行。并且是有顺序的。自上而下的顺序。
        // 属性资源文件绑定
        public static ResourceBundle bundle = ResourceBundle.getBundle("resources.jdbc");
        // 根据属性配置文件key获取value
        private static String driver = bundle.getString("driver");
        private static String url = bundle.getString("url");
        private static String user = bundle.getString("user");
        private static String password = bundle.getString("password");
    
        static {
            // 注册驱动(注册驱动只需要注册一次,放在静态代码块当中。DBUtil类加载的时候执行。)
            try {
            //连接数据库的驱动,不能写死。因为以后可能还会连接  其他类型的数据库 ,读取配置文件动态获取。
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 获取数据库连接对象
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌路学java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值