java8 + servlet + jsp + mysql8.0.17 + c3p0 + dbutils + xadmin 도서관 관리 시스템 구현
스프링 부트 버전 : https://github.com/ifwlzs/library_springboot
SQL은 src/main/resources/ Directory에 저장됩니다
Tomcat 배포 된 응용 프로그램 컨텍스트는 /

이 아이디어 프로젝트의 코드는 UTF8입니다. 관련 구성을 직접 변경하십시오.
아이디어 구성 : 파일-> 설정-> 파일 인코딩-> 프로젝트 인코딩
기본값은 GBK 및 Tomcat 구성 인터페이스입니다. 가상 머신 시작 매개 변수 추가 : -dfile.encoding = utf -8
콘솔은 아이디어에서 VM 매개 변수를 수정하여 구성 정보를 추가 할 수있는 코드를 작성했습니다. -dfile.encoding = utf -8
Tomcat은 UTF8로 설정되었습니다
시스템은 다음과 같은 기본 관리 기능을 구현해야합니다.
(1) 사용자는 관리자와 일반 사용자의 두 가지 범주로 나뉩니다.
(2) 사용자 등록 및 사용자 로그인 확인 기능을 제공합니다. 로그인 사용자의 정보 중 하나는 로그인 사용자 이름 및 로그인 비밀번호입니다.
(3) 관리자는 등록 된 사용자 (쿼리, 삭제, 비밀번호 수정), 사용자의 책 대출 응용 프로그램의 결정 및 반환 및 책 생성, 쿼리, 수정 및 삭제 등과 관련된 작업을 구현할 수 있습니다.
(4) 일반적으로 사용자는 책을 쿼리하고 책을 빌릴 수 있습니다 (책을 빌린 책에 신청). 각 사용자는 최대 8 권의 책을 빌릴 수 있습니다. 즉, 현재 8 권의 책이 이미 빌린 경우 더 이상 책을 빌릴 수 없습니다. 책을 반환 한 후에 만 다시 빌릴 수 있습니다.
프레임을 사용할 수 없습니다
모든 사람에게 공개 : 1-4
독자, 관리자 : 5-7
독자 전용 : 8-9
관리자 전용 : 10-28
| 일련 번호 | 길 | 설명 | 1 페이지 | 2 페이지 | 페이지 3 | 얻기 쉬운 |
|---|---|---|---|---|---|---|
| 1 | /toindexServlet | 자동 로그인, 로그인 할 로그인이 없습니다 | /index.jsp | 모두 | ||
| 2 | /registerReaderServlet | 등록하기 위해 점프하십시오 | /register.jsp | 모두 | ||
| 3 | /loginservlet | 로그인하십시오 | /login.jsp | 모두 | ||
| 4 | /ToerRorservlet | 오류 페이지를 뛰어 넘으십시오 | * | 모두 | ||
| 5 | /updateReaderservlet | 사용자 정보 수정 및 구현, 관리자 편집 사용자 정보 편집 | /reader/edit.jsp | /admin/editreader.jsp | 관리자, 독자 | |
| 6 | /toeditReaderVlet | 사용자 수정 페이지를 뛰어 넘고 관리자가 사용자를 편집합니다 | /리더/편집 | /admin/readerlist.jsp | 관리자, 독자 | |
| 7 | /logoutservlet | 로그 아웃하십시오 | /Reader/index.jsp | /admin/index.jsp | 관리자, 독자 | |
| 8 | /reader/tobookshelfservlet | 사용자를 점프하여 책을 표시하고, 사용자는 책의 세부 사항을 찾습니다. | /Reader/index.jsp | /reader/brosplist.jsp | 리더 | |
| 9 | /Reader/ToreaderBorresservlet | 점프 사용자 차용 기록 | /Reader/index.jsp | 리더 | ||
| 10 | /admin/toaddreaderservlet | 관리자는 사용자를 추가합니다 | /admin/readerlist.jsp | 관리자 | ||
| 11 | /admin/tobrosplistServlet | 관리자 쿼리 대출 정보 | /admin/readerlist.jsp | /admin/index.jsp | /admin/booklist.jsp | 관리자 |
| 12 | /admin/deletereaderservlet | 사용자 삭제 | /admin/readerlist.jsp | 관리자 | ||
| 13 | /admin/toeditadminservlet | 관리자 편집 페이지로 이동하여 관리자의 개인 정보를 수정하십시오. | /admin/index.jsp | /admin/adminlist.jsp | 관리자 | |
| 14 | /admin/toadminlistservlet | 관리자 목록을 표시하십시오 | /admin/index.jsp | 관리자 | ||
| 15 | /admin/toreaderListServlet | 사용자 목록을 표시하고 차용자 정보를 표시합니다 | /admin/index.jsp | /admin/brosplist.jsp | 관리자 | |
| 16 | /admin/toBookListServlet | 책 목록을 표시하려면 가십시오 | /admin/index.jsp | /admin/brosplist.jsp | 관리자 | |
| 17 | /admin/hopdebookservlet | 관리자는 책 정보를 편집합니다 | /admin/editbook.jsp | 관리자 | ||
| 18 | /admin/updateadMinservlet | 관리자는 관리자 정보를 편집합니다 | /admin/editadmin.jsp | 관리자 | ||
| 19 | /admin/toaddborresservlet | 차용 정보를 추가 할 관리자 | /admin/brosplist.jsp | 관리자 | ||
| 20 | /admin/toreturnbookservlet | 책 응용 프로그램을 반환하기 위해 점프하십시오 | /admin/brosplist.jsp | 관리자 | ||
| 스물 하나 | /admin/toaddbookservlet | 책을 추가하는 관리자 | /admin/booklist.jsp | 관리자 | ||
| 스물 두 번째 | /admin/toeditbookservlet | 관리자는 책을 편집합니다 | /admin/booklist.jsp | 관리자 | ||
| 스물 셋 | /admin/deletebookservlet | 책 삭제 | /admin/booklist.jsp | 관리자 | ||
| 24 | /admin/toaddadminservlet | 관리자 페이지를 추가하기 위해 점프하십시오 | /admin/adminlist.jsp | 관리자 | ||
| 25 | /admin/deleteadminservlet | 관리자 정보를 삭제합니다 | /admin/adminlist.jsp | 관리자 | ||
| 26 | /admin/addborrowservlet | 관리자는 책을 빌립니다 | /admin/addborring.jsp | 관리자 | ||
| 27 | /admin/addbookservlet | 관리자는 책을 추가합니다 | /admin/addbook.jsp | 관리자 | ||
| 28 | /admin/registerAdminservlet | 관리자 레지스터 관리자 | /admin/addadmin.jsp | 관리자 |
시스템 모듈은 다음과 같습니다.
오류 페이지 점프 모듈 : 사용자가 존재하지 않는 페이지에 액세스하면이 시스템의 기본 404 페이지로 이동합니다. 오류 작업이 서버 500 오류를 일으키면이 시스템에서 제공하는 500 페이지로 이동합니다.
권한 관리 : 인터셉터를 사용하여 사용자가 페이지에 액세스 할 수없고 요청을 보내는 목적을 달성합니다.
로그인 확인 모듈 : 데이터베이스에있는 사용자와 일치하고 존재하지 않으면 오류 메시지가 반환됩니다. 성공적으로 로그인하면 해당 홈페이지로 이동합니다.
관리자 모듈 : 개인 정보 수정; 독자의 추가, 삭제, 수정 및 검색; 책의 추가, 삭제, 수정 및 검색; 관리자의 추가, 삭제, 수정 및 검색, 예약 대출 및 예약 반품 작업.
리더 모듈 : 개인 정보 수정, 라이브러리 인벤토리 쿼리, 개인 차입 기록 쿼리.
ER 모델은 그림에 나와 있습니다.
데이터베이스 디자인은 그림에 나와 있습니다.
로그인에는 등록 및 로그인 섹션이 포함됩니다. 사용자가 입력하지 않은 경우 클릭하여 등록 할 수 있습니다. 로그인을 클릭하면 창이 나타나고 "필수 항목이 입력되지 않고 슬라이더 인증이 완료되지 않습니다".

