JavaWeb用户信息查看的登录、增删改查案例

冷不防 2023-09-23 15:40 243阅读 0赞

黑马JavaWeb案例整理记录

文章目录

  • 案例源码:
  • 一、需求
  • 二、设计
    • 1、技术选型
    • 2、数据库设计
  • 三、开发步骤
  • 四、详细过程
    • 1、创建web项目,部署tomcat,导入jar包
    • 2、编写首页index.jsp
    • 3、编写servlet、servie、daomain、dao
  • 五、案例升级实现
    • 1、实现内容
    • 2、list.jsp新增设计
    • 3、实现登录功能
      • login.jsp设计
      • LoginServlet编写
      • UserDaoImpl语句
    • 4、实现添加功能
      • add.jsp编写
      • AddUserServlet编写
      • userDaoImpl语句
    • 5、实现删除功能
      • list.jsp修改
      • DelUserServlet
      • userDaoImpl增加语句
    • 6、修改功能实现
      • list.jsp增加修改发送路径
      • FindUserServlet编写
      • update.jsp编写
      • UpdateUserServlet编写
      • UserServiceImpl实现方法
      • UserDaoImpl实现方法
    • 7、删除选中功能
      • list.jsp编写
      • DelSelectServlet编写
      • UserServiceImpl编写
      • UserDaoImpl编写
    • 8、实现全选,全不选和提示是否删除框
      • list.jsp编写实现
    • 9、分页查询功能(分页展示数据)
      • 改index.jsp路径
    • 10、多条件组合查询
  • 未完待续……..

案例源码:

一、需求

实现页面跳转和用户信息的增删改查操作

二、设计

1、技术选型

Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat+BootStrap

2、数据库设计

SQL语句

  1. create database heima; -- 创建数据库
  2. use heima; -- 使用数据库
  3. create table day17_user( -- 创建表
  4. id int primary key auto_increment,
  5. name varchar(20) not null,
  6. gender varchar(5),
  7. age int,
  8. address varchar(32),
  9. qq varchar(20),
  10. email varchar(50)
  11. );

三、开发步骤

  1. 1. 环境搭建
  2. 1. 创建数据库环境
  3. 2. 创建项目,导入需要的jar
  4. 2. 编码
  5. 3. 测试
  6. 4. 部署运维

本笔记(不包含测试和运维)

四、详细过程

在这里插入图片描述

1、创建web项目,部署tomcat,导入jar包

jar包下载地址(里边有很多调出合适的)
链接:https://pan.baidu.com/s/1V0X99u6U1zoDyFy2xm9Cyg
提取码:h8sz
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、编写首页index.jsp

3、编写servlet、servie、daomain、dao

导入druid.properties,导入JDBCUtils类。源码都在源码链接中

五、案例升级实现

1、实现内容

  1. 列表查询
  2. 登录
  3. 添加
  4. 删除
  5. 修改

2、list.jsp新增设计

按钮位置
输入框
分页条
复选框

3、实现登录功能

login.jsp设计

用到了checkCodeServlet,在我的其他博客写了,链接??
login.jsp点击切换验证码实现,如下图
在这里插入图片描述

LoginServlet编写

  1. @WebServlet(value = "/loginServlet")
  2. public class LoginServlet extends HttpServlet {
  3. @Override
  4. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  5. this.doPost(request, response);
  6. }
  7. @Override
  8. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  9. //1.设置编码
  10. request.setCharacterEncoding("utf-8");
  11. //2.获取数据
  12. //2.1获取用户填写验证码
  13. String verifycode = request.getParameter("verifycode");
  14. //3.验证码校验
  15. HttpSession session = request.getSession();
  16. String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER");
  17. session.removeAttribute("CHECKCODE_SERVER");
  18. //忽略大小写判断相等
  19. if (!checkcode_server.equalsIgnoreCase(verifycode)){
  20. //盐城吗不正确
  21. //提示信息
  22. request.setAttribute("login_msg", "验证码错误!");
  23. //跳转登录页面
  24. request.getRequestDispatcher("/login.jsp").forward(request,response);
  25. return;
  26. }
  27. Map<String, String[]> map = request.getParameterMap();
  28. //4.封装User对象
  29. User user = new User();
  30. try {
  31. BeanUtils.populate(user, map);
  32. }catch (IllegalAccessException e){
  33. e.printStackTrace();
  34. }catch (InvocationTargetException e){
  35. e.printStackTrace();
  36. }
  37. //5.调用Srvice查询
  38. UserService service = new UserServiceImpl();
  39. User loginUser = service.login(user);
  40. //6.判断是否登录成功
  41. if(loginUser != null){
  42. //登录成功
  43. //将用户存入session
  44. session.setAttribute("user",loginUser);
  45. //跳转页面
  46. response.sendRedirect(request.getContextPath()+"/index.jsp");
  47. }else{
  48. //登录失败
  49. //提示信息
  50. request.setAttribute("login_msg","用户名或密码错误!");
  51. //跳转登录页面
  52. request.getRequestDispatcher("/login.jsp").forward(request,response);
  53. }
  54. }
  55. }

