Java项目:图书管理系统(java+JSP+Servlet+JavaScript+Mysql)

您所在的位置:网站首页 管理员登录功能怎么实现的 Java项目:图书管理系统(java+JSP+Servlet+JavaScript+Mysql)

Java项目:图书管理系统(java+JSP+Servlet+JavaScript+Mysql)

2023-05-24 07:34| 来源: 网络整理| 查看: 265

源码获取:俺的博客首页 "资源" 里下载! 项目介绍

本项目为后台管理项目;

管理员角色包含以下功能: 管理员登录,系统设置,管理员管理,办证费用管理,书架管理,读者类型管理,读者管理,图书管理,图书类型管理,图书借阅,图书归还,图书续借,图书查询等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  5.数据库:MySql 5.7版本; 6.是否Maven项目:否;

技术栈

JSP+CSS+JavaScript+mysql+servlet

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中connDB.properties及core/ConnDB.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入http://localhost:8080/jsp_online_library_sys/ 登录 注:Tomcat中配置项目路径必须为jsp_online_library_sys,否则会有问题; 管理员账号/密码:admin/111

 

 

 

 

 

用户图书管理控制层:  @Controller @RequestMapping("/user/ch") public class UserBookController { // 注入 @Autowired private LibraryService libraryService; @Autowired private LibraryCategoryService libraryCategoryService; @Autowired private CommentService commentService; @Autowired private TbOrderMapper orderMapper; @Autowired private TbRecordMapper recordMapper; @Value("${LOGIN_USER}") private String LOGIN_USER; // 当前登录用户的 session 存储 属性名 @RequestMapping("/user_bookList") public String toLibraryListByCid(TbLibraryQuery libraryQuery, PageCount pageCount, Model model, HttpSession session) { if (libraryQuery == null || libraryQuery.getCateId() == null) { libraryQuery = new TbLibraryQuery(); libraryQuery.setCateId((Integer) session.getAttribute("currentCategory")); } // 根据 类目 id // 若 当前 类目 为 父类目 则获取 其 下面 的 所有子类目 // 若 当前 类目 为 子类目 则获取 其 同级 类目 List categoryList = libraryCategoryService.getCategoryByCid(libraryQuery.getCateId()); // 获取当前类目信息 TbCategory currentCategory = libraryCategoryService.getCategoryById(libraryQuery.getCateId()); // 按照条件进行查询 PageCount libraryPageCount = libraryService.findLibraryByAll(libraryQuery, pageCount); // model 将数据设置到域中 model.addAttribute("subCategoryList", categoryList); model.addAttribute("libraryPageCount", libraryPageCount); // 默认 if (currentCategory == null) { currentCategory = new TbCategory(); currentCategory.setId(0); } session.setAttribute("currentCategory", currentCategory.getId()); return "/user/user_bookList"; } /** * 通过 图书 id 查询 图书详细信息 * * @param id * @return */ @RequestMapping("/bookId") public String toBookInfo(int id, Model model) { BookExt bookInfo = libraryService.getBookInfoById(id); // 将 时间戳 进行转换 Long dateSS = bookInfo.getLibrary().getCreatedate(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String formatDate = simpleDateFormat.format(new Date(dateSS * 1000)); bookInfo.setFormatDate(formatDate); // 通过 图书id 获取 回复信息 List commentExts = commentService.findCommentByBookId(id); // 将 查询的 图书信息 设置到 域 中 model.addAttribute("bookInfo", bookInfo); // 将 回复信息 设置到 域 汇总 model.addAttribute("commentExts", commentExts); return "/user/bookDetail"; } /** * 用于 借阅 图书 操作 * * @param session 用于 取 用户信息 * @param order 用户借阅关联信息 * @return */ @RequestMapping("/jieyue_book") public String jieyueBook(HttpSession session, Model model, String oid, String kkid, TbOrder order) { if (null != kkid) { TbRecord tbRecord = recordMapper.selectByPrimaryKey(Integer.valueOf(kkid)); tbRecord.setReturnbook(2); //2代表挂失 recordMapper.updateByPrimaryKey(tbRecord); model.addAttribute("successMsg", "图书挂失成功"); return "errorMsg"; } if (null != oid) { TbRecord tbOrder = recordMapper.selectByPrimaryKey(Integer.valueOf(oid)); // 插入数据 tbOrder.setBackdate(tbOrder.getBackdate() + 3 * 30 * 24 * 60 * 60); recordMapper.updateByPrimaryKey(tbOrder); model.addAttribute("successMsg", "续借三个月成功"); return "errorMsg"; } // 获取 session 中的用户信息 ActiveUser activeUser = (ActiveUser) session.getAttribute("activeUser"); TbUser tbUser = new TbUser(); tbUser.setId(activeUser.getUserid()); order.setUserId(tbUser.getId()); // 插入数据 libraryService.jieyueBookById(order); return "redirect:/user/ch/bookId.action?id=" + order.getBookId(); } @RequestMapping("/commitInfo") @ResponseBody public String commitComment(HttpSession session, TbComment comment) { // 获取 session 中的用户信息 ActiveUser activeUser = (ActiveUser) session.getAttribute("activeUser"); TbUser tbUser = new TbUser(); tbUser.setId(activeUser.getUserid()); comment.setUserId(tbUser.getId()); libraryService.addCommentInfo(comment); return "ok"; } } 登录管理控制层: @Controller @RequestMapping("/login") public class Login_LoginController { @Autowired private Login_loginValidation login_loginValidation; @RequestMapping("/login") public String login(Model model, HttpSession session, String user, String pwd, String passwd2, String tel, String authcode, String statu) throws Exception { //提示信息 String msg; //跳转页面 String url; //登录 ActiveUser activeUser = new ActiveUser(); TbUser tbUser = new TbUser(); if ("1".equals(statu)) { activeUser = this.login_loginValidation.authenticat(user, pwd); if (activeUser == null) { msg = "用户名或密码错误!"; url = "/login.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); return "user/error"; } session.setAttribute("activeUser", activeUser); return "redirect:/user/userSystem.action"; } else if ("2".equals(statu)) { //注册 //获取生成的验证码 String validateCode = (String) session.getAttribute("randomCode"); //判断用户名或密码是否为空 if ("".equals(user) || user == null || "".equals(pwd) || pwd == null) { msg = "用户名或密码不能为空!"; url = "/login.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); } //判断两次密码是否不一致 if (!pwd.equals(passwd2)) { msg = "您输入的两次密码不一致!"; url = "/login.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); } //判断手机号是否为空 if (!"".equals(tel) || tel == null) { msg = "手机号不能为空!"; url = "/login.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); } //判断验证码是否错误 if (!validateCode.equals(authcode)) { msg = "您输入的验证码错误!"; url = "/login.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); return "user/error"; } //如果都正确,注册用户 tbUser.setUsername(user); tbUser.setPassword(pwd); tbUser.setTelnum(tel); long nowTime = System.currentTimeMillis() / 1000; tbUser.setRegisterdate(nowTime); int result = this.login_loginValidation.addUser(tbUser); //判断是否注册成功 if (0 == result) { msg = "注册失败,用户名已存在!"; url = "/login.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); return "user/error"; } //注册成功,将用户名放入seesion中 tbUser = this.login_loginValidation.findUserByUserName(user); activeUser.setUserid(tbUser.getId()); activeUser.setUsername(tbUser.getUsername()); activeUser.setHeadImg(tbUser.getHeadimg()); session.setAttribute("activeUser", activeUser); msg = "注册成功!正在为您登录,请稍候..."; url = "/user/userSystem.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); return "user/error"; } else { msg = "参数错误!"; url = "/login.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); return "user/error"; } } //账号退出登录 @RequestMapping("/logout") public String logout(HttpSession session) throws Exception { session.invalidate(); return "redirect:/login.action"; } // 管理员登录 @RequestMapping("/adminlogin") public String adminlogin(Model model, HttpSession session, String adminuser, String adminpassword) throws Exception { String msg; String url; //判断用户名为空 if ("".equals(adminuser) || adminuser == null || "".equals(adminpassword) || adminpassword == null) { msg = "用户名或密码不能为空!"; url = "/admin.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); return "user/error"; } ActiveAdmin activeAdmin = this.login_loginValidation.authenticatAdmin(adminuser, adminpassword); if (activeAdmin == null) { msg = "用户名或密码错误!"; url = "/admin.action"; model.addAttribute("msg", msg); model.addAttribute("url", url); return "user/error"; } session.setAttribute("activeAdmin", activeAdmin); return "redirect:/admin/admin.action"; } } 后台图书类别管理控制层: @Controller @RequestMapping("/admin/ch/category") public class CategoryController { //注入 @Autowired private LibraryCategoryService libraryCategoryService; /** * 添加 图书类目 * * @param category 图书类目信息 * @param session 添加人 * @return url * @author hiseico */ @RequestMapping(value = "/addCategory", method = RequestMethod.POST) public String addCategory(TbCategory category, HttpSession session, Model model) { List categoryList = libraryCategoryService.getCategoryAll(); boolean is = false; for (TbCategory tbCategory : categoryList) { if (category.getCatname().equals(tbCategory.getCatname())) { is = true; break; } } if (!is) { // 添加 数据到 数据库,并 修改 父类目 libraryCategoryService.addBookCategory(category, session); } else { model.addAttribute("errorMsg", "类目已经存在"); return "errorMsg"; } return "redirect:/admin/ch/loan_BookClassify.action"; } /** * 删除类目信息 * * @param id * @return */ @RequestMapping(value = "/delCategory", method = RequestMethod.GET) public String delCategory(int id) { // 通过 类目id 删除数据 libraryCategoryService.delBookCategoryById(id); return "redirect:/admin/ch/loan_BookClassify.action"; } /** * 修改 类目关系 * * @param category * @return */ @RequestMapping(value = "/updateCategory", method = RequestMethod.POST) public String updateCategory(TbCategory category) { return "redirect:/admin/ch/loan_BookClassify.action"; } @RequestMapping("/toUpdatePage") @ResponseBody public TbCategory toUpdatePage(int id) { return libraryCategoryService.getCategoryById(id); } } 源码获取:俺的博客首页 "资源" 里下载!


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3