开源项目分享:基于Web的图书管理系统(附源码)

优采云 发布时间: 2022-07-02 14:27

  开源项目分享:基于Web的图书管理系统(附源码)

  图书管理系统就是利用计算机,结合互联网对图书进行结构化、自动化管理的一种软件,来提高对图书的管理效率。本系统采用Java+Servlet+Jsp 的方式实现基于web的图书管理系统。

  02 开发工具及相关技术2.1 Java技术

  Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台。有许多应用程序和 Web 站点只有在安装 Java 后才能正常工作,而且这样的应用程序和 Web 站点日益增多。Java 快速、安全、可靠。

  2.2 HTML、css、javascript技术

  HTML的英文全称是 Hypertext Marked Language,即超文本标记语言。使用HTML语言,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即现在所见到的网页。

  层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

  JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

  2.3 Servlet技术

  Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式的浏览和生成数据,生成动态Web内容。

  狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

  2.4 Eclipse开发工具

  Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

  2.5 MySql数据库

  MySql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

  03 系统功能描述

  系统的用户主要有两大类:一是图书管理系统的管理员,二是普通用户。根据用户类型的不同,将系统划分为普通用户端和管理员端,它们具有的主要功能如下:

  用户端

  图书查询:根据图书编号、图书名称查询图书信息,可查询图书的编号、名称、分类、作者、价格、在馆数量等。

  

  借阅信息:可查询图书的基本信息、借阅日期、截止还书日期、超期天数等。

  借阅历史:查询自己以往的借阅历史,包括哪些图书等具体信息。

  我的:查看*敏*感*词*,修改账户密码,退出系统。

  管理员端

  图书管理:根据图书编号、图书名称查询图书基本信息,添加、修改、删除图书。

  图书分类管理:根据分类名称查询图书分类信息,添加、修改、删除图书分类。

  图书借阅:展示所有正在借阅图书的信息。

  图书归还:展示所有已归还图书的信息。

  公告管理:向用户发布公告。

  读者管理:根据账号、姓名查询读者基本信息,添加、修改、删除读者信息。

  我的:查看*敏*感*词*,修改账户密码,退出系统。

  04 工程结构及其说明

  项目名称:manage_booksPackage包说明:

  05 主要功能详细设计与实现5.1 用户端--图书查询模块

  用户访问图书查询模块时显示当前可以借阅图书,有按图书名称查询图书信息的功能,可以进行借书操作。

  其中查询功能的Servlet代码如下:

  

  package com.cya.controller;<br />import java.io.IOException;<br />import java.util.ArrayList;<br />import javax.servlet.ServletException;<br />import javax.servlet.annotation.WebServlet;<br />import javax.servlet.http.HttpServlet;<br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;<br />import com.cya.dao.BookDao;<br />import com.cya.pojo.Book;<br />/**<br /> * Servlet implementation class selectServlet<br /> */<br />@WebServlet("/selectServlet")<br />public class selectServlet extends HttpServlet {<br />    private static final long serialVersionUID = 1L;<br /><br />    /**<br />     * @see HttpServlet#HttpServlet()<br />     */<br />    public selectServlet() {<br />        super();<br />        // TODO Auto-generated constructor stub<br />    }<br /><br />    /**<br />     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)<br />     */<br />    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br />        // TODO Auto-generated method stub<br />       //response.getWriter().append("Served at: ").append(request.getContextPath());<br /><br />    }<br /><br />    /**<br />     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)<br />     */<br />    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br />        // TODO Auto-generated method stub<br />       //doGet(request, response);<br />        request.setCharacterEncoding("UTF-8");<br />        response.setContentType("text/html;charset=UTF-8");<br />        //因为在管理员界面和读者界面都有查找功能,为了将查找的结果返回正确的页面,设置了tip,tip=1表示管理员界面<br />        int tip = Integer.parseInt(request.getParameter("tip"));<br />        String name = request.getParameter("name");<br />        BookDao bookdao = new BookDao();<br />        ArrayList data = bookdao.getLikeList(name);<br />        //将获取的结果存入请求中<br />        request.setAttribute("data", data);<br />        String url = "";<br />        //转发不同的界面<br />        if (tip == 1) {<br />            url = response.encodeURL("/books/admin/admin_books.jsp");<br />        } else {<br />            url = response.encodeURL("/books/user/select.jsp");<br />        }<br />        //将请求转发<br />        request.getRequestDispatcher(url).forward(request, response);<br />    }<br /><br />}<br />

  5.2 用户端--借阅信息模块

  当普通用户借阅完图书,会在该模块自动生成借阅信息,如借阅日期,归还日期,也可在该模块进行还书,如下图所示。

  其中,还书功能的Servlet代码如下:

  5.3 管理员端--图书管理模块

  管理员可以通过根据图书号 、图书名称,作者名称,出版社等查询图书信息。

  管理员登录系统以后,可以进行图书添加操作,这是管理员主要的输入信息部分,填写好各项信息后,单击保存按钮,系统将对这些信息进行处理。界面见下图所示:

  除此以外,管理员对已经添加好的图书信息有修改权限。

  其中,添加图书功能的代码如下:

  package com.cya.controller;<br />import java.io.IOException;<br />import javax.servlet.ServletException;<br />import javax.servlet.annotation.WebServlet;<br />import javax.servlet.http.HttpServlet;<br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;<br />import com.cya.dao.BookDao;<br />/**<br /> * Servlet implementation class AddBookServlet<br /> */<br />@WebServlet("/AddBookServlet")<br />public class AddBookServlet extends HttpServlet {<br />    private static final long serialVersionUID = 1L;<br /><br />    /**<br />     * @see HttpServlet#HttpServlet()<br />     */<br />    public AddBookServlet() {<br />        super();<br />        // TODO Auto-generated constructor stub<br />    }<br /><br />    /**<br />     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)<br />     */<br />    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br />        // TODO Auto-generated method stub<br />//        response.getWriter().append("Served at: ").append(request.getContextPath());<br />    }<br /><br />    /**<br />     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)<br />     */<br />    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br />        // TODO Auto-generated method stub<br />//        doGet(request, response);<br />        //设置编码类型<br />        request.setCharacterEncoding("UTF-8");<br />        response.setContentType("text/html;charset=UTF-8");<br />        //获取要添加图书的信息<br />        String card = request.getParameter("card");<br />        String name = request.getParameter("name");<br />        String type = request.getParameter("type");<br />        String autho = request.getParameter("autho");<br />        String press = request.getParameter("press");<br />        int num = Integer.parseInt(request.getParameter("num"));<br />        BookDao bookdao = new BookDao();<br />        //调用函数,存入图书<br />        bookdao.addBook(card, name, type, autho, press, num);<br />        response.sendRedirect("/manage_books/books/admin/admin_books.jsp");<br />    }<br /><br />}<br />

  5.4 管理员端--图书分类模块

  管理员在该界面可以增加、删除、修改图书分类信息,操作效果如图。

  修改图书分类功能的代码如下:

  package com.cya.controller;<br />import java.io.IOException;<br />import javax.servlet.ServletException;<br />import javax.servlet.annotation.WebServlet;<br />import javax.servlet.http.HttpServlet;<br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;<br />import com.cya.dao.BookDao;<br />import com.cya.dao.TypeDao;<br />/**<br /> * Servlet implementation class updateBookTypeServlet<br /> */<br />@WebServlet("/updateBookTypeServlet")<br />public class updateBookTypeServlet extends HttpServlet {<br />    private static final long serialVersionUID = 1L;<br /><br />    /**<br />     * @see HttpServlet#HttpServlet()<br />     */<br />    public updateBookTypeServlet() {<br />        super();<br />        // TODO Auto-generated constructor stub<br />    }<br /><br />    /**<br />     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)<br />     */<br />    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br />        // TODO Auto-generated method stub<br />//        response.getWriter().append("Served at: ").append(request.getContextPath());<br />    }<br /><br />    /**<br />     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)<br />     */<br />    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br />        // TODO Auto-generated method stub<br />//        doGet(request, response);<br />        //修改图书类型信息<br />        request.setCharacterEncoding("UTF-8");<br />        response.setContentType("text/html;charset=UTF-8");<br />        String name = request.getParameter("name");<br />        int tid = Integer.parseInt(request.getParameter("tid"));<br />        TypeDao typedao = new TypeDao();<br />        typedao.updateTypeBook(tid, name);<br />        response.sendRedirect("/manage_books/books/admin/admin_booksType.jsp");<br />    }<br /><br />}<br />

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线