伙伴云客服论坛»论坛 S区 S客户管理 查看内容

0 评论

0 收藏

分享

全网最详细的JavaWeb用户管理系统(详细源码讲解)

基于Java web的用户管理系统开发(可直接跳到实现步骤)(小白也行)


      前言_下载资源说明1、业务及其需求分析

          1、实现以下功能2、使用以下技术

      2、简单废品展示

          1、登录功能与简单界面2、页面查询功能3、添加功能4、单个用户删除功能5、用户修改功能6、选中批量删除功能

      3、实现步骤及其方法(重点必看)(一步一步对应实现)*****
        1、用户查询功能

            1、封装User 类2、改造的index.jsp并去到servlet中3、创建userListServlet(什么都不干)和UserService 接口4、service中创建子包impl定义接口实现 类 (UserServiceImpl)5、dao中创建 接口 UserDao6、dao中的子包impl中创建定义接口实现的 类 (UserDaoImpl)7、UserServiceImpl中创建new实现类8、再来userListServlet中9、jsp的list.jsp显示页面

        2、登录功能及其验证码的加载及其切换

            1、加载验证码,超链接形式点击切换2、创建LoginServlet3、来到service下的UserService中创建接口4、、来到service下impl中的UserServiceImpl中实现类5、dao中的UserDao中创建接口6、dao中impl中实现类方法(操作数据库库的sql)

        3、用户添加功能

            1、修改按钮跳转页面2、添加表单提交的action3、创建AddUserServlet4、在service下的UserService中创建接口5、在service下impl包的UserServiceImpl中实现类6、dao下的UserDao中创建接口7、dao下impl包的UserDaoImpl实现类

        3、删除功能

            1、修改访问途径(根据id删除数据)2、创建DelUserServlet3、在service下的UserService中创建接口4、在service下impl包的UserServiceImpl中实现类5、dao下的UserDao中创建接口6、dao下impl包的UserDaoImpl实现类7、加强用户体验感(删除是给出提示框)

        5、修改功能

            1、修改按钮的页面跳转2、编写FindUserServlet3、service中UserService创建 接口 方法4、service中impl下UserServiceImpl创建实现 类 的方法5、Dao中UserDao创建接口方法6、创建对应的实现类7、去update中回显信息(重点看value和c:if中的代码)8、表单提交方式及其隐藏域(一定要有)9、创建UpdateUserServlet10、service中UserService创建 接口 方法11、service中impl下UserServiceImpl创建实现 类 的方法(注意没有返回值)12、Dao中UserDao创建接口方法13、dao下impl包的UserDaoImpl实现类(没有返回值)

        6、选中批量删除

            1、给提交数据加form和复选框加name2、给删除选中绑定单击事件3、创建编写DelSelectedServlet4、service中UserService创建 接口 方法5、service中impl下UserServiceImpl创建实现 类 的方法6、实现全选


      4、数据库字段部分5、结语


前言_下载资源说明

   作者:BSXY_陈永跃     BSXY_信息学院     注:未经允许制止转发任何内容  

该system是可以自己按步骤一步一步完成的(可直接查看第3大点实现步骤及其方法),如需源码也可自行下载点击以下链接下载:
资源中包括了system的源码+相应的SQL文件+system导入运行辅助教学视频(文档)+Navicat免费免装置软件
比较适宜刚刚学完java web的知识点,又刚好想做一下项目的人员,该system比较的根底

全网最详细的JavaWeb用户管理系统(详细源码讲解)-1.jpg


1、业务及其需求分析

1、实现以下功能

1、用户的查询功能
2、用户的添加功能
2、用户的登录功能
3、用户的删除功能
4、用户的修改功能
5、用户的批量删除功能
2、使用以下技术

JSP+Servlet(request、response、session)+javaBean+druid连接池技术+JdbcTemplate+MySQL+MVC开发形式(开发工具为IDEA)

全网最详细的JavaWeb用户管理系统(详细源码讲解)-2.jpg


