Spring & Springboot 68

전자 도서관 프로젝트 - 회원가입 구현

회원가입 화면으로 이동 회원가입 메뉴는 nav.jsp에 코딩되어 있다. 회원가입 회원가입 메뉴가 /user/member/createAccountForm에 링크되어 있으므로 UserMemberController 컨트롤러에 createAccountForm()을 만들고 매핑한다. package com.office.library.user.member; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/us..

전자 도서관 프로젝트 - 사용자 홈 구현

프로젝트를 실행했을 때의 도메인은 http://localhost:8090/library/로, 브라우저에 접속하면 다음과 같이 보인다. 이 http://localhost:8090/library/를 처리하는 컨트롤러는 HomeController.java로 코드는 다음과 같다. HomeController는 프로젝트를 생성하면 자동으로 만들어지는 컨트롤러로, 우리가 직접 코딩하지 않는다. package com.office.library; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springfram..

전자 도서관 프로젝트 - 사용자 관련 기능 구현 준비

사용자 관련 기능 구현을 위한 준비 이번에는 관리자가 아닌 도서관을 이용하는 사용자의 회원가입 및 로그인 기능을 구현한다. 사용자의 회원가입 및 로그인 기능은 관리자의 회원가입 및 로그인 기능과 동일하다. 진행할 실습의 흐름은 다음과 같다. JSP, CSS, 이미지 파일 복사하기 회원 관련 기능을 구현하기 위한 준비 작업으로 실습에 필요한 JSP파일들을 복사한다. 패키지와 클래스 생성하기 사용자 관련 기능 구현에 필요한 패키지와 클래스를 생성해본다. com.office.library 패키지에서 com.office.library.user와 com.office.library.user.member 패키지와 클래스를 다음과 같이 생성한다. 빈 생성 위에서 생성한 클래스들을 스프링 IoC 컨테이너에 빈으로 등록하..

전자 도서관 프로젝트 - 도서 정보 수정과 삭제 기능 구현

도서 정보 수정 화면 구현하기 버튼의 링크는 book_detail.jsp에 다음과 같이 명시되어 있다. 도서 수정 버튼을 클릭하면 서버에 /book/admin/modifyBookForm 요청이 발생하며, 매개변수로 도서를 구분할 수 있는 b_no가 함께 전달된다. 컨트롤러 기능 구현 클라이언트의 요청을 처리할 수 있는 메서드를 BookController.java에 선언한다. // 도서 수정 @GetMapping("/modifyBookForm") public String modifyBookForm(@RequestParam("b_no") int b_no, Model model) { System.out.println("[BookController] bookDetail()"); String nextPage = ..

전자 도서관 프로젝트 - 도서 검색 기능 구현

도서 검색 처리하기 도서 검색 화면은 nav.jsp에 있다. 다음은 nav.jsp에서 검색에 해당하는 이다. · 서버에 요청하는 URI(/book/admin/searchBookConfirm)를 설정한다. · 검색어는 b_name으로 서버에 전송된다. 컨트롤러 기능 구현 클라이언트의 요청을 처리할 수 있는 searchBookConfirm()을 BookController.java에 선언한다. // 도서 검색 @GetMapping("/searchBookConfirm") public String searchBookConfirm(BookVo bookVo, Model model) { System.out.println("[UserBookCoontroller] searchBookConfirm()"); String ne..

전자 도서관 프로젝트 - 신규 도서 등록 기능 구현

패키지와 클래스 생성하기 관리자는 신규 도서를 등록할 수 있다. 관리자 로그인 후 '도서등록' 메뉴를 이용해서 신규 도서를 등록할 수 있다. '도서등록' 메뉴는 nav.jsp에 다음과 같이 코딩되어 있다. 도서등록 도서 등록 메뉴에 대한 링크는 /book/admin/registerBookForm으로 관련 패키지와 클래스를 다음과 같이 만든다. com.office.library.book 패키지 도서 정보 저장 Vo 클래스 BookVo.java com.office.library.book.admin 패키지 컨트롤러 클래스 BookController.java DAO 클래스 BookDao.java 서비스 클래스 BookService.java com.office.library.book.admin.util 패키지 파..

