본문 바로가기
JSP/JSP & Servlet

MVC패턴 게시판

by avvin 2019. 5. 23.

MVC패턴 게시판 만들기

(Model, Viewer, Controller Pattern) 


model 1 과의 차이점


model1은 jsp페이지 /  model( 빈클래스, DAO클래스 )로 구성 


model2는 jsp 페이지 / model ( 빈클래스, DAO클래스 ) / control ( control 서블릿 클래스 ) 로 구성


model1과 model 패키지 ( Bean클래스, DAO 클래스 )는 동일하나


model1 Board의 jsp페이지에 쓰인 넘어온 데이터 관련 자바코드를 control 패키지의 서블릿 클래스에 옮긴다.

나머지 자바코드는 taglib로 대체하여 표현한다.



Controller는 request로 jsp페이지에서 데이터를 받고

처리한 데이터를 또다시 request에 담고 RequestDispatcher 객체로 jsp페이지나 다른 Controller 서블릿 클래스로 보내준다.


페이지가 넘어갈때마다 매번 컨트롤러로 넘기는게 좋지만 

다음에 올 jsp페이지에 자바코드가 하나도 없다면 jsp →jsp로 바로 넘어가도(button) 무방하다



사용자에게서 입력받는(저장해야하는) 정보가 있을때

model1 방식에서는 Proc.jsp페이지가 필요하고

model2 방식에서는 ProcCon.do 가 필요하다


model 1 방식

 

WriteForm.jsp - WriteProc . jsp( DAO메서드 호출 ) - BoardList



model 2 방식


WriteForm.jsp  - WriteProcCon . java( DAO메서드 호출 ) - BoardList


form태그로 데이터만 Con.java로 넘기고, button은 List로 가도록한다.



DB에서 읽어와야하는 정보가 있을때

model1 방식에서는 jsp페이지에서 DAO메서드를 직접 호출하고

model2 방식에서는 Con.java가 호출한다. (컨트롤러부터 실행)



model 1 방식 

 

 Info . jsp( DAO메서드 호출 )



model 2 방식  


InfoCon.java( DAO메서드 호출 ) - Info . jsp





model 1

사용자에게서 데이터를 입력받을 때(저장할때), 일부 데이터를 사용자에게 입력받지 않고 Proc로 넘길땐 

<input type="hidden" name="..." value="..." >을 쓴다.


[ 입력받기전에 받아와야할 데이터 받아오기 - 입력받기 - 입력받은 데이터 넘기기 ] - 처리페이지에서 DAO호출

(입력받지 않고 그대로 넘기는 데이터는 hidden을 사용하여 Proc.jsp에 넘긴다.) 



model 2


MVC방식에서도 hidden으로 넘기는건 똑같으나 표현식 대신 EL문을 쓴다.

넘어온 데이터는 Con.java에서 넘어왔으므로 EL문으로 표현이 가능하다.



model 1 방식

 

ReWriteForm.jsp -( "hidden" ... value="<%=    %>" )- ReWriteProc . jsp( DAO메서드 호출 ) - BoardList



model 2 방식


ReWriteCon . java  - WriteForm.jsp  -( "hidden" ... value="${    }" )- WriteProcCon . java( DAO메서드 호출 ) - BoardList