본문 바로가기
네이버클라우드/JAVA 웹 프로그래밍

JAVA 73일차 (2023-09-05) 자바 프로그래밍_76. CRUD 기능을 한 개의 페이지 컨트롤러로 합치기_개인프로젝트 - 마트 관리 시스템

by prometedor 2023. 9. 5.
## 76. CRUD 기능을 한 개의 페이지 컨트롤러로 합치기

- CRUD 관련 메서드를 한 개의 클래스로 합치는 방법
- 요청 별로 메서드를 구분하여 호출하는 방법

 

=>

ㄴ BoardAddController -> BoardController 로 이름 변경하기

=>

BoardController.java

ㄴ @RequestMapping 애노테이션에 ("/board/add") 추가하기

=>

RequestMapping.java

ㄴ 해당 코드 추가

=>

BoardDeleteController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/board/delete") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>
BoardDeleteController.java

ㄴ 해당 코드 복사하기

=>

BoardController.java

ㄴ 복사한 코드 붙여넣기

=>

BoardController.java

=>

BoardController.java

ㄴ 메서드 이름이 겹치므로 기능별로 이름을 설정해주도록 함

=>

ㄴ BoardController 에 BoardDeleteController 코드 추가했으므로 BoardDeleteController.java 파일 삭제

=>

BoardDetailController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/board/detail") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

BoardDetailController.java

ㄴ 해당 코드 복사하기

=>
BoardController.java

ㄴ 복사한 코드 붙여넣기

=>

BoardController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ BoardController 에 BoardDetailController 코드 추가했으므로 BoardDetailController.java 파일 삭제

=>

BoardListController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/board/list") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

BoardListController.java

ㄴ 해당 코드 복사하기

=>
BoardController.java

ㄴ 복사한 코드 붙여넣기

=>

BoardController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ BoardController 에 BoardListController 코드 추가했으므로 BoardListController.java 파일 삭제

=>

BoardUpdateController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/board/update") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

BoardUpdateController.java

ㄴ 해당 코드 복사하기

=>
BoardController.java

ㄴ 복사한 코드 붙여넣기

=>

BoardController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ BoardController 에 BoardUpdateController 코드 추가했으므로 BoardUpdateController.java 파일 삭제

=>

BoardFileDeleteController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/board/fileDelete") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

BoardFileDeleteController.java

ㄴ 해당 코드 복사하기

=>
BoardController.java

ㄴ 복사한 코드 붙여넣기

=>

BoardController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ BoardController 에 BoardFileDeleteController 코드 추가했으므로 BoardFileDeleteController.java 파일 삭제

 

 

 

=>

ㄴ LoginController -> AuthController 로 이름 변경

=>

AuthController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/auth/login") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

BoardController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

LogoutController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/auth/logout") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

LogoutController.java

ㄴ 해당 코드 복사하기

=>
BoardController.java

ㄴ 복사한 코드 붙여넣기

=>

BoardController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ AuthController 에 LogoutController 코드 추가했으므로 LogoutController.java 파일 삭제

 

 

 

=>

ㄴ MemberAddController -> MemberController 로 이름 변경

=>

MemberAddController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/member/add") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

MemberController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

MemberDeleteController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/member/delete") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

MemberDeleteController.java

ㄴ 해당 코드 복사하기

=>
MemberController.java

ㄴ 복사한 코드 붙여넣기

=>

MemberController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ MemberController 에 MemberDeleteController 코드 추가했으므로 MemberDeleteController.java 파일 삭제

=>

MemberDetailController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/member/detail") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

MemberDeleteController.java

ㄴ 해당 코드 복사하기

=>
MemberController.java

ㄴ 복사한 코드 붙여넣기

=>

MemberController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ MemberController 에 MemberDetailController 코드 추가했으므로 MemberDetailController.java 파일 삭제

=>

MemberListController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/member/list") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

MemberDeleteController.java

ㄴ 해당 코드 복사하기

=>
MemberController.java

ㄴ 복사한 코드 붙여넣기

=>

MemberController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ MemberController 에 MemberListController 코드 추가했으므로 MemberListController.java 파일 삭제

=>

MemberUpdateController.java

ㄴ @Controller 애노테이션 옆에 있는 ("/member/update") 를 잘라내서 @RequestMapping 애노테이션 옆에 붙여넣기

=>

MemberDeleteController.java

ㄴ 해당 코드 복사하기

=>
MemberController.java

ㄴ 복사한 코드 붙여넣기

=>

MemberController.java

ㄴ 메서드 이름은 기능별로 설정해주도록 함

=>

ㄴ MemberController 에 MemberDetailController 코드 추가했으므로 MemberDetailController.java 파일 삭제

 

 

 

DispatcherServlet.java

ㄴ 해당 코드 추가

=>

DispatcherServlet.java

ㄴ RequestHandlerMapping 메서드 추가한 후 생성자 추가

=>

DispatcherServlet.java

ㄴ bean 이라는 이름의 객체를 이용하도록 하기

=>
DispatcherServlet.java

=>

DispatcherServlet.java

ㄴ Create method 'registerRequestHandler' in 'DispatcherServlet 선택

=>

DispatcherServlet.java

=>

DispatcherServlet.java

=>
DispatcherServlet.java

=>
DispatcherServlet.java

ㄴ bean 객체의 클래스에서 선언된 모든 메서드를 가져와서 각 메서드에 대해 @RequestMapping 어노테이션을 확인하도록 함
ㄴ @RequestMapping 어노테이션이 존재하는 경우, 해당 어노테이션에서 정의한 URL 경로(value()로 정의)를 획득함
ㄴ 이 URL 경로를 handlerMap에 등록

ㄴ 이 때, RequestHandlerMapping 객체를 생성하여 컨트롤러 객체(bean)와 메서드(m)를 함께 저장하도록 함

=>

DispatcherServlet.java

ㄴ 해당 출력 코드는 init() 메서드가 아닌 registerRequestHandler 메서드로 이동시킴

=>

DispatcherServlet.java

ㄴ 등록한 URL 경로와 그에 대응하는 메서드 이름을 출력하도록 출력 코드 추가

=>
App 실행

=>

=>

=>

=>

=>
DispatcherServlet.java

=>

DispatcherServlet.java

ㄴ 해당 코드 제거

=>
DispatcherServlet.java

ㄴ 해당 코드 제거

=>
DispatcherServlet.java

ㄴ requestHandler -> requestHandlerMapping 으로 변경

=>
App 재실행

=>

=>

=>
HomeController.java

=>
HomeController.java

=>
App 재실행

=>

=>

=>

ㄴ 로그인 정보 입력 후 [로그인] 선택

=>

ㄴ 로그인 정상적으로 실행됨을 확인

=>

ㄴ 회원 목록 정상적으로 출력됨을 확인

ㄴ 새 회원 선택

=>

ㄴ 회원 정보 입력 후 [등록] 선택

=>

ㄴ 새 회원이 정상적으로 등록됨을 확인

=>

ㄴ 회원 정보 변경 후 [변경] 선택

=>

ㄴ 회원 정보가 정상적으로 변경됨을 확인

=>

ㄴ 회원 삭제 선택

=>

ㄴ 29번 회원이 정상적으로 삭제됨을 확인

 

 

DispatcherServlet.java

ㄴ 필요 없는 변수 삭제하고 직접 넣어주기