基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

码农世界 2024-05-30 后端 86 次浏览 0个评论

👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频

1 、功能描述

  基于jsp的图书馆管理系统8拥有两种角色,分别为管理员和学生,具体功能如下:

管理员:图书管理、用户管理、违规处理、权限管理、个人信息修改

学生:借阅图书、归还图书、借阅历史、处罚记录、个人信息修改

1.1 背景描述

  图书馆管理系统是一种针对图书馆设计的软件系统,旨在简化和改进图书馆资源的管理、借阅和归还流程。该系统通常包括图书信息管理、借阅记录跟踪、预约服务、罚款管理以及读者信息管理等功能。通过该系统,图书管理员能够更有效地管理图书馆藏书,包括采购、编目和库存管理,同时帮助读者更便捷地查找并借阅所需图书。此外,系统还提供了自助借还书服务,缩短了借书排队时间,提高了用户体验。一些系统还整合了电子书馆功能,允许用户在线阅读或下载电子书籍。另外,通过数据分析功能,系统可以为图书馆提供借阅趋势、流行书籍等信息,帮助图书馆优化资源配置。图书馆管理系统的使用不仅提高了图书馆工作效率,也为读者提供了更便捷的服务,促进了图书馆的数字化发展。

2、项目技术

后端框架: Servlet、mvc模式、Javabean

前端框架:Layui、jsp、css、JavaScript、JQuery

2.1 MVC

  MVC(Model-View-Controller)框架是一种用于构建Web应用程序的软件架构模式。它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据逻辑,包括数据库交互、数据处理和业务规则。视图负责用户界面的呈现,将数据以易于理解的形式展示给用户。控制器充当中间人,接收用户输入并调用相应的模型和视图来完成用户请求。MVC框架使代码分离,提高了应用程序的可维护性和扩展性。开发人员可以独立地修改模型、视图或控制器,而不会影响其他部分。这种分离也有助于多人合作开发项目。MVC框架还促进了前后端的分离,使前端工程师和后端工程师能够更好地协同工作,从而提高了开发效率。

2.2 mysql

  MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。

