基于javaweb+mysql的jsp+servlet图书借阅管理系统(java+jsp+bootstrap+jquery+servlet+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的JSP+Servlet图书借阅管理系统(java+jsp+bootstrap+jquery+servlet+mysql)
项目介绍
本项目分为读者、管理员两种角色,登录验证码。 管理员主要功能包括: 图书管理:1)根据图书名称、作者、分类查询图书基本信息 2)添加、修改或删除图书信息
读者管理:1)根据账号、姓名、ID查询读者基本信息 2)添加、修改或删除读者信息
图书分类管理:1)查看图书分类信息,显示分类ID 2)添加、修改或删除图书分类
图书借阅信息:1)展示所有正在借阅的图书信息与读者信息 2)可以实现还书与延期功能
图书归还信息:1)展示所有已归还的图书的信息 2)记录图书出馆时间与归馆时间
管理员管理(需登录):1)仅最高管理员可以访问本页面 2)添加、修改或删除管理员信息
热门推荐:1)展示每一本书的借阅量,包括图书基本信息 2)可以查询书籍借阅量 最佳读者:展示每一位已知读者的借阅量,以及读者的基本信息
读者登录主要功能包括: 图书查询、借阅信息、借阅历史、热门推荐、最佳读者、问题反馈;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
技术栈
- 后端:Servlet 2. 前端:JSP+bootstrap+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中util/DBUtil.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入http://localhost:8080/books/login.jsp 登录 注:tomcat中配置项目路径必须为/books 管理员用户名密码:101/101.123456 读者用户名密码:1816270150/wyz123456
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
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 {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
// 获取账号和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
int aid = Integer.parseInt(request.getParameter("aid"));
AdminDao userdao = new AdminDao();
userdao.updateAdmin(aid, username, password, name, email, phone);
response.sendRedirect("/books/admin_admin.jsp");
}
}
/**
* Servlet implementation class AddUserServlet
*/
@WebServlet("/AddAdminServlet")
public class AddAdminServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AddAdminServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
response.setContentType("text/html;charset=UTF-8");
// 获取要添加的管理员的信息
String username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
AdminDao userdao = new AdminDao();
// 调用函数添加读者信息
userdao.Register2(username, password, name, email, phone);
response.sendRedirect("/books/admin_admin.jsp");
}
}
/**
* Servlet implementation class selectServlet
*/
@WebServlet("/selectProblemServlet")
public class selectProblemServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public selectProblemServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* Servlet implementation class updateUserServlet
*/
@WebServlet("/updateUserServlet")
public class updateUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public updateUserServlet() {
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 username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
/**
* 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表示管理员界面
/**
* 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<BookBean> data = bookdao.getLikeList(name);
// 将获取的结果存入请求中
request.setAttribute("data", data);
String url = "";
// 转发不同的界面
if (tip == 1) {
url = response.encodeURL("admin_book.jsp");
} else {
url = response.encodeURL("select.jsp");
response.sendRedirect("/books/select.jsp");
} else {
response.sendRedirect("/books/bdtimes.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("/books/borrow.jsp");
} else {
response.sendRedirect("/books/admin_borrow.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);
}
}
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
// 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 username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
int lend_num = Integer.parseInt(request.getParameter("lend_num"));
int max_num = Integer.parseInt(request.getParameter("max_num"));
AdminDao userdao = new AdminDao();
// 调用函数添加读者信息
userdao.Register(username, password, name, email, phone, lend_num, max_num);
response.sendRedirect("/books/admin_user.jsp");
}
}
/**
* Servlet implementation class updateBookServlet
*/
@WebServlet("/updateBookServlet")
public class updateBookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
*/
@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<BookBean> data = bookdao.getLikeList(name);
// 将获取的结果存入请求中
request.setAttribute("data", data);
String url = "";
// 转发不同的界面
if (tip == 1) {
url = response.encodeURL("admin_book.jsp");
} else {
url = response.encodeURL("select.jsp");
}
// 将请求转发
request.getRequestDispatcher(url).forward(request, response);
}
}
// 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 username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
int lend_num = Integer.parseInt(request.getParameter("lend_num"));
int max_num = Integer.parseInt(request.getParameter("max_num"));
int aid = Integer.parseInt(request.getParameter("aid"));
AdminDao userdao = new AdminDao();
userdao.updateUser(aid, username, password, name, email, phone, lend_num, max_num);
response.sendRedirect("/books/admin_user.jsp");
}
}
HttpSession session = request.getSession(); // 保存到session
session.setAttribute("code", sb.toString());
ImageIO.write(bfi, "JPG", response.getOutputStream()); // 写到输出流
}
private static Color interLine(int Low, int High) {
if (Low > 255)
Low = 255;
if (High > 255)
High = 255;
if (Low < 0)
Low = 0;
if (High < 0)
High = 0;
int interval = High - Low;
int r = Low + (int) (Math.random() * interval);
int g = Low + (int) (Math.random() * interval);
int b = Low + (int) (Math.random() * interval);
return new Color(r, g, b);
}
}
/**
* Servlet implementation class borrowServlet
*/
/**
* @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 username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
int aid = Integer.parseInt(request.getParameter("aid"));
AdminDao userdao = new AdminDao();
userdao.updateAdmin(aid, username, password, name, email, phone);
response.sendRedirect("/books/admin_admin.jsp");
}
}
/**
* Servlet implementation class AddUserServlet
// 通过aid获取到读者的信息
adminbean = admindao.get_AidInfo2(aid);
// 获取反馈问题的信息
String name = request.getParameter("name");
String page = request.getParameter("page");
String body = request.getParameter("body");
String phone = request.getParameter("phone");
ProblemDao problemdao = new ProblemDao();
// 调用函数存入反馈信息
problemdao.addProblem(adminbean, name, page, body, phone);
response.sendRedirect("/books/result.jsp");
}
}
/**
* Servlet implementation class bdtimesServlet
*/
@WebServlet("/brtimesServlet")
public class brtimesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public brtimesServlet() {
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());
}
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 username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
int lend_num = 30;
int max_num = 5;
AdminDao userdao = new AdminDao();
// 将注册信息存入数据库,再返回登录
userdao.Register(username, password, name, email, phone, lend_num, max_num);
response.sendRedirect("/books/login.jsp");
}
}
/**
* Servlet implementation class AddBookServlet
*/
@WebServlet("/AddBookServlet")
/**
* 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"));
int show = Integer.parseInt(request.getParameter("show"));
HttpSession session = request.getSession();
AdminBean admin = new AdminBean();
// 获取到存入session的aid读者id
String aid = (String) session.getAttribute("aid");
AdminDao admindao = new AdminDao();
// 通过aid获取到读者的信息
admin = admindao.get_AidInfo2(aid);
// 将借阅记录存入数据表
bookdao.borrowBook(bid, admin);
if (show == 1) {
response.sendRedirect("/books/select.jsp");
} else {
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("/books/admin_book.jsp");
}
}
/**
* Servlet implementation class updateUserServlet
*/
@WebServlet("/updateAdminServlet")
public class updateAdminServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public updateAdminServlet() {
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 {
/**
* @see HttpServlet#HttpServlet()
*/
public brtimesServlet() {
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");
AdminDao admindao = new AdminDao();
ArrayList<AdminBean> data = admindao.getLikeList(name);
// 将获取的结果存入请求中
request.setAttribute("data", data);
String url = "";
// 转发不同的界面
if (tip == 1) {
url = response.encodeURL("admin_brtimes.jsp");
} else {
url = response.encodeURL("brtimes.jsp");
}
// 将请求转发
request.getRequestDispatcher(url).forward(request, response);
}
}