基于javaweb的JSP+Servlet图书借阅管理系统(前台、后台)(java+jsp+servlet+javabean+mysql+tomcat)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

前台:登录、查看图书列表、借书、还书、导出借书信息

后台:图书管理、借阅审核、还书审核、用户管理、图书类别管理、借书数据统计图、导出图书信息

420123132502

前台

290123132502

310123132502

320123132502

后台:

330123132502

340123132502

350123132502

360123132502

370123132502

380123132502

390123132502

400123132502

技术框架

JSP Servlet MySQL JDBC Tomcat CSS JavaScript

基于javaweb的JSP+Servlet图书借阅管理系统(前台、后台)(java+jsp+servlet+javabean+mysql+tomcat)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
                    bookCase = bookAdminService.findBookCaseById(Integer.valueOf(bookCaseId));
book = new Book();
book.setId(Integer.valueOf(bookIdStr));
book.setName(name);
book.setAuthor(author);
book.setPublish(publish);
book.setPages(Integer.valueOf(pageStr));
book.setPrice(Float.valueOf(priceStr));
book.setBookCase(bookCase);
book.setAbled(1);
bookService.modifyBook(book);
resp.sendRedirect(req.getContextPath()+"/book/book-list.jsp");
break;
//添加图书
case "preAdd":
bookCaseList = bookAdminService.findAllBookCase();
req.setAttribute("list",bookCaseList);
req.getRequestDispatcher("/book/book-add.jsp").forward(req,resp);
break;
case "add":
name = req.getParameter("name");
author = req.getParameter("author");
publish = req.getParameter("publish");
pageStr = req.getParameter("pages");
priceStr = req.getParameter("price");
bookCaseId = req.getParameter("bookCaseId");
bookCase = bookAdminService.findBookCaseById(Integer.parseInt(bookCaseId));
book = new Book(name,Integer.parseInt(pageStr),Float.parseFloat(priceStr),publish,author,bookCase,1);
bookService.addBook(book);
resp.sendRedirect(req.getContextPath()+"/book/book-list.jsp");
break;
//删除图书
case "delete":
bookIdStr = req.getParameter("bookId");
book = bookService.findBookById(Integer.parseInt(bookIdStr));
book.setBookCase(null);
bookService.deleteBookById(Integer.parseInt(bookIdStr));
resp.sendRedirect(req.getContextPath()+"/book/book-list.jsp");
break;

}
}
}
}
package com.demo.controller;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
                    }
borrow.setState(5);
borrow.setReturntime(DateUtils.dateToString(new Date()));
bookAdminService.modifyBorrow(borrow);
resp.sendRedirect(req.getContextPath() + "/admin/return-manage.jsp");
break;
}
break;
}
break;
//显示图书数据操作
case "getBookData":
switch (type) {
//显示成饼图
case "pie":
List<BookPieData> bookPieDataList = bookAdminService.findBookDataForPie();
JSONArray jsonArray = JSONArray.fromObject(bookPieDataList);
resp.getWriter().write(jsonArray.toString());
break;
//显示成柱状图
case "bar":
BookBarData bookBarDataList = bookAdminService.findBookDataForBar();
jsonObject = JSONObject.fromObject(bookBarDataList);
resp.getWriter().write(jsonObject.toString());
break;
}
//导出数据操作
case "exportDataInfo":
switch (type) {
//导出图书信息操作
case "book":
HSSFWorkbook hssfWorkbook = bookService.findWorkBook();
resp.setContentType("application/x-msdownload");

String fileName = "图书信息";
fileName = URLEncoder.encode(fileName, "UTF-8");
resp.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + fileName + suffix);
OutputStream outputStream = resp.getOutputStream();
hssfWorkbook.write(outputStream);
outputStream.close();
break;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    returnBook.setState(3);
bookAdminService.modifyReturn(returnBook);
int bookId = returnBook.getBook().getId();
book = bookService.findBookById(bookId);
book.setAbled(1);
bookService.modifyBook(book);
borrow = readerService.findBorrowByIds(book.getId(), returnBook.getReader().getId(), 4);
if (borrow == null) {

borrow = readerService.findBorrowByIds(book.getId(), returnBook.getReader().getId(), 5);
}
if (borrow != null) {
borrow.setState(3);
borrow.setReturntime(DateUtils.dateToString(new Date()));
bookAdminService.modifyBorrow(borrow);
resp.sendRedirect(req.getContextPath() + "/admin/return-manage.jsp");
} else {
resp.sendRedirect(req.getContextPath() + "/admin/return-manage.jsp");
}
break;
//拒绝归还
case "disagree":
returnIdStr = req.getParameter("returnId");
bookAdmin = (BookAdmin) session.getAttribute("bookAdmin");
returnBook = bookAdminService.findReturnById(Integer.parseInt(returnIdStr));
returnBook.setBookAdmin(bookAdmin);
returnBook.setReturntime(DateUtils.dateToString(new Date()));
returnBook.setState(5);
bookAdminService.modifyReturn(returnBook);
bookId = returnBook.getBook().getId();
book = bookService.findBookById(bookId);
book.setAbled(0);
bookService.modifyBook(book);
borrow = readerService.findBorrowByIds(book.getId(), returnBook.getReader().getId(), 0);
if (borrow == null) {
borrow = readerService.findBorrowByIds(book.getId(), returnBook.getReader().getId(), 4);
}
if (borrow == null) {
borrow = readerService.findBorrowByIds(book.getId(), returnBook.getReader().getId(), 5);
}
borrow.setState(5);
borrow.setReturntime(DateUtils.dateToString(new Date()));
bookAdminService.modifyBorrow(borrow);
resp.sendRedirect(req.getContextPath() + "/admin/return-manage.jsp");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