UserDaoImpl语句

  1. /**
  2. * 登录账号
  3. * @param username
  4. * @param password
  5. * @return
  6. */
  7. @Override
  8. public User findUserByUsernameAndPassword(String username, String password) {
  9. try {
  10. String sql = "select * from day17_user where username = ? and password= ?";
  11. User user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), username, password);
  12. return user;
  13. } catch (Exception e) {
  14. e.printStackTrace();
  15. return null;
  16. }
  17. }

4、实现添加功能

在这里插入图片描述

add.jsp编写

源码在顶部链接
注意事项:提交路径
在这里插入图片描述

AddUserServlet编写

  1. @WebServlet(value = "/addUserServlet")
  2. public class AddUserServlet extends HttpServlet {
  3. @Override
  4. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  5. this.doPost(request, response);
  6. }
  7. @Override
  8. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  9. //1.设置编码
  10. request.setCharacterEncoding("utf-8");
  11. //2.获取参数
  12. Map<String, String[]> map = request.getParameterMap();
  13. //3.封装对象
  14. User user = new User();
  15. try {
  16. BeanUtils.populate(user, map);
  17. } catch (IllegalAccessException e) {
  18. e.printStackTrace();
  19. } catch (InvocationTargetException e) {
  20. e.printStackTrace();
  21. }
  22. //4.调用Service保存
  23. UserService service = new UserServiceImpl();
  24. service.addUser(user);
  25. //5.跳转到userListServlet
  26. response.sendRedirect(request.getContextPath()+"/userListServlet");
  27. }
  28. }

userDaoImpl语句

  1. /**
  2. * 添加user
  3. * @param user
  4. */
  5. @Override
  6. public void add(User user) {
  7. String sql = "insert into day17_user values(null,?,?,?,?,?,?,null,null)";
  8. // template.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());
  9. template.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());
  10. }

5、实现删除功能

在这里插入图片描述

list.jsp修改

在这里插入图片描述

DelUserServlet

  1. @WebServlet("/delUserServlet")
  2. public class DelUserServlet extends HttpServlet {
  3. @Override
  4. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  5. this.doPost(request, response);
  6. }
  7. @Override
  8. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  9. //1.获取id
  10. String id =request.getParameter("id");
  11. //2.调用service删除
  12. UserService service = new UserServiceImpl();
  13. service.deleteUser(id);
  14. //3.跳转到查询所有Servlet
  15. response.sendRedirect(request.getContextPath()+"/userListServlet");
  16. }
  17. }

userDaoImpl增加语句

  1. /**
  2. * 根据id删除
  3. * @param id
  4. */
  5. @Override
  6. public void delete(int id) {
  7. String sql = "delete from day17_user where id = ?";
  8. template.update(sql,id);
  9. }

6、修改功能实现

在这里插入图片描述
注意:隐藏域提交id。下面内容会提到

list.jsp增加修改发送路径

在这里插入图片描述

  1. <a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a>

FindUserServlet编写

  1. @WebServlet(value = "/findUserServlet")
  2. public class FindUserServlet extends HttpServlet {
  3. @Override
  4. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  5. this.doPost(request, response);
  6. }
  7. @Override
  8. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  9. //1.获取id
  10. String id = request.getParameter("id");
  11. //2.调用Service查询
  12. UserService service = new UserServiceImpl();
  13. User user = service.findUserBuId(id);
  14. //3.将user存入request
  15. request.setAttribute("user",user);
  16. //4.转发到update.jsp
  17. request.getRequestDispatcher("/update.jsp").forward(request,response);
  18. }
  19. }