등록하려면 클릭하십시오. 등록 페이지를 볼 수 있습니다. 재 등록 인터페이스에서는 빈 값, 사용자 ID, 이메일 및 전화와 같은 주요 값의 판단이 추가됩니다. 사용자가 입력 한 문자가 등록 요구 사항을 충족하고 등록 요청을 백엔드로 보내야합니다.
로그인 한 후 시스템은 사용자 ID를 기반으로 사용자 범주를 자동으로 결정합니다. R으로 시작하면 독자에게 로그인하고 M으로 시작하면 관리자가됩니다. 로그인 오류가 발생하면 오류 메시지가 반환됩니다.
독자 모듈은 세 개의 작은 조각으로 나뉩니다. 오른쪽의 내비게이션 바에는 두 가지 기능, 즉 도서관의 책 컬렉션을 쿼리하고 자신의 차용 기록을 쿼리하는 기능이 포함되어 있습니다. 오른쪽에는 새로 고침, 로그 아웃 및 개인 정보를 편집하는 기능이 있습니다.
이 페이지에는 비밀번호 확인 기능이 있으며 비밀번호를 잘못 입력 한 경우 수정할 수 없습니다.
이 페이지에는이 책에 대한 기본 정보가 표시됩니다. 책의 제목을 기반으로 쿼리를 퍼지 할 수도 있습니다. 그러나 특별한 치료가 수행됩니다. 차용 조건이 차입 조건을 충족하지 않으면 "빌리지 않음"버튼이 표시되지 않습니다.
현재 사용자가 8 권의 책을 빌리면 "각 사용자가 최대 8 권의 책을 빌릴 수 있고 가능한 빨리 도서관으로 이동하여 수익을 돌려주십시오!"
쿼리에서는 모든 레코드와 반환되지 않은 레코드를 조건으로 쿼리 할 수 있습니다.
양식의 책 ID를 기반으로 도서 세부 정보를 확인할 수도 있습니다.
"반환"버튼을 클릭하면 라이브러리가 시작된 시간이 표시됩니다.
관리자 배경에는 많은 기능이 있습니다. 개인 정보의 변경 외에도 사용자 관리, 서적 관리 및 차입 관리의 세 가지 주요 모듈도 포함됩니다.
사용자 관리는 관리자 및 리더 모듈로 나뉩니다. 관리자에는 추가, 삭제, 수정 및 퍼지 쿼리 작업이 포함됩니다.
리더 관리에는 퍼지 쿼리 추가, 삭제 및 수정, 모든 레코드 쿼리를 포함한 퍼지 쿼리가 포함됩니다. 다음은 쿼리가 정제되지 않은 레코드를 보여줍니다.
도서 관리에는 일반적으로 책을 추가, 삭제 및 수정하고 책의 차입 및 반박 기록을 쿼리하는 것이 포함됩니다.
편집 인터페이스에서 총 재고는 안전하게 판단되므로 재고는 항상 대출 수량보다 크거나 동일합니다. 그리고 대출 금액은 책의 반환이 차입 관리에서 수행되도록 설정되었습니다.
차입 기록에서는 차용자를 쿼리하고, 세부 사항을 책정하고, 부정하지 않은 책을 쿼리 할 수 있습니다. 예약 반품 운영 및 차용 정보를 수행 할 수 있습니다. 반품 운영 중에, 책 재고가 대출 금액보다 크고 대출 금액이 0이 아닌 경우 반품이 성공할 수 있습니다.
차용 정보를 추가 할 때. 선택한 독자가 최대 책 수에 도달하면 책이 차용이 실패하라는 메시지가 표시됩니다.
보안 측면에서 다른 역할에 대한 액세스는 주로 제한됩니다.
로그인하지 않은 사용자는 로그인 및 등록 페이지에만 액세스 할 수 있습니다. 다른 역할의 페이지를 방문하면 로그인 홈페이지로 리디렉션됩니다.
관리자는 리더 디렉토리에서 메소드와 페이지에 액세스 할 수 없습니다. 액세스하면 관리자의 홈페이지로 자동 리디렉션됩니다.
독자는 관리 디렉토리에서 메소드와 페이지에 액세스 할 수 없습니다. 액세스하면 독자의 홈페이지로 자동 리디렉션됩니다.
존재하지 않는 페이지를 입력하고 서버에서 오류가 발생하면 페이지가 해당 오류 페이지로 이동합니다.
이 설계에서 기본 기능이 완료되었지만 성숙한 시스템 및 개인 차입 경험과 비교할 때 여전히 인간화 된 디자인이 부족합니다. 예를 들어, 책 관리에는 보조 목록이 있어야합니다. 이 목록에 동일한 제목이있는 각 책은 번호가 매겨 져야합니다. 서적 관리에는 책장, 레이어 수 등과 같은 분야가 포함되어야합니다. 책 차입 작업에서 주변 장치를 사용하여 책 ID 및 사용자 ID를 입력해야합니다. 시간 이유 외에도이 프로젝트에는 페이징 및 배치 삭제 작업이 추가되지 않았습니다.
서블릿에서 JSP 페이지를 뛰어 넘는 방법에는 여러 가지가 있습니다. 일부는 쿼리 및 특별 판결 작업을 포함하기 때문입니다. 통일 된 추상 방법을 그릴 수 없습니다.
SpringBoot+SSM+MVC+VUE 방식이 사용되지 않았으므로 프로젝트 파일을 비교적 지저분하게 보이게합니다.