/**
* @Description:读者操作功能类
* @Param:
* @return:
*/
public class ReaderServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
HttpSession session = req.getSession();
ReaderService readerService = new ReaderServiceImpl();
BookService bookService = new BookServiceImpl();
BookAdminService bookAdminService = new BookAdminServiceImpl();
String method = req.getParameter("method");
int count = 0;
Reader reader;
String bookIdStr;
String borrowId;
//查询所有读者借阅图书信息
if (method == null){
reader = (Reader) session.getAttribute("reader");
Constants.pageStr = req.getParameter("page");
Constants.limitStr = req.getParameter("limit");
List<Borrow> borrowList = readerService.findBorrowsByReaderId(reader.getId(),Integer.valueOf(Constants.pageStr),Integer.valueOf(Constants.limitStr));
count = readerService.findBorrowsCountByReaderId(reader.getId());
BorrowVO borrowVO = new BorrowVO();
borrowVO.setCode(0);
borrowVO.setMsg(null);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
                    bookService.deleteBookById(Integer.parseInt(bookIdStr));
resp.sendRedirect(req.getContextPath()+"/book/book-list.jsp");
break;

}
}
}
}
package com.demo.controller;


/**
* @Description:用户登录功能类
* @Param:
* @return:
*/
public class AccountServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String method = req.getParameter("method");
String type = req.getParameter("type");
AccountService accountService = new AccountServiceImpl();
HttpSession session = req.getSession();
switch (method){
case "login":
String username = req.getParameter("username");
String password = req.getParameter("password");
Object object = accountService.login(username,password,type);
if (object != null){
switch (type){
case "reader":
Reader reader = (Reader) object;
session.setAttribute("reader",reader);
resp.sendRedirect(req.getContextPath()+"/reader/reader.jsp");
break;
case "bookadmin":
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
        case "return":
List<ReturnBook> returnBookList = bookAdminService.findAllReturns();
ReturnBookVO returnBookVO = new ReturnBookVO();
count = bookAdminService.findReturnCount();
returnBookVO.setCode(0);
returnBookVO.setCount(count);
returnBookVO.setMsg(null);
returnBookVO.setData(returnBookList);
jsonObject = JSONObject.fromObject(returnBookVO);
resp.getWriter().write(jsonObject.toString());
break;
}
break;
//借阅和归还的审核操作
case "auditing":
switch (type) {
case "borrow":
switch (attitude) {
//同意借阅
case "agree":
borrowIdStr = req.getParameter("borrowId");
bookAdmin = (BookAdmin) session.getAttribute("bookAdmin");
borrow = readerService.findBorrowById(Integer.parseInt(borrowIdStr));
borrow.setBookAdmin(bookAdmin);
borrow.setState(1);
book = bookService.findBookById(borrow.getBook().getId());
book.setAbled(0);
bookService.modifyBook(book);
bookAdminService.modifyBorrow(borrow);
resp.sendRedirect(req.getContextPath() + "/admin/borrow-manage.jsp");
break;
//拒绝借阅
case "disagree":
borrowIdStr = req.getParameter("borrowId");
bookAdmin = (BookAdmin) session.getAttribute("bookAdmin");
borrow = readerService.findBorrowById(Integer.parseInt(borrowIdStr));
borrow.setBookAdmin(bookAdmin);
borrow.setState(2);
book = bookService.findBookById(borrow.getBook().getId());
book.setAbled(1);
bookService.modifyBook(book);
bookAdminService.modifyBorrow(borrow);
resp.sendRedirect(req.getContextPath() + "/admin/borrow-manage.jsp");
break;
}
break;
//归还图书操作
case "return":
switch (attitude) {


项目链接:
https://javayms.github.io?id=221221112305102at
https://javayms.pages.dev?id=221221112305102at