전자 도서관 프로젝트 - 관리자 새 비밀번호 생성 기능 구현

이번에는 비밀번호를 잊어버렸을 때 새 비밀번호를 발급받는 기능을 구현해본다. 난수를 이용해서 새 비밀번호를 생성하고 메일로 발송하는 과정을 알아본다. 새 비밀번호 생성 기능의 개요 암호화된 비밀번호는 데이터베이스 관리자도 알 수 없다. 따라서 새로운 비밀번호를 생성한 후 데이터베이스에 업데이트하고 관리자에게 메일로 발송해야 한다. 메일 발송 모듈 설정하기 스프링에서는 JavaMailSenderImpl을 이용해서 메일을 발송할 수 있다. JavaMailSenderI을 이용하기 위해서는 pom.xml에 관련 모듈을 설정하고 JavaMailSenderImpl을 스프링 IoC 컨테이너에 등록하는 작업을 해야한다. ① pom.xml 파일을 열어서 다음 코드를 ... 에 추가한다. org.springframewor..

전자 도서관 프로젝트 - 관리자 계정 정보 수정 기능 구현

관리자가 자신의 계정 정보를 수정하고, 비밀번호를 분실했을 경우 새로운 비밀번호를 메일로 발송하는 기능에 대해 알아본다. 또한 관리자의 신규 도서 등록과 검색 그리고 수정과 삭제 기능도 구현해본다. 계정 수정 화면 구현하기 관리자 계정 정보를 수정한다. 관리자가 로그인한 후 '계정수정' 메뉴를 선택하면 관리자 정보를 수정할 수 있다. '계정수정' 메뉴는 nav.jsp에 있다. 경로: WEB-INF/views/admin/include/nav.jsp 계정수정 계정수정 메뉴에 대한 링크는 /admin/member/modifyAccountForm으로, AdminMemberController.java 에서 클라이언트 요청을 처리할 수 있는 메서드를 선언해야 한다. ■ AdminMemberController.jav..

전자 도서관 프로젝트 - 일반 관리자 승인 처리 기능 구현

최고 관리자가 일반 관리자 목록을 조회하고 특정 일반 관리자의 로그인 권한을 승인해서 일반 관리자의 로그인이 가능하도록 기능을 구현해본다. 일반 관리자 추가하기 먼저, 일반 관리자 admin2를 생성한다. · 데이터베이스에서 tbl_admin_member 테이블을 조회하면 일반 관리자인 admin1, admin2는 아직 최고 관리자의 승인 전이여서 a_m_approval이 0인 것을 확인할 수 있다. · 최고 관리자가 일반 관리자의 a_m_approval 값을 1로 변경(승인)해서 일반 관리자도 로그인이 가능할 수 있도록 해준다. 일반 관리자 목록 조회하기 최고 관리자로 로그인하고 일반 관리자 목록을 조회하기 위해 '관리자 목록' 메뉴를 클릭한다. · 관리자 목록 메뉴 : 회원가입한 관리자 목록을 조회하..

전자 도서관 프로젝트 - 로그인 상태 유지 및 로그아웃 기능 구현

로그인 상태 유지 및 로그아웃 기능 구현 쿠키와 세션을 사용하는 이유 웹 서비스를 이용할 때 로그인을 하게 되면 로그아웃을 하거나 브라우저를 닫기 전까지는 로그인 상태가 유지된다. ex, 포털 사이트에 로그인하면 로그인 계정에 대한 메일을 확인할 수 있다. ex, 쇼핑몰에 로그인을 하면 로그인 계정으로 장바구니 및 상품 구매 등의 서비스를 이용할 수 있다. 일반적으로 웹 서비스에서는 로그인 상태를 유지하기 위한 방법으로 쿠키 또는 세션을 이용한다. HTTP 프로토콜의 특징 웹 서비스는 HTTP 프로토콜을 기반으로 한다. ① 비연결형 프로토콜 : 클라이언트와 서버의 관계를 유지하지 않는 특징이 있다. 즉, 클라이언트의 요청을 서버가 응답하면 더 이상 클라이언트와 서버의 관계는 유지되지 않는다. 클라이언트 ..