-------------------------------------------------[모델 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 |