作品需要的知识
- Java
- MySql
- JDBC
- Servlet相关
- HTTP相关
- jsp
实现的功能(主要)
- 管理员和用户的区分
- 注册,登录,退出功能
- 用户的借书,还书,查找,修改密码
- 管理员对书籍信息的操作,对用户信息操作
- 支持模糊查询、多条件查询、包含有多表连接操作
- 支持逻辑删除和物理删除
- 密码加密存储
- 借书数量和时间的限制
具体功能实现的代码
登录验证身份:
private void doLogin(HttpServletRequest request, HttpServletResponse response) throws IOException {
String email = request.getParameter("email");
String password = Md5Util.encrypt(request.getParameter("password"));
boolean flag = LoginService.loginServ(email, password);
if (flag) {
HttpSession session = request.getSession();
session.setAttribute("email", email);
String userType = LoginService.queryUserType(email);
session.setAttribute("usertype", userType);
session.setMaxInactiveInterval(60 * 60);
if ("管理员".equals(userType)) {
response.sendRedirect(request.getContextPath() + "/admin/list/books");
} else {
response.sendRedirect(request.getContextPath() + "/customer/books/list");
}
} else {
doExit(request, response);
}
}
private void doExit(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.getSession().invalidate();
response.sendRedirect(request.getContextPath());
}
private void doEmailCheck(HttpServletRequest request, HttpServletResponse response) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));
String email=JSONObject.parseObject(reader.readLine()).getString("email");
int flag=LoginService.queryEmail(email);
if(flag==1){
response.setContentType("text/json;charset=utf-8");
response.getWriter().write(JSON.toJSONString(flag));
}
}
private void doRegister(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.setCharacterEncoding("utf-8");
Users users=new Users();
users.setName(request.getParameter("name"));
users.setBrith(request.getParameter("brith"));
users.setAcademy(request.getParameter("academy"));
users.setMajor(request.getParameter("major"));
users.setEmail(request.getParameter("email"));
users.setPassword(request.getParameter("password"));
users.setUserType(request.getParameter("user_type"));
users.setBorrowNum(0);
int num = LoginService.register(users);
if(num==1){
response.sendRedirect(request.getContextPath()+"/index.jsp");
}
}
}
借书操作:
private void doCustomerBorrow(HttpServletRequest request, HttpServletResponse response) throws IOException {
int a = 0;
response.setContentType("text/json;charset=utf-8");
String bNo = request.getParameter("booknum");
String username = request.getParameter("username");
List<Integer> list = BookListService.queryBookLendAndLeft(bNo);
int left = list.get(0);
int lend = list.get(1);
int borrowNum = BookListService.queryBorrowNum(username);
int userTypeNum = BookListService.queryUserTypeNum(username);
boolean falg = BookListService.queryBookIsReturn(bNo,username);
if (borrowNum < userTypeNum) {
if (!falg) {
int num = BookListService.customerBorrow(bNo, username, left, lend, borrowNum);
} else {
a = 2;
String jsonString = JSON.toJSONString(a);
response.getWriter().write(jsonString);
}
} else {
a = 1;
String jsonString = JSON.toJSONString(a);
response.getWriter().write(jsonString);
}
}
还书操作:
private void doCustomerReturn(HttpServletRequest request, HttpServletResponse response) {
String bNo = request.getParameter("booknum");
String username = request.getParameter("username");
String logNum = request.getParameter("log");
int num = BookListService.queryBorrowNum(username);
int[] arr = BookListService.leftAndLendNumberSel(bNo);
String lendTime = BookListService.queryBookLendTime(logNum);
BookListService.customerReturn(bNo, username, arr[0], arr[1], logNum, num,lendTime);
}
查找书籍:
private void doCollectChoice1(HttpServletRequest request, HttpServletResponse response) throws IOException {
String[] arr = new String[5];
arr[0] = request.getParameter("choice1");
arr[1] = request.getParameter("answer1");
arr[2] = request.getParameter("choice2");
arr[3] = request.getParameter("answer2");
arr[4] = (String) request.getSession().getAttribute("email");
List<CollectListBook> collectListBookList = BookListService.collectChoice1(arr);
response.setContentType("text/json;charset=utf-8");
String jsonString = JSON.toJSONString(collectListBookList);
response.getWriter().write(jsonString);
}
private void doCollectChoice2(HttpServletRequest request, HttpServletResponse response) throws IOException {
String answer3 = request.getParameter("answer3");
String email = String.valueOf(request.getSession().getAttribute("email"));
List<CollectListBook> collectListBookList = BookListService.collectChoice2(answer3, email);
response.setContentType("text/json;charset=utf-8");
String jsonString = JSON.toJSONString(collectListBookList);
response.getWriter().write(jsonString);
}
修改密码:
private void doChangePassword(HttpServletRequest request, HttpServletResponse response) throws IOException {
int f;
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
String string = reader.readLine();
JSONObject jsonObject = JSONObject.parseObject(string);
String oldPassowrd = Md5Util.encrypt(jsonObject.getString("old"));
String newPassowrd = Md5Util.encrypt(jsonObject.getString("new1"));
String email = jsonObject.getString("email1");
String password = UserListService.cheakPassowrd(email);
System.out.println(password);
if (password.equals(oldPassowrd)) {
int a = UserListService.changePassword(email, newPassowrd);
if (a == 1) {
f = 1;
} else {
f = 2;
}
} else {
f = 3;
}
response.setContentType("text/json;charset=utf-8");
String jsonString = JSON.toJSONString(f);
response.getWriter().write(jsonString);
}
管理员增加书籍
private void doAddBooks(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Books books = new Books();
books.setbName(request.getParameter("bName"));
books.setbAuthor(request.getParameter("bAuthor"));
books.setbNo(Integer.valueOf(request.getParameter("bNo")));
books.setbType(request.getParameter("bType"));
books.setbLeft(Integer.valueOf(request.getParameter("bLeft")));
books.setbLend(Integer.valueOf(request.getParameter("bLend")));
books.setPress(request.getParameter("press"));
books.setPressTime(request.getParameter("pressTime"));
books.setCollectedNum(Integer.valueOf(request.getParameter("collectedNum")));
int count = BookListService.addBooks(books);
if (count == 1) {
response.sendRedirect(request.getContextPath() + "/admin/list/books");
}
}
管理员的删除书籍(软删除)
private void doDeleteBooks(HttpServletRequest request, HttpServletResponse response) throws IOException {
String bno = request.getParameter("b_no");
int count = BookListService.deleteBooks(bno);
if (count == 1) {
response.sendRedirect(request.getContextPath() + "/admin/list/books");
}
}
管理员的修改提交书籍
private void doEdit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bno = request.getParameter("b_no");
Books books = BookListService.detailBooks(bno);
request.setAttribute("books", books);
request.getRequestDispatcher("/" + request.getParameter("f") + ".jsp").forward(request, response);
}
private void doSubmit(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
Books books = new Books();
books.setbName(request.getParameter("bName"));
books.setbAuthor(request.getParameter("bAuthor"));
books.setbNo(Integer.valueOf(request.getParameter("bNo")));
books.setbType(request.getParameter("bType"));
books.setbLeft(Integer.valueOf(request.getParameter("bLeft")));
books.setbLend(Integer.valueOf(request.getParameter("bLend")));
books.setPress(request.getParameter("press"));
books.setPressTime(request.getParameter("pressTime"));
books.setCollectedNum(Integer.valueOf(request.getParameter("collectedNum")));
int count = BookListService.submitBooks(books);
if (count == 1) {
response.sendRedirect(request.getContextPath() + "/admin/list/detail?f=detail&b_no=" + books.getbNo());
}
}
所有操作数据的方法:
![在这里插入图片描述](https://img-blog.csdnimg.cn/395613c75c154d04b67072656dc76a8f.png)
代码下载链接🔗
页面展示:
登录页面:
![在这里插入图片描述](https://img-blog.csdnimg.cn/30de5e2e7d7047f29297ce0b18a2725e.png)
注册页面:
![在这里插入图片描述](https://img-blog.csdnimg.cn/e6a60f7f22f946d782187cd220a6254d.png)
主页面:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2aa287bd40ed4807ad7f5d15a4a2e93b.png)
借书记录页面
![在这里插入图片描述](https://img-blog.csdnimg.cn/932c5ffc557d43ffb5ce8e8247c5255e.png)
我的收藏页面:
![在这里插入图片描述](https://img-blog.csdnimg.cn/389ad06b9a004fe980f40c8763d902bd.png)
用户修改密码页面
![在这里插入图片描述](https://img-blog.csdnimg.cn/f9d29f8a72634b27a1d1c093b135db0b.png)