JavaWeb学习08 | 使用纯Servlet开发一个单表的CURD操作

59 阅读2分钟
使用纯粹的Servlet完成单表{部门表}的增删改查操作
实现步骤
  • 第一步:准备一张数据库表 create table dept( deptno int primary key dname varchar(255), loc varchar(255) ); insert into dept(deptno,dname,loc) values(10,"sales","new york")
  • 第二步:准备一套HTML页面
    • 把HTML页面准备好
    • 然后将HTML页面中的链接都能跑通
    • 应该设计哪些页面?
      • 新增页面 add.html
      • 修改页面 edit.html
      • 详情页面 detail.html
      • 欢迎页面 index.html
      • 列表页面 list.html(核心页面)
  • 第三步:分析系统包括哪些功能?
    • 什么叫做一个功能?
      • 只要这个操作连接了数据库,就代表一个功能?
    • 包括哪些功能?
      • 查看部门列表
      • 新增部门
      • 删除部门
      • 查看用户详细信息
      • 跳转到修改页面
      • 修改部门
  • 第四步:在IDEA中搭建开发环境
    • 创建一个webapp
    • 向webapp中添加数据库连接jar包(mysql驱动)
      • 必须在WEB-INF目录下新建一个lib目录,然后引入jar包
    • JDBC的工具类
  • 第五步:实现第一个功能:查看部门列表
    • 修改前端页面的超链接/xmm/dept/list
    • 编写web.xml文件 /dept/list
    • 编写DeptListServlet类继承HttpServlet,然后重写doGet方法
    • 在DeptListServlet类的doGet方法中连接数据库,查询所有部门,动态展示部门列表页面。(只用Servlet代码太过繁琐)
  • 第六步:查看部门详情
    • 先找到用户点击的“详情”在哪里
    • 详情是需要连接数据库的,所以这个超链接点击之后也是需要执行一段Java代码的。所以要将这个超链接的路径进行修改"/oa/dept/detail"
    • 重点:向服务器提交数据的格式:url?name=value&name=value&name=value
    • 编写web.xml文件 /dept/detail
    • 编写DeptDetailServlet类继承HttpServlet,然后重写doGet方法
    • 在doGet方法中:连接数据库,根据部门编号查询该部门的信息,动态展示部门详情页面。
  • 第七步:删除部门
    • 类似上述过程
  • 第八步:新增部门
    • 类似上述过程
    • 最后保存成功之后,转发到/dept/list的时候,会出现405,为什么?
      • 1.保存用的是post请求,底层需要执行doPost方法
      • 2.转发一次请求,之前是post,之后还是post,因为它是一次请求
      • /dept/list Servlet当中只有一个doGet方法。
      • 解决方法:
        • 1.在/dept/list Servlet中添加doPost方法,然后在doPost方法中调用doGet。
        • 2.重定向
  • 第九步:部门修改
    • 类似上述步骤,代码略
  • 编写过程中的一些问题: 报404错误
    • (1) 注册驱动Class.forName(driver)写成 Class.forName("driver");
    • (2) mysql使用版本不对,应当使用8版本,且要右键add library as