• 上一篇复现了用户信息表-查询所有用户的功能
    • 本文再梳理剩下几个功能的实现逻辑以及一些实现细节
      • 添加\删除\更新
      • 分页查询
      • 复杂条件分页查询(动态sql)
      • 信息回显

    添加功能

    • AddUserServlet
      • 设置编码
      • 获取提交表单的所有数据 (add.jsp)
      • 封装对象
      • 调用service完成保存
      • 跳转到userListServlet, 再次查询(现实添加的结果)
      • 3.添加功能.bmp

    删除功能

    • DelUserServlet
    • 从用户信息展示列表的删除按钮开始,携带记录id到servlet
    • 调用删除service
    • 跳转到userListServlet, 显示删除后的结果
    • 4.删除功能.bmp

    修改功能

    • findUserServlet(用于信息回显) 和 UpdateUserServlet
    • 从用户信息展示列表的修改按钮开始,跳转到 ~~add.jsp ~~update.jsp (就差个title)
    • 细节: 按钮要记录id, 作为参数。根据id查询用户信息 User , 存到request , 转发到 update.jsp 页面
    • 这样,update.jsp 才有数据先回显信息
    • 后面就是更新,小细节:由于update.jsp 没有展示id ,可以通过隐藏域提交 id
    • 5.修改功能.bmp

    删除选中功能

    • DelSelectedServlet
    • 获取选中条目的id
    • image.png

    分页查询

    • PageBean{总记录数,总页码,每页的数据list,当前页码,每页显示条数}
    • 分析好客户端 和 服务器间的输入输出
    • currentPage 和 rows
    • sql: select * from user limi ? ?
    • 7.分页查询功能.bmp
    • FindUserByPageServlet
    • 7_2.分页查询功能2.bmp

    带条件的分页查询

    • 要处理参数是动态的,sql 也需要动态生成的问题
    • sql根据map中的value 动态生成
    • 需要一个参数集合
    • 复杂条件分页查询.bmp
    • 上面点击不同页面,查询条件也要保留,所以查询条件也是需要会显的

    常见Bug

    • sql Like 要加% , eg: like %李%,否则结果可能不正确
    • 没有收到数据jsp的数据一般就是 form表达没有写 action 或者标签没有加 name 属性