3、开发环境

  • JAVA版本:JDK1.8,其它版本理论上可以
  • IDE类型:IDEA、Eclipse、Myeclipse都可以。推荐IDEA与Eclipse
  • tomcat版本:Tomcat 7.x、8.x、9.x、10.x版本均可
  • 数据库版本:MySql 5.x
  • maven版本:无限制
  • 硬件环境:Windows 或者 Mac OS

    4、功能截图+视频演示+文档目录

    4.1 登录与注册

    基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

    基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

    学生可以通过上述界面登录、注册,注册后会自动分配ID号

    4.2 学生模块

    基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

    基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

    基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

    基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

    • 借阅图书:学生可以通过关键字模糊查询图书信息,然后借阅图书。借阅图书时,需要判断该学生现已借阅的图书数量,若超过3本,则暂时不能借书;若尚有未缴纳罚金,暂时不能借书;否则点击“确认借阅 ”,即完成借阅。

    • 归还图书:学生可以通过书号归还图书,以及查看当前借书信息

    • 借阅历史:学生可以查看借阅图书历史记录,包括当前已借阅的图书和已归还的图书,记录内容包括读者id、书籍信息和借阅的开始日期以及结束日期;若书籍尚未归还,“结束日期”后会显示“尚未归还”

    • 处罚记录:学生可以查看自己的违规记录,如若相关书籍仍未进行线下归还且学生也未缴纳罚金,则提示尚未缴纳罚金;否则显示该条借阅记录的超期天数。

    • 个人信息修改:学生可以修改个人信息,包括修改姓名、密码、性别、电话等,其中用户id不可修改。

      4.3 管理员模块

      基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

      基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

      基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

      • 图书管理:管理员可以通过关键字模糊查询图书信息,还可以对图书进行增加、删除、修改等操作

      • 用户管理:管理员可以通过ID号和姓名查询学生信息,并对学生进行增加、删除、修改等操作,若“黑名单”功能被启用,可以点击“加入黑名单”、“移除黑名单”来控制用户的登录权限。

      • 违规处理:管理员可以根据学生ID查询其违规记录,并缴纳罚款,用户缴纳罚款后,可点击“缴纳罚款”,撤销对该生的处罚,恢复其正常借阅和归还权利;

      • 权限管理:管理员可以设置最长借阅天数和是否开启黑名单功能

      • 个人信息修改:管理员可以个人信息

        4.4 项目设计文档目录

        基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

        5 、核心代码实现

        5.1 注册代码

        package servelet;
        import java.io.IOException;
        import java.io.PrintWriter;
        import java.lang.reflect.InvocationTargetException;
        import java.sql.SQLException;
        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;
        import DB.Database;
        /**
         * Servlet implementation class register
         */
        @WebServlet("/register")
        public class register extends HttpServlet {
        	private static final long serialVersionUID = 1L;
               
            /**
             * @see HttpServlet#HttpServlet()
             */
            public register() {
                super();
                // TODO Auto-generated constructor stub
            }
        	/**
        	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
        	 */
        	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        		// TODO Auto-generated method stub
        		response.getWriter().append("Served at: ").append(request.getContextPath());
        	}
        	/**
        	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
        	 */
        	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        		// TODO Auto-generated method stub
        		response.setContentType("text/html;charset=UTF-8");
        		PrintWriter out=response.getWriter();
        		request.setCharacterEncoding("UTF-8"); 
        		byte b1[]=request.getParameter("name").getBytes("UTF-8");
        		String name=new String(b1,"UTF-8");
        		byte b2[]=request.getParameter("pwd").getBytes("UTF-8");
        		String pwd=new String(b2);
        		byte b3[]=request.getParameter("tel").getBytes("UTF-8");
        		String tel=new String(b3,"UTF-8");
        		byte b4[]=request.getParameter("sex").getBytes("UTF-8");
        		String sex=new String(b4,"UTF-8");
        		int id=0;
        		HttpSession session=request.getSession();  
        		if(request.getParameter("id")!=null)
        		{
        		byte b5[]=request.getParameter("id").getBytes("UTF-8");
        		id=Integer.parseInt(new String(b5,"UTF-8"));
        		}
        		if(id>0)//修改个人信息
        		{
        			 session=request.getSession();
        			
        				try {
        					Database.getDatabase().modify_info(String.valueOf(id), pwd, name, sex, tel,(String) session.getAttribute("identity"));
        				} catch (InstantiationException | IllegalAccessException | InvocationTargetException
        						| NoSuchMethodException | SQLException e) {
        					// TODO Auto-generated catch block
        					e.printStackTrace();
        					session.setAttribute("message", "修改信息失败!!!密码需要4位字符以上,电话需要11位数字!!!");
        					response.sendRedirect("search?search_user="+id); 
        					return;
        				}
        		
        			
        			response.sendRedirect("search?search_user="+id);
        		}
        		else//注册
        		{
        	
        			try {
        				id=Database.getDatabase().insertreader(pwd,name,sex,tel);
        			} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException
        					| SQLException e) {
        				// TODO Auto-generated catch block
        				e.printStackTrace();
        				session.setAttribute("message", "注册失败!!!密码需要4位字符以上,电话需要11位数字!!!");
        				response.sendRedirect("login.jsp"); 
        				return;
        			}
        		
        		
        		out.print("注册成功,您的id是:"+id+"
        请妥善保管您的id"); response.setHeader("Refresh","2;login.jsp"); } } }

        5.2 其它核心代码

        package servelet;
        import java.io.IOException;
        import java.io.PrintWriter;
        import java.lang.reflect.InvocationTargetException;
        import java.sql.SQLException;
        import javax.servlet.ServletException;
        import javax.servlet.annotation.WebServlet;
        import javax.servlet.http.Cookie;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        import javax.servlet.http.HttpSession;
        import DB.Database;
        /**
         * Servlet implementation class login
         */
        @WebServlet("/login")
        public class login extends HttpServlet {
        	private static final long serialVersionUID = 1L;
               
            /**
             * @see HttpServlet#HttpServlet()
             */
            public login() {
                super();
                // TODO Auto-generated constructor stub
            }
        	/**
        	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
        	 */
        	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        		// TODO Auto-generated method stub
        		response.getWriter().append("Served at: ").append(request.getContextPath());
        	}
        	/**
        	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
        	 */
        	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        		response.setContentType("text/html;charset=UTF-8");
        		request.setCharacterEncoding("UTF-8"); 
        		PrintWriter out=response.getWriter();
        		byte b1[]=request.getParameter("id").getBytes("UTF-8");
        		String id=new String(b1,"UTF-8");
        		byte b2[]=request.getParameter("pwd").getBytes("UTF-8");
        		String pwd=new String(b2);
        		byte b3[]=request.getParameter("identity").getBytes("UTF-8");
        		String identity=new String(b3);
        		boolean is_punished = false;
        			String name = null;
        			try {
        				name = Database.getDatabase().checklogin(id, pwd, identity);
        				 is_punished =Database.getDatabase().is_punished(id);//查看是否存在未缴款记录
        			} catch (InstantiationException | IllegalAccessException | InvocationTargetException
        					| NoSuchMethodException | SQLException e) {
        				// TODO Auto-generated catch block
        				e.printStackTrace();
        			}
        			
        			if(name.equals(""))
        				{
        				HttpSession session=request.getSession();  
        				session.setAttribute("message", "登录失败!!!");
        				response.sendRedirect("login.jsp");
        				}
        			else
        			{
        				HttpSession session=request.getSession();   
        				session.setAttribute("id",id);//登陆成功,在session中存入已经登陆用户名
        				session.setAttribute("name", name);
        				session.setAttribute("identity",identity);//登陆成功,在session中存入身份
        				if(is_punished)
        				session.setAttribute("is_punished", true);
        				else
        				session.setAttribute("is_punished", false);
        				Cookie cookie1=new Cookie("id",id);//用户名和密码存入cookie
        				Cookie cookie2=new Cookie("pwd",pwd);
        				response.addCookie(cookie1);
        				response.addCookie(cookie2);
        				session.setAttribute("success","登陆成功!!!");
        				session.setAttribute("message", null);
        				if(identity.equals("reader"))
        				response.sendRedirect("Homepage_reader.jsp"); 
        				else
        					response.sendRedirect("Homepage_admin.jsp"); 
        			}
        		
        	}
        	}
        

        6 、功能视频演示

        基于SSM的图书馆管理系统

        7 、 获取方式

        👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:图书馆👇🏻

        基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)

转载请注明来自码农世界,本文标题:《基于jsp的图书馆管理系统的设计与实现 (含源码+sql+视频导入教程+文档)》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,86人围观)参与讨论

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

Top