圖書管理系統就是利用計算機,結合互聯網對圖書進行結構化、自動化管理的一種軟件,來提升對圖書的管理效率。本系統採用Java+Servlet+Jsp 的方式實現基於web的圖書管理系統。javascript
Java 是由 Sun Microsystems 在 1995 年首先發布的編程語言和計算平臺。有許多應用程序和 Web 站點只有在安裝 Java 後才能正常工做,並且這樣的應用程序和 Web 站點日益增多。Java 快速、安全、可靠。從筆記本電腦到數據中心,從遊戲控制檯到科學超級計算機,從手機到互聯網,Java 無處不在。css
HTML的英文全稱是 Hypertext Marked Language,即超文本標記語言。HTML是由Web的發明者 Tim Berners-Lee和同事 Daniel W. Connolly於1990年創立的一種標記語言,它是標準通用化標記語言SGML的應用。用HTML編寫的超文本文檔稱爲HTML文檔,它能獨立於各類操做系統平臺(如UNIX, Windows等)。使用HTML語言,將所須要表達的信息按某種規則寫成HTML文件,經過專用的瀏覽器來識別,並將這些HTML文件「翻譯」成能夠識別的信息,即如今所見到的網頁。html
層疊樣式表(英文全稱:Cascading Style Sheets)是一種用來表現HTML(標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等文件樣式的計算機語言。CSS不只能夠靜態地修飾網頁,還能夠配合各類腳本語言動態地對網頁各元素進行格式化。CSS 可以對網頁中元素位置的排版進行像素級精確控制,支持幾乎全部的字體字號樣式,擁有對網頁對象和模型樣式編輯的能力。java
JavaScript(簡稱「JS」) 是一種具備函數優先的輕量級,解釋型或即時編譯型的編程語言。雖然它是做爲開發Web頁面的腳本語言而出名的,可是它也被用到了不少非瀏覽器環境中,JavaScript 基於原型編程、多範式的動態腳本語言,而且支持面向對象、命令式和聲明式(如函數式編程)風格。JavaScript在1995年由Netscape公司的Brendan Eich,在網景導航者瀏覽器上首次設計實現而成。由於Netscape與Sun合做,Netscape管理層但願它外觀看起來像Java,所以取名爲JavaScript。但實際上它的語法風格與Self及Scheme較爲接近。JavaScript的標準是ECMAScript 。截至 2012 年,全部瀏覽器都完整的支持ECMAScript 5.1,舊版本的瀏覽器至少支持ECMAScript 3 標準。2015年6月17日,ECMA國際組織發佈了ECMAScript 的第六版,該版本正式名稱爲 ECMAScript 2015,但一般被稱爲ECMAScript 6 或者ES6。mysql
Servlet(Server Applet)是Java Servlet的簡稱,稱爲小服務程序或服務鏈接器,用Java編寫的服務器端程序,具備獨立於平臺和協議的特性,主要功能在於交互式地瀏覽和生成數據,生成動態Web內容。web
狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,通常狀況下,人們將Servlet理解爲後者。Servlet運行於支持Java的應用服務器中。從原理上講,Servlet能夠響應任何類型的請求,但絕大多數狀況下Servlet只用來擴展基於HTTP協議的Web服務器。sql
Eclipse 是一個開放源代碼的、基於Java的可擴展開發平臺。就其自己而言,它只是一個框架和一組服務,用於經過插件組件構建開發環境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發工具(Java Development Kit,JDK)。數據庫
MySql是最流行的關係型數據庫管理系統,在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System:關係數據庫管理系統)應用軟件之一。MySql數據庫有如下特色:編程
系統的用戶主要有兩大類:一是圖書管理系統的管理員,二是普通用戶。根據用戶類型的不一樣,將系統劃分爲普通用戶端和管理員端,它們具備的主要功能以下:瀏覽器
用戶端
圖書查詢:根據圖書編號、圖書名稱查詢圖書信息,可查詢圖書的編號、名稱、分類、做者、價格、在館數量等。
借閱信息:可查詢圖書的基本信息、借閱日期、截止還書日期、超期天數等。
借閱歷史:查詢本身以往的借閱歷史,包括哪些圖書等具體信息。
個人:查看我的資料,修改帳戶密碼,退出系統。
管理員端
圖書管理:根據圖書編號、圖書名稱查詢圖書基本信息,添加、修改、刪除圖書。
圖書分類管理:根據分類名稱查詢圖書分類信息,添加、修改、刪除圖書分類。
圖書借閱:展現全部正在借閱圖書的信息。
圖書歸還:展現全部已歸還圖書的信息。
公告管理:向用戶發佈公告。
讀者管理:根據帳號、姓名查詢讀者基本信息,添加、修改、刪除讀者信息。
個人:查看我的資料,修改帳戶密碼,退出系統。
項目名稱:manage_books
Package包說明:
用戶訪問圖書查詢模塊時顯示當前能夠借閱圖書,有按圖書名稱查詢圖書信息的功能,能夠進行借書操做。
其中查詢功能的Servlet代碼以下:
package com.cya.controller; import java.io.IOException; import java.util.ArrayList; 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 com.cya.dao.BookDao; import com.cya.pojo.Book; /** * Servlet implementation class selectServlet */ @WebServlet("/selectServlet") public class selectServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public selectServlet() { 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 //doGet(request, response); request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); //由於在管理員界面和讀者界面都有查找功能,爲了將查找的結果返回正確的頁面,設置了tip,tip=1表示管理員界面 int tip = Integer.parseInt(request.getParameter("tip")); String name = request.getParameter("name"); BookDao bookdao = new BookDao(); ArrayList<Book> data = bookdao.getLikeList(name); //將獲取的結果存入請求中 request.setAttribute("data", data); String url = ""; //轉發不一樣的界面 if (tip == 1) { url = response.encodeURL("/books/admin/admin_books.jsp"); } else { url = response.encodeURL("/books/user/select.jsp"); } //將請求轉發 request.getRequestDispatcher(url).forward(request, response); } }
當普通用戶借閱完圖書,會在該模塊自動生成借閱信息,如借閱日期,歸還日期,也可在該模塊進行還書,以下圖所示。
其中,還書功能的Servlet代碼以下:
package com.cya.controller; 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; import com.cya.pojo.Admin; import com.cya.dao.AdminDao; import com.cya.dao.BookDao; /** * Servlet implementation class borrowServlet */ @WebServlet("/borrowServlet") public class borrowServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public borrowServlet() { 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()); //設置編碼類型 request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); BookDao bookdao = new BookDao(); //爲了區分借書和還書的功能,設置tip,tip爲1,表示借書 int tip = Integer.parseInt(request.getParameter("tip")); if (tip == 1) { //獲取圖書id int bid = Integer.parseInt(request.getParameter("bid")); HttpSession session = request.getSession(); Admin admin = new Admin(); String status=request.getParameter("status"); String id=""; if(status.equals("user")) { //獲取到存入session的讀者id id = (String) session.getAttribute("uid"); } else { //獲取到存入session的aid讀者id id = (String) session.getAttribute("aid"); } AdminDao admindao = new AdminDao(); //經過aid獲取到讀者的信息 admin = admindao.get_AidInfo2(id); //將借閱記錄存入數據表 bookdao.borrowBook(bid, admin); response.sendRedirect("/manage_books/books/user/select.jsp"); } else { //還書功能,獲取借閱記錄的hid int hid = Integer.parseInt(request.getParameter("hid")); /** * 還書在管理員和讀者界面都有,爲了區分,設置了show字段,show爲1表示讀者界面 */ int show = Integer.parseInt(request.getParameter("show")); //調用還書函數,改變status字段 bookdao.borrowBook2(hid); if (show == 1) { response.sendRedirect("/manage_books/books/user/borrow.jsp"); } else { response.sendRedirect("/manage_books/books/admin/admin_borrows.jsp"); } } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
管理員能夠經過根據圖書號 、圖書名稱,做者名稱,出版社等查詢圖書信息。
管理員登陸系統之後,能夠進行圖書添加操做,這是管理員主要的輸入信息部分,填寫好各項信息後,單擊保存按鈕,系統將對這些信息進行處理。界面見下圖所示:
除此之外,管理員對已經添加好的圖書信息有修改權限。
其中,添加圖書功能的代碼以下:
package com.cya.controller; import java.io.IOException; 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 com.cya.dao.BookDao; /** * Servlet implementation class AddBookServlet */ @WebServlet("/AddBookServlet") public class AddBookServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public AddBookServlet() { 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 // doGet(request, response); //設置編碼類型 request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); //獲取要添加圖書的信息 String card = request.getParameter("card"); String name = request.getParameter("name"); String type = request.getParameter("type"); String autho = request.getParameter("autho"); String press = request.getParameter("press"); int num = Integer.parseInt(request.getParameter("num")); BookDao bookdao = new BookDao(); //調用函數,存入圖書 bookdao.addBook(card, name, type, autho, press, num); response.sendRedirect("/manage_books/books/admin/admin_books.jsp"); } }
管理員在該界面能夠增長、刪除、修改圖書分類信息,操做效果如圖。
修改圖書分類功能的代碼以下:
package com.cya.controller; import java.io.IOException; 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 com.cya.dao.BookDao; import com.cya.dao.TypeDao; /** * Servlet implementation class updateBookTypeServlet */ @WebServlet("/updateBookTypeServlet") public class updateBookTypeServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public updateBookTypeServlet() { 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 // doGet(request, response); //修改圖書類型信息 request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String name = request.getParameter("name"); int tid = Integer.parseInt(request.getParameter("tid")); TypeDao typedao = new TypeDao(); typedao.updateTypeBook(tid, name); response.sendRedirect("/manage_books/books/admin/admin_booksType.jsp"); } }
你若須要下載源碼,請關注微信公衆號:C you again,回覆 「基於web的圖書管理系統」 獲取 。
你也能夠掃碼關注