LANGUAGE/JSP

MVC 패턴 #2-1 게시판 만들기

옐옐루 2022. 6. 16. 18:18

MVC 패턴을 이용하여 게시판 한번 짜보기 

mvc 패턴 활용한 게시판의 컴포넌트 설계본

 

* 순서 헷갈릴 경우 좀 더 순서 공부 다시 하기 

1.      글목록

list.do 요청 → BFrontController(글목록로직분기) → BListService(DAO에 글목록 생성 요청) → BDao(DB작업) → BListService → BFrontController → list.jsp

2.      글쓰기

Write_view.do 요청 → write_view.jsp에서 submit버튼 누르면 write.do 요청 → BFrontController(글쓰기로직분기) → BWriteService(DAO에 글쓰기 요청) → BDao(DB 작업) → BWriteService → BFrontController → list.do

3.      글 내용 보기

Content_view.do 요청 → BFrontController(글 내용보기 분기) → BContentService(DAO에 글 내용 보기 요청) → BDao(DB작업) → BListService → BFrontController → content_view.jsp

4.      글 내용 수정

Content_view.jsp에서 modifyView.do 요청 → BFrontController(글쓰기로 분기) → BModifyViewService(DAO에 글 수정 요청) → BDao(DB작업) → BListService → BFrontController → list.jsp

5.      글 삭제

Content_view.jsp → BFrontController(글삭제로 분기) → BDeleteCommand(DAO에 글 삭제 요청) → BDao(DB작업) → BListService → BFrontController → list.jsp

6.      답변글 달기

Content_view.jsp에서 replyView.do요청 → BFrontController(답변글 저장으로 분기) → BReplyViewCommand(DAO에 원글에 대한 정보 요청) → BDao(DB작업) → BReplyViewCommand  → BFrontController → reply_view.jsp에서 reply.do요청 → → BFrontController(답변글 저장으로 분기) → BReplyCommand(DAO에 답변글 요청) → BDao(DB작업) → BListCommand → BFrontController → list.jsp

 



게시판 로직 짜기

 

1단계 sql 문 먼저 작성해놓기 (table 생성,  dummy data 넣어주기, dao에 들어갈 query 작성해주기 

TABLE 만들기

2단계  DTO 만들어주기 

3단계  DAO 만들어주기 
* 평소랑 만드는 dao와의 차이점 : getConnection 방식 좀 다르게 ! 

1)변수 선언 부분에 private DataSource ds; 선언해주기 

-- connection 풀의 커넥션 객체를 안고 있는 아이가 datasource 이며, 초기화 해주지 않아도 기본적으로 null이 잡혀있음 

2)ds 선언 후 생성자 함수 안으로 들어가서 로직 처리 해주기 

 

getConnection을 할 수 있는 방법이 여러개 인데  이번 로직에서 수행한 방법  

ㅇ Context (Server/context.xml의 context를 의미) ctx 는 변수명 

ㅇ즉 Context형의 ctx 변수에 = new Initialcontext(); 안에 우리가 만들어 놓은 connection 소스들을 담아오는 과정

   - context.xml 안에 들어가서 보면 이미 안에 DriverClassName (드라이브를 여는 과정) 등이 선언되어 있음 

ㅇ따라서 Context에 new initalcontext()를 하면 conn 객체가 만들어 지는 것이고 

ㅇDataSource는 이러한 connection 객체 자체를 안고 있는 아이기 때문에 

   위에서  DataSource ds 를 하면 connection 객체 자체를 담을 변수가 생성되는 것이고 그 안에다 lookup을 해서 connection 객체를 담아내는 것,      

ㅇ따라서 ds.getConencion의 방식으로 connection을 불러 오면 됨  

 

3) dao 생성시 매개변수 안에 (BoardDto dto) 처럼 만드는 아이들 (보통 update 관련 문들) 의 매개변수안에 직접 받아야 하는 변수들을 선언해줄수도 있음  <원글쓰기 로직 확인하기>

기존방식
다른방식

 


ㅇ이어지는 내용은 2탄 참고 

 

 

 

MVC패턴 #2-2 게시판

4단계 index.jsp를 생성하기 list.do 형태의 Controller (서블릿)으로 향할 수 있도록 forward 페이지 작성해주기 5단계 Controller 서블릿 생성해주기 1. @WebServlet("*.do) 매핑 바꿔주는 작업 진행 2. doPost..

tjqud531531.tistory.com

 

 

 

 

 

반응형