2、简单废品展示

1、登录功能与简单界面

全网最详细的JavaWeb用户管理系统(详细源码讲解)-3.jpg

全网最详细的JavaWeb用户管理系统(详细源码讲解)-4.jpg


2、页面查询功能

全网最详细的JavaWeb用户管理系统(详细源码讲解)-5.jpg


3、添加功能

全网最详细的JavaWeb用户管理系统(详细源码讲解)-6.jpg


4、单个用户删除功能

全网最详细的JavaWeb用户管理系统(详细源码讲解)-7.jpg


5、用户修改功能

全网最详细的JavaWeb用户管理系统(详细源码讲解)-8.jpg


6、选中批量删除功能

全网最详细的JavaWeb用户管理系统(详细源码讲解)-9.jpg


3、实现步骤及其方法(重点必看)(一步一步对应实现)*****

1、用户查询功能

全网最详细的JavaWeb用户管理系统(详细源码讲解)-10.jpg

代码构造:



1、封装User 类
  1. packagecom.entity;publicclassUser{privateint id;privateString name;privateString gender;privateint age;privateString address;privateString qq;privateString email;
  2. setter and getter方法
  3. toString方法
  4. }
复制代码
2、改造的index.jsp并去到servlet中
  1. <a
  2. href="${pageContext.request.contextPath}/userListServlet" style="text-decoration:none;font-size:33px">查询所有用户信息
  3.     </a>
复制代码
3、创建userListServlet(什么都不干)和UserService 接口
  1. publicinterfaceUserService{/**
  2.      * 查询所有用户信息
  3.      */publicList<User>findAll();}