在这里插入图片描述

update.jsp编写

id提交隐藏域如下
在这里插入图片描述
以下注意地点举例,具体请查看开篇源码链接。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

UpdateUserServlet编写

  1. @WebServlet(value = "/updateUserServlet")
  2. public class UpdateUserServlet extends HttpServlet {
  3. @Override
  4. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  5. this.doPost(request, response);
  6. }
  7. @Override
  8. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  9. //1.设置编码
  10. request.setCharacterEncoding("utf-8");
  11. //2.获取map
  12. Map<String, String[]> map = request.getParameterMap();
  13. //3.封装对象
  14. User user = new User();
  15. try {
  16. BeanUtils.populate(user, map);
  17. } catch (IllegalAccessException e) {
  18. e.printStackTrace();
  19. } catch (InvocationTargetException e) {
  20. e.printStackTrace();
  21. }
  22. //4.调用Service修改
  23. UserService service = new UserServiceImpl();
  24. service.updateUser(user);
  25. //5.跳转到查询所有Servlet
  26. response.sendRedirect(request.getContextPath()+"/userListServlet");
  27. }
  28. }

UserServiceImpl实现方法

在这里插入图片描述

UserDaoImpl实现方法

在这里插入图片描述

7、删除选中功能

在这里插入图片描述

list.jsp编写

在这里插入图片描述
在这里插入图片描述

DelSelectServlet编写

  1. @WebServlet(value = "/delSelectServlet")
  2. public class DelSelectServlet extends HttpServlet {
  3. @Override
  4. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  5. this.doPost(request, response);
  6. }
  7. @Override
  8. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  9. //1.获取所有id
  10. String[] ids = request.getParameterValues("uid");
  11. //
  12. UserService service = new UserServiceImpl();
  13. service.delSelectUser(ids);
  14. //
  15. response.sendRedirect(request.getContextPath()+"/userListServlet");
  16. }
  17. }

UserServiceImpl编写

  1. @Override
  2. public void delSelectUser(String[] ids) {
  3. //判断有东西才删除,否则会空指针异常
  4. if (ids != null && ids.length>0){
  5. //1.遍历数组
  6. for (String id : ids){
  7. //2.2.调用dao删除
  8. dao.delete(Integer.parseInt(id));
  9. }
  10. }
  11. }

UserDaoImpl编写

还是用之前写的,不过就是上一步的service将选中的id列表挨个遍历传进来,挨个删除,还是用以前的方法

  1. /**
  2. * 根据id删除
  3. * @param id
  4. */
  5. @Override
  6. public void delete(int id) {
  7. String sql = "delete from day17_user where id = ?";
  8. template.update(sql,id);
  9. }

8、实现全选,全不选和提示是否删除框

list.jsp编写实现

在这里插入图片描述
有选中条目才提交删除
在这里插入图片描述
同样Service中也要判断一下提交的里边有无内容,不判断的话有时候会空指针异常
在这里插入图片描述

9、分页查询功能(分页展示数据)

在这里插入图片描述
在这里插入图片描述

改index.jsp路径

在这里插入图片描述

10、多条件组合查询

在这里插入图片描述

未完待续…

发表评论

表情:
评论列表 (有 0 条评论,243人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JDBC增删案例讲解

    JDBC增删改查案例讲解 简介:这是一个网上非常常见的,JDBC的练习题,系统大家通过本文的讲解,熟悉JDBC的增删改查。 推荐学习路线:[JDBC数据库的连接][JD

    相关 游客信息增删系统

    1 问题 在景区中来来往往的人很多,在登记表上填写游客信息非常麻烦而且不方便保存以及后续的增删改查,同样该问题也可以看作其他类似的填表信息录入问题,不仅是旅游存在这个问题。

    相关 ssm登录注册增删

    >     此项目原本是两个不同的项目,博主从网上找的,都是基于ide开发的项目,然当我导入ide与eclipse却运行不了,没办法只能博主自己重新构建项目,参考这两个不同的项