-------------------------------------------------[모델 1]
- 웹브라우저의 요청(request)을 받아들이고, request.getParameter()
   웹브라우저에 응답(response)해 주는 처리에 대해 단독으로 처리하는 구조
- 간단한 웹어플리케이션을 구축할 때 적당하다
- 장점:단순한 페이지 흐름으로 인해 개발 기간이 단축된다
- 단점:웹어플리케이션이 복잡해 질수록 유지 보수가 힘들다
- 모델1방식에서 서블릿을 이용해서 웹페이지를 구축할 수 있으나
   사용방식 복잡하기 때문에 활용도가 많이 낮았다.
   javax.servlet.http.HttpServlet;
   javax.servlet.http.HttpServletRequest;
   javax.servlet.http.HttpServletResponse;
   method=get   : doGet()
   method=post  : doPost()

- 서블릿의 방식이 복잡하기 때문에 개발자가 웹에서 쉽게 접근할수 있도록
   별도로 고안된 서버스크립트언어(.jsp)가 만들어 졌다.

 

-----------------------------------------------------[모델2]
- 컨트롤 컴포넌트 : 요청(request)처리, 데이터접근, 비지니스 로직
- 뷰 컴포넌트 : 뷰는 어떠한 처리 로직도 포함하고 있지 않다.
- 사용자의 요청의 진입점은 컨트롤러의 역할을 하는 서블릿이 담당하고
   모든 흐름을 통제한다.
- 장점:비즈니스 로직과 뷰의 분리로 인해 어플리케이션이 명료해 지고,
          유지보수와 확장이 용이하다
- 단점:MVC구조에 대한 개발자들의 이해가 필요해서
          개발자의 높은 수준이 요구된다.
- 유지보수와 확장을 용이하게 하기위해서 새로운
   MVC2기반의 기술(프레임워크)이 계속 출시되고 있다.
   예를들어) spring, myBatis, struts2, struts1 (기본MVC방식과 거의 동일)

 


예제) 서블릿을 이용해서 사용자가 요청한 자료 처리하기

 

RequestDispatcher
- 클라이언트로부터 요청(request)을 받고, 그것을 서버상의
   어떤 리소스(Servlet, HTML, JSP 페이지)로 보내는 작업을 할때 사용한다.
- 사용자의 원래 요청을 다른 서블릿이나 JSP페이지 등과
   같은 다른 동적 웹 자원으로 전달한다.


* 작성순서
1) MessageController.java
2) WebContent/control/messageView.jsp

 

* 결과확인
http://localhost:9090/mvc2Test/servlet/part.control.MessageController

http://localhost:9090/mvc2Test/servlet/part.control.MessageController?message=happy

http://localhost:9090/mvc2Test/servlet/part.control.MessageController?message=base

http://localhost:9090/mvc2Test/servlet/part.control.MessageController?message=sky

 

-----------------------------------------------------[커맨드패턴]
- 명령어 유형
- 서블릿에서 사용자의 요청을 명령어 전달
- 사용자가 어떤 요청을 했는지 판단하기 위한
   가장 일반적인 방법이 명령어로 사용자의 요청을 전달하는 것이다.
   예를 들어, 글목록 명령, 글삭제 명령
- 1) 요청 파라미터로 명령어를 전달하는 방법
      http://localhost:9090/mvc/servlet/Controller?command=Message
- 2) 요청 URI자체을 명령어로 사용하는 방법
       http://localhost:9090/mvc/control/write.do
       http://localhost:9090/mvc/control/list.do
       http://localhost:9090/mvc/control/update.do
       http://localhost:9090/mvc/control/delete.do


예제) 요청 파라미터로 명령어를 전달하는 방법
        http://localhost:9090/mvc2Test/servlet/Controller?command=Message

 

----------------------------------------------------작성순서
1) 명령어의 목록 파일 작성하기
    /WEB-INF/Command.properties

2) CommandProcess.java 작성
  - 인터페이스. 명령어 메뉴 나열. 매니저 클래스역할
  - 서블릿으로부터 명령어의 처리를 지시받아 해당 명령에 대한 작업을 처리하고
     작업결과를 서블릿으로 리턴한다.
  - 실제로 작업을 처리하는 것은 구현클래스가 수행

3) MessageProcess.java
  - 명령어 처리 클래스

4) Controller.java
  - 비지니스 로직 부분

5) web.xml
  <!-- 서블릿 매핑하기 -->
  <servlet>
    <servlet-name>해당클래스 네임스페이스</servlet-name>
    <servlet-class>패키지명을포함한 클래스명</servlet-class>
   
    <init-param>
       <param-name>명령어 목록 파일 네임스페이스</param-name>
       <param-value>명령어 목록 파일(물리적이름 절대경로)</param-value>
    </init-param>
  </servlet>

6) /control/process.jsp

 

 

'..열심히 공부하세.. > MVC' 카테고리의 다른 글

[07] MVC2패턴 게시판 - ① 쓰기  (0) 2012.06.26
[06] 서블릿 요청 커맨드 패턴 (~~~.do)  (0) 2012.06.23
[04] 서블릿 작동원리 및 기초  (0) 2012.06.20
[03] 커스텀태그  (0) 2012.06.19
[02] JSTL  (0) 2012.06.19

+ Recent posts