# library-reservation **Repository Path**: kohler19/library-reservation ## Basic Information - **Project Name**: library-reservation - **Description**: 经日常观察及同学间和相关网络平台的关注,发现在我校的图书馆的自习座 位的使用上存在较大的问题,尤其占座的情况极为突出,并且因此也产生了座位 的利用率不高,“有空不得用”的现象一直凸出存在。为有效解决当前的占座情 况和座位利用率不高的现象,座位预约系统应运开发,通过座位预约系统可以对 座位进行管理和有效的使用,进一步解决当前存在的乱象和问题,成为方便大家 的一个工具。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-03-24 - **Last Updated**: 2023-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # library-reservation ## 介绍 经日常观察及同学间和相关网络平台的关注,发现在我校的图书馆的自习座 位的使用上存在较大的问题,尤其占座的情况极为突出,并且因此也产生了座位 的利用率不高,“有空不得用”的现象一直凸出存在。为有效解决当前的占座情 况和座位利用率不高的现象,座位预约系统应运开发,通过座位预约系统可以对 座位进行管理和有效的使用,进一步解决当前存在的乱象和问题,成为方便大家 的一个工具。 ## 软件架构 MVC 模式和使用 MVC模式(Model-View-Controller),是系统分为三个基本部分:模型(Model)、 视图(View)和控制器(Controller): 可以理解为:JSP 充当视图,Servlet 充当控制器,JavaBeans 充当模型。 1.View 层(JSP),前台交互,比如我们注册时的数据等等,serlvet 就是与前台数 据进行交互的 2.Contrller 层(servlet 充当):Model 与 View 之间沟通的桥梁, 这个层有 业务处理,用户的注册登录就可以看做是 User 的业务,我们就需要将相关的处理 代码写到这个层中。 3.Model 层:实现系统的业务逻辑,即 javaBean,常见的就是封装对象的属 性、数据库连接操作等。 常规会写一个 dao 层,是属于 mvc 里面 Model 层抽出来。目的就是更单纯 的和数据库打交道,将 servlet 的数据和数据库进行交互。 ## 主要的方法使用 ### 验证码 [利用Hutool-(Java工具类)实现验证码校验](https://www.cnblogs.com/kohler21/p/16793690.html) ```java package com.kailong.servlet; import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.LineCaptcha; import cn.hutool.db.Session; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; @WebServlet("/imageGenerate") public class ImageGenerate extends HttpServlet { public void doGet (HttpServletRequest request,HttpServletResponse response) { LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(80,20,4,25); response.setContentType("image/jpeg"); response.setHeader("Pragma", "No-cache"); try{ lineCaptcha.write(response.getOutputStream()); String code = lineCaptcha.getCode(); request.getSession().setAttribute("piccode",code); response.getOutputStream().close(); }catch (IOException e){ e.printStackTrace(); } } } ``` ### 即时校验验证码 [ AJAX 实现的页面即时校验验证码](https://www.cnblogs.com/kohler21/p/16911509.html) ```html ``` ```java package com.kailong.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet("/CodeAjax") public class CodeAjax extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String Usercode = request.getParameter("Usercode"); String code = (String)request.getSession().getAttribute("piccode"); String res = ""; if (code.equals(Usercode)) { res = "yes"; } else { res = "no"; } PrintWriter out = response.getWriter(); out.print(res); out.flush(); out.close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` ## 详细设计说明 ### 数据库设计 学生信息表 ![输入图片说明](imgs/17image.png) 管理员信息表 ![输入图片说明](imgs/18image.png) 座位信息表 ![输入图片说明](imgs/01Snipaste_2023-04-01_10-35-28.png) 预约 信息表 ![输入图片说明](imgs/002image.png) 建议 信息表 ![输入图片说明](imgs/003image.png) ## 项目文件介绍 studentAdvice.jsp-学生反馈建议 studentAdviceSelect.jsp-学生查看建议 studentChangePwd.jsp-学生修改密码 studentManage.jsp-学生的管理页面 studentRegister.jsp-学生注册页面 studentSearchReserve.jsp-学生查看预约页面 studentSeatReserve.jsp-学生预约页面 studentSeatSelectAll.jsp-学生查看座位页面 adminAdviceSelect.jsp-管理员查看建议页面 adminChangePwd.jsp-管理员修改密码页面 adminManage.jsp-管理员的管理页面 adminSeatAdd.jsp-管理员添加座位页面 adminSeatModify.jsp-管理员修改座位页面 adminSeatSelect.jsp-管理员查看座位页面 adminStudentAdd.jsp-管理员添加学生页面 adminStudentSelect.jsp-管理员查看学生页面 adminStudentUpdate.jsp-管理员修改学生页面 adminLogin.jsp-管理员登录页面 index.jsp-系统首页 ## 项目页面展示 index.jsp-系统首页 ![输入图片说明](imgs/1image.png) studentAdvice.jsp-学生反馈建议 ![输入图片说明](imgs/2image.png) studentAdviceSelect.jsp-学生查看建议 ![输入图片说明](imgs/3image.png) studentChangePwd.jsp-学生修改密码 ![输入图片说明](imgs/4image.png) studentManage.jsp-学生的管理页面 ![输入图片说明](imgs/5image.png) studentRegister.jsp-学生注册页面 ![输入图片说明](imgs/6image.png) studentSearchReserve.jsp-学生查看预约页面 ![输入图片说明](imgs/7image.png) studentSeatReserve.jsp-学生预约页面 ![输入图片说明](imgs/8image.png) studentSeatSelectAll.jsp-学生查看座位页面 ![输入图片说明](imgs/9image.png) adminAdviceSelect.jsp-管理员查看建议页面 ![输入图片说明](imgs/10image.png) adminManage.jsp-管理员的管理页面 ![输入图片说明](imgs/11image.png) adminSeatAdd.jsp-管理员添加座位页面 ![输入图片说明](imgs/12image.png) adminSeatModify.jsp-管理员修改座位页面 ![输入图片说明](imgs/13image.png) adminSeatSelect.jsp-管理员查看座位页面 ![输入图片说明](imgs/14image.png) adminStudentSelect.jsp-管理员查看学生页面 ![输入图片说明](imgs/15image.png) adminLogin.jsp-管理员登录页面 ![输入图片说明](imgs/16image.png)