SSM3

    技术2024-12-21  4

    话不多说上代码

    package com.ljx.service.impl; import com.ljx.DAO.UserDao; import com.ljx.bean.PageInfo; import com.ljx.bean.User; import com.ljx.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService implements IUserService { @Autowired private UserDao userDao; @Override public boolean login(String username, String password) { User user=userDao.findUserByUserName(username); if (user!=null && user.getPassword().equals(password)){ return true; } return false; } @Override public PageInfo<User> findAll(int currentPage,String username){ PageInfo<User>pageInfo=new PageInfo<>(); pageInfo.setSize(5); pageInfo.setCurrentPage(currentPage); int start= (currentPage-1)*5; List<User> userList=userDao.findAll(start,username); pageInfo.setList(userList); int tc=userDao.getTotalCount(username); int tp=(int) Math.ceil(tc/5.0); pageInfo.setTotalCount(tc); pageInfo.setTotalPage(tp); if(currentPage<1){ pageInfo.setCurrentPage(1); }else if(currentPage>tp){ } else { pageInfo.setCurrentPage(currentPage); } return pageInfo; } @Override public void deleteById(int id) { userDao.deleteById(id); } @Override public void addUser(User user) { userDao.add(user); } public void updateUser(User user) { userDao.update(user); } public User findOne(int id) { return userDao.selectById(id); } @Override public void deleteAll(List<Integer> ids) { userDao.deleteAll(ids); } } package com.ljx.service; import com.ljx.bean.PageInfo; import com.ljx.bean.User; import java.util.List; public interface IUserService { boolean login(String username,String password); PageInfo<User> findAll(int currentPage,String username); void deleteById(int id); void addUser(User user); User findOne(int id); void updateUser(User user); void deleteAll(List<Integer> ids); } package com.ljx.filter; import com.ljx.bean.User; import javax.servlet.*; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; public class LoginFiler implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest) servletRequest; HttpServletResponse response=(HttpServletResponse) servletResponse; HttpSession session=request.getSession(); User user=(User) session.getAttribute("user"); String uri=request.getRequestURI(); if(user==null&& uri.indexOf("login.do")==-1){ response.sendRedirect(request.getContextPath()+"../login.jsp"); }else { filterChain.doFilter(request,response); } } @Override public void destroy() { } } package com.ljx.DAO; import com.ljx.bean.User; import org.apache.ibatis.annotations.Param; import java.util.List; public interface UserDao { User findUserByUserName(String username); List<User> findAll(@Param("start") int start,@Param("username") String username); void deleteById(int id); void add(User user); User selectById(int id); void update(User user); int getTotalCount(@Param("username")String username); void deleteAll(@Param("ids") List<Integer> ids); } package com.ljx.controller; import com.ljx.bean.PageInfo; import com.ljx.bean.User; import com.ljx.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpSession; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping("/user") public class UserController { @Autowired private IUserService userService; @RequestMapping("/login.do") public ModelAndView login(User user, HttpSession session){ boolean flag = userService.login(user.getUsername(), user.getPassword()); ModelAndView modelAndView=new ModelAndView(); if(flag){ session.setAttribute("user",user); modelAndView.setViewName("main"); }else { modelAndView.setViewName("../failer"); } return modelAndView; } @RequestMapping("/findAll.do") public ModelAndView findAll(@RequestParam(defaultValue = "1") int currentPage,String username,@RequestParam(defaultValue = "0")int type,HttpSession session){ //当搜索的时候 /* if(username!=null && username!=""){ session.setAttribute("searchname",username); }else if(type==0) { username= (String) session.getAttribute("searchname"); }*/ if(type==1){ session.setAttribute("searchname",username); }else { username= (String) session.getAttribute("searchname"); } PageInfo<User> pageInfo=userService.findAll(currentPage,username); ModelAndView modelAndView=new ModelAndView(); modelAndView.addObject("pageInfo",pageInfo); modelAndView.setViewName("user-list"); return modelAndView; } @RequestMapping("/deleteById.do") public String delete(int id){ userService.deleteById(id); return "redirect:findAll.do"; } @RequestMapping("/add.do") public String add(User user){ userService.addUser(user); return "redirect:findAll.do"; } @RequestMapping("toUpdate.do") public ModelAndView toUpdate(int id){ User user=userService.findOne(id); ModelAndView modelAndView=new ModelAndView(); modelAndView.setViewName("user-update"); modelAndView.addObject("user",user); return modelAndView; } @RequestMapping("/update.do") public String update(User user){ userService.updateUser(user); return "redirect:findAll.do"; } @RequestMapping("deleteAll.do") public String deleteAll(String userList){ String[] strs = userList.split(","); List<Integer> ids=new ArrayList<>(); for(String s:strs){ ids.add(Integer.parseInt(s)); } userService.deleteAll(ids); return "redirect:findAll.do"; } } package com.ljx.bean; public class User { public User() { } public User(int id, String username, String password) { this.id = id; this.username = username; this.password = password; } public User(String username, String password) { this.username = username; this.password = password; } private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } } package com.ljx.bean; import java.util.List; public class PageInfo<T> { private List<T> list; private int totalPage; private int size; private int totalCount; private int currentPage; public List<T> getList() { return list; } public void setList(List<T> list) { this.list = list; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } @Override public String toString() { return "PageInfo{" + "list=" + list + ", totalPage=" + totalPage + ", size=" + size + ", totalCount=" + totalCount + ", currentPage=" + currentPage + '}'; } } <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.ljx.DAO.UserDao" > <select id="findUserByUserName" parameterType="String" resultType="com.ljx.bean.User"> select * from user where username=#{username} </select> <select id="findAll" parameterType="int" resultType="com.ljx.bean.User"> select * from user <if test="username!=null and username!=''"> where username LIKE "%"#{username}"%" </if> limit #{start},5 </select> <delete id="deleteById" parameterType="int" > delete from user where id=#{id} </delete> <insert id="addUser" parameterType="user"> insert into user(username,password) values(#{username},#{password}) </insert> <select id="findOne" parameterType="int" resultType="user"> select * from user where id=#{id} </select> <update id="updateUser" parameterType="user" > update user set username=#{username},password=#{password} where id=#{id} </update> <select id="getTotalCount" resultType="int"> select count(*) from user <if test="username!=null and username!=''"> where username LIKE "%"#{username}"%" </if> </select> <select id="findLike" resultType="user" parameterType="String"> select * from user where username LIKE "%"#{username}"%" </select> <delete id="deleteAll" parameterType="list"> delete from user where id in <foreach collection="ids" item="id" open="(" close=")" separator=","> #{id} </foreach> </delete> </mapper> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <!-- 页面meta --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>数据 - AdminLTE2定制版</title> <meta name="description" content="AdminLTE2定制版"> <meta name="keywords" content="AdminLTE2定制版"> <!-- Tell the browser to be responsive to screen width --> <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/iCheck/square/blue.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/morris/morris.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/select2/select2.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css"> </head> <body class="hold-transition skin-blue sidebar-mini"> <div class="wrapper"> <!-- 页面头部 --> <jsp:include page="header.jsp"></jsp:include> <!-- 页面头部 /--> <!-- 导航侧栏 --> <jsp:include page="aside.jsp"></jsp:include> <!-- 导航侧栏 /--> <!-- 内容区域 --> <div class="content-wrapper"> <!-- 内容头部 --> <section class="content-header"> <h1> 用户管理 <small>全部用户</small> </h1> <ol class="breadcrumb"> <li><a href="#"><i class="fa fa-dashboard"></i> 首页</a></li> <li><a href="#">用户管理</a></li> <li class="active">全部用户</li> </ol> </section> <!-- 内容头部 /--> <!-- 正文区域 --> <section class="content"> <!-- .box-body --> <div class="box box-primary"> <div class="box-header with-border"> <h3 class="box-title">列表</h3> </div> <div class="box-body"> <!-- 数据表格 --> <div class="table-box"> <!--工具栏--> <div class="pull-left"> <div class="form-group form-inline"> <div class="btn-group"> <button type="button" class="btn btn-default" title="新建" onclick="location.href='${pageContext.request.contextPath}/pages/user-add.jsp'" > <i class="fa fa-file-o"></i> 新建 </button> <button type="button" class="btn btn-default" title="删除" onclick="deleteAll()"> <i class="fa fa-refresh"></i> 删除 </button> </div> </div> </div> <form action="${pageContext.request.contextPath}/user/findAll.do?type=1" method="post"> <div class="col-md-4 data1"> <input type="text" class="form-control" name="username" placeholder="username" value=""> </div> <button type="submit" class="btn bg-maroon">搜索</button> </form> <!--工具栏/--> <!--数据列表--> <table id="dataList" class="table table-bordered table-striped table-hover dataTable"> <thead> <tr> <th class="" style="padding-right: 0px"><input id="selall" type="checkbox" class="icheckbox_square-blue"> </th> <th class="sorting_asc">ID</th> <th class="sorting_desc">用户名</th> <th class="sorting_asc sorting_asc_disabled">密码</th> <th class="text-center">操作</th> </tr> </thead> <tbody> <c:forEach items="${pageInfo.list}" var="user"> <tr> <td><input id="ids" name="ids" type="checkbox" value="${user.id}"></td> <td>${user.id}</td> <td>${user.username}</td> <td>${user.password}</td> <td class="text-center"> <a href="${pageContext.request.contextPath}/user/toUpdate.do?id=${user.id}" class="btn bg-olive btn-xs">更新</a> <a href="${pageContext.request.contextPath}/user/deleteById.do?id=${user.id}" class="btn bg-olive btn-xs">删除</a> <a href="#" class="btn bg-olive btn-xs">添加角色</a> </td> </tr> </c:forEach> </tbody> <!-- <tfoot> <tr> <th>Rendering engine</th> <th>Browser</th> <th>Platform(s)</th> <th>Engine version</th> <th>CSS grade</th> </tr> </tfoot>--> </table> <!--数据列表/--> </div> <!-- 数据表格 /--> </div> <!-- /.box-body --> <div class="box-tools pull-right"> <ul class="pagination"> <li><a href="${pageContext.request.contextPath}/user/findAll.do" aria-label="Previous">首页</a></li> <li><a href="${pageContext.request.contextPath}/user/findAll.do?currentPage=${pageInfo.currentPage-1}">上一页</a></li> <c:forEach begin="1" end="${pageInfo.totalPage}" var="pageNum"> <li><a href="${pageContext.request.contextPath}/user/findAll.do?currentPage=${pageNum}">${pageNum}</a></li> </c:forEach> <li><a href="${pageContext.request.contextPath}/user/findAll.do?currentPage=${pageInfo.currentPage+1}">下一页</a></li> <li><a href="${pageContext.request.contextPath}/user/findAll.do?currentPage=${pageInfo.totalPage}" aria-label="Next">尾页</a></li> </ul> </div> </div> <!-- /.box-footer--> </section> <!-- 正文区域 /--> </div> <!-- @@close --> <!-- 内容区域 /--> <!-- 底部导航 --> <footer class="main-footer"> <div class="pull-right hidden-xs"> <b>Version</b> 1.0.8 </div> <strong>Copyright &copy; 2014-2017 <a href="http://www.itcast.cn">研究院研发部</a>. </strong> All rights reserved. </footer> <!-- 底部导航 /--> </div> <script src="../plugins/jQuery/jquery-2.2.3.min.js"></script> <script src="../plugins/jQueryUI/jquery-ui.min.js"></script> <script> $.widget.bridge('uibutton', $.ui.button); </script> <script src="../plugins/bootstrap/js/bootstrap.min.js"></script> <script src="../plugins/raphael/raphael-min.js"></script> <script src="../plugins/morris/morris.min.js"></script> <script src="../plugins/sparkline/jquery.sparkline.min.js"></script> <script src="../plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script> <script src="../plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script> <script src="../plugins/knob/jquery.knob.js"></script> <script src="../plugins/daterangepicker/moment.min.js"></script> <script src="../plugins/daterangepicker/daterangepicker.js"></script> <script src="../plugins/daterangepicker/daterangepicker.zh-CN.js"></script> <script src="../plugins/datepicker/bootstrap-datepicker.js"></script> <script src="../plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js"></script> <script src="../plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"></script> <script src="../plugins/slimScroll/jquery.slimscroll.min.js"></script> <script src="../plugins/fastclick/fastclick.js"></script> <script src="../plugins/iCheck/icheck.min.js"></script> <script src="../plugins/adminLTE/js/app.min.js"></script> <script src="../plugins/treeTable/jquery.treetable.js"></script> <script src="../plugins/select2/select2.full.min.js"></script> <script src="../plugins/colorpicker/bootstrap-colorpicker.min.js"></script> <script src="../plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.zh-CN.js"></script> <script src="../plugins/bootstrap-markdown/js/bootstrap-markdown.js"></script> <script src="../plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js"></script> <script src="../plugins/bootstrap-markdown/js/markdown.js"></script> <script src="../plugins/bootstrap-markdown/js/to-markdown.js"></script> <script src="../plugins/ckeditor/ckeditor.js"></script> <script src="../plugins/input-mask/jquery.inputmask.js"></script> <script src="../plugins/input-mask/jquery.inputmask.date.extensions.js"></script> <script src="../plugins/input-mask/jquery.inputmask.extensions.js"></script> <script src="../plugins/datatables/jquery.dataTables.min.js"></script> <script src="../plugins/datatables/dataTables.bootstrap.min.js"></script> <script src="../plugins/chartjs/Chart.min.js"></script> <script src="../plugins/flot/jquery.flot.min.js"></script> <script src="../plugins/flot/jquery.flot.resize.min.js"></script> <script src="../plugins/flot/jquery.flot.pie.min.js"></script> <script src="../plugins/flot/jquery.flot.categories.min.js"></script> <script src="../plugins/ionslider/ion.rangeSlider.min.js"></script> <script src="../plugins/bootstrap-slider/bootstrap-slider.js"></script> <script> $(document).ready(function() { // 选择框 $(".select2").select2(); // WYSIHTML5编辑器 $(".textarea").wysihtml5({ locale : 'zh-CN' }); }); // 设置激活菜单 function setSidebarActive(tagUri) { var liObj = $("#" + tagUri); if (liObj.length > 0) { liObj.parent().parent().addClass("active"); liObj.addClass("active"); } } $(document) .ready( function() { // 激活导航位置 setSidebarActive("admin-datalist"); // 列表按钮 $("#dataList td input[type='checkbox']") .iCheck( { checkboxClass : 'icheckbox_square-blue', increaseArea : '20%' }); // 全选操作 $("#selall") .click( function() { var clicks = $(this).is( ':checked'); if (!clicks) { $( "#dataList td input[type='checkbox']") .iCheck( "uncheck"); } else { $( "#dataList td input[type='checkbox']") .iCheck("check"); } $(this).data("clicks", !clicks); }); }); function deleteAll() { var checkedNum=$("input[name='ids']:checked").length; alert(checkedNum); if(checkedNum==0){ alert("请至少选择一个进行删除!!!"); return; } if(confirm("确认要删除这些用户吗?")){ var userList=new Array(); $("input[name='ids']:checked").each( function () { userList.push($(this).val()) } ); alert(userList); $.ajax({ type:"post", url: "${pageContext.request.contextPath}/user/deleteAll.do", data:{userList:userList.toString()}, success:function () { alert("删除成功"); location.reload(); }, error:function () { alert("删除失败"); } }); } } </script> </body> </html>
    Processed: 0.060, SQL: 9