复制代码
4、service中创建子包impl定义接口实现 类 (UserServiceImpl)
  1. publicclassUserServiceImplimplementsUserService{publicList<User>findAll(){//调用dao完成查询return;}}
复制代码
5、dao中创建 接口 UserDao
  1. /**
  2. * 用户操作的dao
  3. */publicinterfaceUserDao{publicList<User>findAll();}
复制代码
6、dao中的子包impl中创建定义接口实现的 类 (UserDaoImpl)
  1. publicclassUserDaoImplimplementsUserDao{privateJdbcTemplate template=newJdbcTemplate(JDBCUtils.getDataSource());@OverridepublicList<User>findAll(){//使用jdbc操作数据库//1、定义sqlString sql="select*from user";List<User> users = template.query(sql,newBeanPropertyRowMapper<User>(User.class));return users;}}
复制代码
7、UserServiceImpl中创建new实现类
  1. publicclassUserServiceImplimplementsUserService{privateUserDao dao=newUserDaoImpl();@OverridepublicList<User>findAll(){//调用dao完成查询return dao.findAll();}}
复制代码
8、再来userListServlet中
  1. doPost中:
  2.    
  3.     //1、调用UserService完成查询UserService service=newUserServiceImpl();List<User> users = service.findAll();//2、将list存入request中
  4.         request.setAttribute("users",users);//3、转发到list.jsp
  5.        request.getRequestDispatcher("/list.jsp").forward(request,response);
复制代码
9、jsp的list.jsp显示页面
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <body>
  4. <div class="container">
  5.     <h3 style="text-align: center">用户信息列表</h3>
  6.     <form id="form" action="" method="post">
  7.         <table align="center" cellpadding="2px" cellspacing="2px" border="1">
  8.             <tr>
  9.                 <td><input type="checkbox"></td>
  10.                 <th>编号</th>
  11.                 <th>姓名</th>
  12.                 <th>性别</th>
  13.                 <th>年龄</th>
  14.                 <th>籍贯</th>
  15.                 <th>QQ</th>
  16.                 <th>邮箱</th>
  17.                 <th>操作</th>
  18.             </tr>
  19.             
  20.             <c:forEach items="${users}" var="user" varStatus="s">
  21.                 <tr>
  22.                     <td><input type="checkbox"></td>
  23.                     <td>${s.count}</td>
  24.                     <td>${user.name}</td>
  25.                     <td>${user.gender}</td>
  26.                     <td>${user.age}</td>
  27.                     <td>${user.address}</td>
  28.                     <td>${user.qq}</td>
  29.                     <td>${user.email}</td>
  30.                     <td><a class="btn btn-default btn-sm" href="#">修改</a> <a
  31.                             class="btn btn-default btn-sm" href="#">删除</a></td>
  32.                 </tr>
  33.             </c:forEach>
  34.         </table>
  35.     </form>
  36. </div>
  37. </body>
复制代码
2、登录功能及其验证码的加载及其切换

1、加载验证码,超链接形式点击切换
  1. //在session中存入当前的code码,便于验证
  2.         request.getSession().setAttribute("checkCode",code);
复制代码
加载好验证码后实现切换:
  1. <scripttype="text/javascript">//切换验证码functionrefreshCode(){//超链接的方法//1.获取验证码图片对象var img = document.getElementById("checkCode");//2.设置其src属性,加时间戳
  2. img.src ="${pageContext.request.contextPath}/checkCodeServlet?time="+newDate().getTime();}</script><ahref="javascript:refreshCode();"><imgsrc="${pageContext.request.contextPath}/checkCodeServlet"title="看不清点击刷新"id="checkCode"/></a>
复制代码
2、创建LoginServlet
  1. 逻辑:
  2. //1.设置编码
  3. request.setCharacterEncoding("utf-8");//2.获取数据  //3.验证码校验//4.封装User对象//5.调用Service查询//6、判断是否登录胜利
复制代码
doPost中的代码:
  1. //1.设置编码
  2.         request.setCharacterEncoding("utf-8");//2.获取数据//2.1获取用户填写验证码String verifycode = request.getParameter("verifycode");//jsp中验证码的name//3、验证码的校验HttpSession session = request.getSession();String code =(String)session.getAttribute("checkCode");//CheckCodeServlet中的值
  3.         session.removeAttribute("checkCode");//确保验证码一次性if(!code.equalsIgnoreCase(verifycode)){//验证码不正确//提示信息
  4.             request.setAttribute("login_msg","验证码错误!");
  5.             request.getRequestDispatcher("/login.jsp").forward(request,response);return;}Map<String,String[]> map = request.getParameterMap();//4、封装User对象User user=newUser();try{BeanUtils.populate(user,map);//JavaBean}catch(IllegalAccessException e){
  6.             e.printStackTrace();}catch(InvocationTargetException e){
  7.             e.printStackTrace();}//5、调用service查询UserServiceImpl service =newUserServiceImpl();User loginUser=service.login(user);//编写到这里后报错,原因service中没有这个方法,接下来到service中创建方法//6、判断是否登录胜利if(loginUser!=null){//登录胜利//将用户存入session
  8.             session.setAttribute("user",loginUser);//跳转页面
  9.             response.sendRedirect(request.getContextPath()+"/index.jsp");}else{//登录失败
  10.             request.setAttribute("login_msg","用户名或密码错误!");
  11.             request.getRequestDispatcher("/login.jsp").forward(request,response);}
复制代码
3、来到service下的UserService中创建接口
  1. publicinterfaceUserService{/**
  2.      * 登录方法
  3.      */Userlogin(User user);}
复制代码
4、、来到service下impl中的UserServiceImpl中实现类
  1. publicclassUserServiceImplimplementsUserService{privateUserDao dao=newUserDaoImpl();publicUserlogin(User user){return dao.findUserByUsernameAndPassword(user.getUsername(),user.getPassword());}//如今应该返回null(要在dao中的接口中创建接口才行),这里省略,一步到位了}
复制代码
5、dao中的UserDao中创建接口
  1. /**
  2. * 用户操作的dao
  3. */publicinterfaceUserDao{UserfindUserByUsernameAndPassword(String username,String password);}
复制代码
6、dao中impl中实现类方法(操作数据库库的sql)
  1. publicclassUserDaoImplimplementsUserDao{privateJdbcTemplate template=newJdbcTemplate(JDBCUtils.getDataSource());publicUserfindUserByUsernameAndPassword(String username,String password){try{String sql ="select * from user where username = ? and password = ?";User user = template.queryForObject(sql,newBeanPropertyRowMapper<User>(User.class), username, password);return user;}catch(Exception e){
  2.             e.printStackTrace();returnnull;}}}//假设不try catch用户名或密码错误会报500的错误
复制代码
再次回来LoginServlet中编写
3、用户添加功能

逻辑图

全网最详细的JavaWeb用户管理系统(详细源码讲解)-12.jpg


1、修改按钮跳转页面
  1. <a class="btn btn-primary" href="${pageContext.request.contextPath}/add.jsp">添加联络人</a>
复制代码
2、添加表单提交的action
  1. <form action="${pageContext.request.contextPath}/addUserServlet" method="post">
复制代码
3、创建AddUserServlet
  1. doPost中://1、设置编码
  2.     request.setCharacterEncoding("utf-8");//2、获取参数Map<String,String[]> map = request.getParameterMap();//3、封装对象User user=newUser();try{BeanUtils.populate(user,map);}catch(IllegalAccessException e){
  3.     e.printStackTrace();}catch(InvocationTargetException e){
  4.     e.printStackTrace();}//4、调用Service保管UserService service=newUserServiceImpl();
  5.    service.addUser(user);//到这里会报错,也可以接在写//5、跳转到userListServlet
  6.    response.sendRedirect(request.getContextPath()+"/userListServlet");
复制代码
4、在service下的UserService中创建接口
  1. publicinterfaceUserService{/**
  2.      *保管User方法
  3.      */voidaddUser(User user);}
复制代码
5、在service下impl包的UserServiceImpl中实现类
  1. publicclassUserServiceImplimplementsUserService{privateUserDao dao=newUserDaoImpl();@OverridepublicvoidaddUser(User user){
  2.         dao.add(user);}}
复制代码
6、dao下的UserDao中创建接口
  1. publicinterfaceUserDao{voidadd(User user);}
复制代码
7、dao下impl包的UserDaoImpl实现类
  1. publicclassUserDaoImplimplementsUserDao{privateJdbcTemplate template=newJdbcTemplate(JDBCUtils.getDataSource());@Overridepublicvoidadd(User user){//1、定义sqlString sql="insert into user values(null,?,?,?,?,?,?,null,null)";//2、执行sql
  2.   template.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail());}}
复制代码
3、删除功能

全网最详细的JavaWeb用户管理系统(详细源码讲解)-13.jpg


1、修改访问途径(根据id删除数据)
  1. <a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/delUserServlet?id=${user.id}">删除</a>
复制代码
2、创建DelUserServlet
  1. doPost://1、获取idString id=request.getParameter("id");//2、调用service删除UserService service=newUserServiceImpl();
  2.         service.deleteUser(id);//跳转到查询所有的UserListServlet
  3.         response.sendRedirect(request.getContextPath()+"/userListServlet");
复制代码
3、在service下的UserService中创建接口
  1. publicinterfaceUserService{/**
  2.      * 根据id删除
  3.      */voiddeleteUser(String id);}
复制代码
4、在service下impl包的UserServiceImpl中实现类
  1. publicclassUserServiceImplimplementsUserService{privateUserDao dao=newUserDaoImpl();@OverridepublicvoiddeleteUser(String id){
  2.         dao.delete(Integer.parseInt(id));//转为数字类型}}
复制代码
5、dao下的UserDao中创建接口
  1. publicinterfaceUserDao{voiddelete(int i);}
复制代码
6、dao下impl包的UserDaoImpl实现类
  1. publicclassUserDaoImplimplementsUserDao{privateJdbcTemplate template=newJdbcTemplate(JDBCUtils.getDataSource());@Overridepublicvoiddelete(int id){//1、定义sqlString sql="delete from user where id=?";
  2.         template.update(sql,id);}}
复制代码
7、加强用户体验感(删除是给出提示框)
  1. <script>functiondeleteUser(id){//用户安全提示if(confirm("您确定删除吗?")){
  2.                 location.href="${pageContext.request.contextPath}/delUserServlet?id="+id;}}</script><td><aclass="btn btn-default btn-sm"href="javascript:deleteUser(${user.id}); ">删除</a></td>
复制代码
5、修改功能

逻辑图:

全网最详细的JavaWeb用户管理系统(详细源码讲解)-14.jpg

回显信息:
1、修改按钮的页面跳转
  1. <td><aclass="btn btn-default btn-sm"href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a> </td>
复制代码
2、编写FindUserServlet
  1. doPost://1、获取idString id = request.getParameter("id");//2、调用service查询UserService service =newUserServiceImpl();User user=service.findUserById(id);//3、将user存入request
  2.         request.setAttribute("user",user);//4、转发到update.jsp
  3.         request.getRequestDispatcher("/update.jsp").forward(request,response);
复制代码
3、service中UserService创建 接口 方法
  1. publicinterfaceUserService{/**
  2.      * 根据id查询
  3.      * @param id
  4.      */UserfindUserById(String id);}
复制代码
4、service中impl下UserServiceImpl创建实现 类 的方法
  1. publicclassUserServiceImplimplementsUserService{privateUserDao dao=newUserDaoImpl();@OverridepublicUserfindUserById(String id){return dao.findById(Integer.parseInt(id));//转为数字类型}}
复制代码
5、Dao中UserDao创建接口方法
  1. publicinterfaceUserDao{UserfindById(int i);}
复制代码
6、创建对应的实现类
  1. publicclassUserDaoImplimplementsUserDao{privateJdbcTemplate template=newJdbcTemplate(JDBCUtils.getDataSource());@OverridepublicUserfindById(int id){String sql="select*from user where id=?";return template.queryForObject(sql,newBeanPropertyRowMapper<User>(User.class),id);}}
复制代码
7、去update中回显信息(重点看value和c:if中的代码)
  1. <div class="form-group">
  2.             <label for="name">姓名:</label>
  3.             <input type="text" class="form-control" id="name" name="name"  value="${user.name}" readonly="readonly" placeholder="请输入姓名" />
  4.           </div>
  5.           <div class="form-group">
  6.             <label>性别:</label>
  7.               <c:if test="${user.gender == '男'}">
  8.                   <input type="radio" name="gender" value="男" checked />男
  9.                   <input type="radio" name="gender" value="女"  />女
  10.               </c:if>
  11.               <c:if test="${user.gender == '女'}">
  12.                   <input type="radio" name="gender" value="男"  />男
  13.                   <input type="radio" name="gender" value="女" checked  />女
  14.               </c:if>
  15.           </div>
  16.           <div class="form-group">
  17.             <label for="age">年龄:</label>
  18.             <input type="text" class="form-control" value="${user.age}" id="age"  name="age" placeholder="请输入年龄" />
  19.           </div>
  20.           <div class="form-group">
  21.             <label for="address">籍贯:</label>
  22.              <select name="address" id="address" class="form-control" >
  23.                  <c:if test="${user.address == '陕西'}">
  24.                     <option value="陕西" selected>陕西</option>
  25.                     <option value="北京">北京</option>
  26.                     <option value="上海">上海</option>
  27.                  </c:if>
  28.                  <c:if test="${user.address == '北京'}">
  29.                      <option value="陕西" >陕西</option>
  30.                      <option value="北京" selected>北京</option>
  31.                      <option value="上海">上海</option>
  32.                  </c:if>
  33.                  <c:if test="${user.address == '上海'}">
  34.                      <option value="陕西" >陕西</option>
  35.                      <option value="北京">北京</option>
  36.                      <option value="上海" selected>上海</option>
  37.                  </c:if>
  38.             </select>
  39.           </div>
  40.           <div class="form-group">
  41.             <label for="qq">QQ:</label>
  42.             <input type="text" id="qq" class="form-control" value="${user.qq}" name="qq" placeholder="请输入QQ号码"/>
  43.           </div>
  44.           <div class="form-group">
  45.             <label for="email">Email:</label>
  46.             <input type="text" id="email" class="form-control" value="${user.email}" name="email" placeholder="请输入邮箱地址"/>
  47.           </div>
复制代码
用户修改:
8、表单提交方式及其隐藏域(一定要有)
  1. <form action="${pageContext.request.contextPath}/updateUserServlet" method="post">
  2.             <!--  隐藏域 提交id-->
  3.             <input type="hidden" name="id" value="${user.id}">
  4.     //注意影藏域
  5.           <div class="form-group">
  6.             <label for="name">姓名:</label>
  7.             <input type="text" class="form-control" id="name" name="name"  value="${user.name}" readonly="readonly" placeholder="请输入姓名" />
  8.           </div>
  9.           <div class="form-group">
  10.             <label>性别:</label>
  11.               <c:if test="${user.gender == '男'}">
  12.                   <input type="radio" name="gender" value="男" checked />男
  13.                   <input type="radio" name="gender" value="女"  />女
  14.               </c:if>
  15.               <c:if test="${user.gender == '女'}">
  16.                   <input type="radio" name="gender" value="男"  />男
  17.                   <input type="radio" name="gender" value="女" checked  />女
  18.               </c:if>
  19.           </div>
  20.           <div class="form-group">
  21.             <label for="age">年龄:</label>
  22.             <input type="text" class="form-control" value="${user.age}" id="age"  name="age" placeholder="请输入年龄" />
  23.           </div>
  24.           <div class="form-group">
  25.             <label for="address">籍贯:</label>
  26.              <select name="address" id="address" class="form-control" >
  27.                  <c:if test="${user.address == '陕西'}">
  28.                     <option value="陕西" selected>陕西</option>
  29.                     <option value="北京">北京</option>
  30.                     <option value="上海">上海</option>
  31.                  </c:if>
  32.                  <c:if test="${user.address == '北京'}">
  33.                      <option value="陕西" >陕西</option>
  34.                      <option value="北京" selected>北京</option>
  35.                      <option value="上海">上海</option>
  36.                  </c:if>
  37.                  <c:if test="${user.address == '上海'}">
  38.                      <option value="陕西" >陕西</option>
  39.                      <option value="北京">北京</option>
  40.                      <option value="上海" selected>上海</option>
  41.                  </c:if>
  42.             </select>
  43.           </div>
  44.           <div class="form-group">
  45.             <label for="qq">QQ:</label>
  46.             <input type="text" id="qq" class="form-control" value="${user.qq}" name="qq" placeholder="请输入QQ号码"/>
  47.           </div>
  48.           <div class="form-group">
  49.             <label for="email">Email:</label>
  50.             <input type="text" id="email" class="form-control" value="${user.email}" name="email" placeholder="请输入邮箱地址"/>
  51.           </div>
  52.              <div class="form-group" style="text-align: center">
  53.                 <input class="btn btn-primary" type="submit" value="提交" />
  54.                 <input class="btn btn-default" type="reset" value="重置" />
  55.                 <input class="btn btn-default" type="button" value="返回"/>
  56.              </div>
  57.         </form>
复制代码
9、创建UpdateUserServlet
  1. doPost中:
  2. request.setCharacterEncoding("utf-8");//2、获取mapMap<String,String[]> map = request.getParameterMap();//3、封装对象User user=newUser();try{BeanUtils.populate(user,map);}catch(IllegalAccessException e){
  3.             e.printStackTrace();}catch(InvocationTargetException e){
  4.             e.printStackTrace();}//4、调用Service修改UserService service=newUserServiceImpl();
  5.         service.updateUser(user);//5、跳转到查询所有Servlet
  6.         response.sendRedirect(request.getContextPath()+"/userListServlet");
复制代码
10、service中UserService创建 接口 方法
  1. publicinterfaceUserService{/**
  2.      * 修改用户信息
  3.      * @param user
  4.      */voidupdateUser(User user);}
复制代码
11、service中impl下UserServiceImpl创建实现 类 的方法(注意没有返回值)
  1. publicclassUserServiceImplimplementsUserService{privateUserDao dao=newUserDaoImpl();@OverridepublicvoidupdateUser(User user){
  2.         dao.update(user);}}
复制代码
12、Dao中UserDao创建接口方法
  1. publicinterfaceUserDao{voidupdate(User user);}
复制代码
13、dao下impl包的UserDaoImpl实现类(没有返回值)
  1. publicclassUserDaoImplimplementsUserDao{privateJdbcTemplate template=newJdbcTemplate(JDBCUtils.getDataSource());@Overridepublicvoidupdate(User user){String sql="update user set name=?,gender=?,age=?,address=?,qq=?,email=? where id=?";
  2.   template.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail(),user.getId());}}
复制代码
6、选中批量删除

逻辑:

全网最详细的JavaWeb用户管理系统(详细源码讲解)-15.jpg


1、给提交数据加form和复选框加name
  1. <form id="form" action="${pageContext.request.contextPath}/delSelectedServlet" method="post">
  2.         <table border="1" class="table table-bordered table-hover">
  3.             <tr class="success">
  4.                 <td><input type="checkbox" id="firstCb"></td>
  5.                 <th>编号</th>
  6.                 <th>姓名</th>
  7.                 <th>性别</th>
  8.                 <th>年龄</th>
  9.                 <th>籍贯</th>
  10.                 <th>QQ</th>
  11.                 <th>邮箱</th>
  12.                 <th>操作</th>
  13.             </tr>
  14.             <c:forEach items="${users}" var="user" varStatus="s">
  15.                 <tr>
  16.                     <td><input type="checkbox" name="uid" value="${user.id}"></td>
  17.                     <%--value就是这条数据的id--%>
  18.                     <td>${s.count}</td>
  19.                     <td>${user.name}</td>
  20.                     <td>${user.gender}</td>
  21.                     <td>${user.age}</td>
  22.                     <td>${user.address}</td>
  23.                     <td>${user.qq}</td>
  24.                     <td>${user.email}</td>
  25.                     <td>
  26.                         <a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a>
  27.                         <a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id}); ">删除</a>
  28.                     </td>
  29.                 </tr>
  30.             </c:forEach>
  31.         </table>
  32.     </form>
复制代码
2、给删除选中绑定单击事件
  1. <script>
  2. window.οnlοad=function () {
  3.           //给删除选中按钮添加单机事件
  4.           document.getElementById("delSelected").οnclick=function () {
  5.               //提交表单
  6.               document.getElementById("form").submit();
  7.           }
  8. </script>
  9. <div style="float: right;margin: 5px;">
  10.       <a class="btn btn-primary" href="javascript:void(0);" id="delSelected">删除选中</a><%--绑定事件--%>
  11.   </div>
复制代码
3、创建编写DelSelectedServlet
  1. //1、获取所有idString[] ids = request.getParameterValues("uid");//2、调用service删除UserService service=newUserServiceImpl();
  2.       service.delSelectedUser(ids);;//3、跳转到查询所有Servlet
  3.       response.sendRedirect(request.getContextPath()+"/userListServlet");
复制代码
4、service中UserService创建 接口 方法
  1. publicinterfaceUserService{/**
  2.      * 批量删除用户
  3.      * @param ids
  4.      */voiddelSelectedUser(String[] ids);}
复制代码
5、service中impl下UserServiceImpl创建实现 类 的方法
  1. publicclassUserServiceImplimplementsUserService{privateUserDao dao=newUserDaoImpl();@OverridepublicvoiddelSelectedUser(String[] ids){if(ids!=null&&ids.length>0){//防止空指针异常//1、遍历数组for(String id:ids){//2、调用dao删除
  2.                 dao.delete(Integer.parseInt(id));//删除的dao已经有了}}}}
复制代码
6、实现全选
  1. <script>
  2.         window.οnlοad=function () {
  3.             //给删除选中按钮添加单机事件
  4.             document.getElementById("delSelected").οnclick=function () {
  5.                 if (confirm("您确定要删除选中条目吗?")){
  6.                     var flag=false;
  7.                     //判断是否有选中条目,防止一条都没有选中呈现空指针异常
  8.                     var cbs=document.getElementsByName("uid");
  9.                     for (var i=0;i<cbs.length;i++){//
  10.                         if (cbs[i].checked){
  11.                             //有一条选中了
  12.                            flag=true;
  13.                             break;
  14.                         }
  15.                     }
  16.                     if (flag){//有条目被选中才执行以下操作
  17.                         //完成表单提交
  18.                         document.getElementById("form").submit();
  19.                     }
  20.                 }
  21.             }
  22.             //1、获取第一个cb,实现全选
  23.             document.getElementById("firstCb").οnclick=function () {
  24.                 //2、获取下边列表的所有cb
  25.                 var cbs=document.getElementsByName("uid");
  26.                 //3、遍历
  27.                 for(var i=0;i<cbs.length;i++){
  28.                     //4、设置这些cbs[i]的checked状态=firstCb.checked
  29.                     cbs[i].checked=this.checked;
  30.                 }
  31.             }
  32.         }
  33.     </script>
  34. <form id="form" action="${pageContext.request.contextPath}/delSelectedServlet" method="post">
  35.         <table border="1" class="table table-bordered table-hover">
  36.             <tr class="success">
  37.                 <td><input type="checkbox" id="firstCb"></td>
  38.                 <%--让以下的复选框状态都和第一个坚持一致--%>
  39.                 <th>编号</th>
  40.                 <th>姓名</th>
  41.                 <th>性别</th>
  42.                 <th>年龄</th>
  43.                 <th>籍贯</th>
  44.                 <th>QQ</th>
  45.                 <th>邮箱</th>
  46.                 <th>操作</th>
  47.             </tr>
  48.             <c:forEach items="${users}" var="user" varStatus="s">
  49.                 <tr>
  50.                     <td><input type="checkbox" name="uid" value="${user.id}"></td>
  51.                     <%--value就是这条数据的id--%>
  52.                     <td>${s.count}</td>
  53.                     <td>${user.name}</td>
  54.                     <td>${user.gender}</td>
  55.                     <td>${user.age}</td>
  56.                     <td>${user.address}</td>
  57.                     <td>${user.qq}</td>
  58.                     <td>${user.email}</td>
  59.                     <td>
  60.                         <a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a>
  61.                         <a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id}); ">删除</a>
  62.                     </td>
  63.                 </tr>
  64.             </c:forEach>
  65.         </table>
  66.     </form>
复制代码
4、数据库字段部分

全网最详细的JavaWeb用户管理系统(详细源码讲解)-16.png


5、结语

该管理系统所用到的技术也就是上述中提到的技术,主要完成的的功能就是对数据的一些增、删、改、查。对于java web的开发是最根本的操作。该管理系统主要适宜小白,对于java大神当然可以忽略了,
在学习的过程中重点提醒做笔记,推荐的做笔记软件是typora
只用记录重点自己看得到懂的就好了eg:

全网最详细的JavaWeb用户管理系统(详细源码讲解)-17.jpg

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

萌妹子的霸气范
注册会员
主题 15
回复 25
粉丝 0
|网站地图
快速回复 返回顶部 返回列表