본문 바로가기
이카루스의 날개/JSP

초보을 위한 스트럿츠(struts) 기초 강좌 - 1부

by 윙혼 2007. 3. 6.
출처 : http://www.jspclub.co.kr

초보을 위한 스트럿츠(struts) 기초 강좌 - 1부


# 강좌를 시작하며 #
1부에서는 스트럿츠의 가장 기본인 Action mapping 을 직접 따라 해보고
스트럿츠의흐름을 이해하도록 합시다.
그리고 스트럿츠를 처음 시작하는 사람의 이해를 돕기 위해서 화면 캡처부분을
많이 추가 했습니다.
강좌의 원할한 진행을 위해 존칭은 생략 하겠습니다.


# 스트럿츠란 #
모델1 방식
직접 jsp을 호출하는 방식이다. jsp에는 DB연결부터 모든 비지니스 로직과
실제 브라우저상에 보여줄 프리젠테이션 레이어 부분이 같이있다.
물런 Beans을 사용하면 DB부분은 따로 뺄수 있지만. 각각의 jsp 가
호출된다면 모델1 방식이다.

모델2(MVC) 방식
모델1의 가장 큰 단점은 jsp 소스가 길어진다는것이다. 모든것을 jsp가 주도로
처리 하니 당연한 일이다.그로므로서 개발 속도는 빠를지언정 나중에 그소스를
다시 보거나 유지보수할땐 힘들어지는 경우가 많다.그래서 등장한것이 모델2
MVC(model - Controller - view) 방식이다.모든 요청은 Controller 맞고 비지니스
로직은 model이 담당하고 jsp는 view의 역활로 결과를 화면상에 뿌려주는 역활이다.
모델1에서 jsp 혼자 했던 일을 각각의 역활을 나눠주는것이다. jsp는 훨씬 가벼워졌고
비지니스로직과 프리젠테이션 레이어를 분리하므로서 비지니스로직을 재사용도 가능해졌고
유지보수에 많은 장점을 가지게 된다.

스트럿츠(struts) Framework
모델2 도 Controller 가 너무 복잡해지고 재사용이 거의 불가능 해지는 단점이 있다
그래서 그런 단점을 보완하고 모델1의 장점과 모델2의 장점을 모아서 스트럿츠를 만들었다.
스트럿츠는 가장 널리 쓰이는 Framework중에 하나이다.


# 기본 환경 #
JDK 1.5
Tomcat 5.5
struts-1.3
이클립스 3.2 (wtp 포함 all-in-one)


# 환경 세팅 #
1 기본 환경 세팅
http://www.jspclub.co.kr/board/view.jsp?div=study&no=700&npage=1
위 강좌를 보고 이클립스 세팅을 마친다.
참고로 필자는 이클립스의 workspace 는 c:\dev 로 했고 프로젝트 명은 myjsp로
했다.

2 struts 라이브어리 다운
http://struts.apache.org/download.cgi#struts135
struts-1.3.5-lib.zip 을 다운 받는다.

3 다운받은 라이브어리 WEB-INF/lib 안에 넣는다.



# WEB-INF/web.xml 에서 struts 설정 부분 추가 #
web.xml 부분에 확장자가 *.do 패턴으로 오는것은 모두 org.apache.struts.action.ActionServlet 을
호출하라는 부분을 추가 하는 부분이다.
<!--Standard  Action  Servlet  Configuration  -->    
<servlet>    
    <servlet-name>action</servlet-name>    
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>    
    <init-param>    
            <param-name>config</param-name>    
              <param-value>/WEB-INF/struts-config.xml</param-value>    
    </init-param>    
    <init-param>    
          <param-name>debug</param-name>  
             <param-value>2</param-value>    
    </init-param>  
       <init-param>    
          <param-name>detail</param-name>    
          <param-value>2</param-value>    
    </init-param>    
    <load-on-startup>2</load-on-startup>    
</servlet>    

<!--  Standard  Action  Servlet  Mapping  -->    
<servlet-mapping>    
    <servlet-name>action</servlet-name>  
       <url-pattern>*.do</url-pattern>    
</servlet-mapping>




# WEB-INF/struts-config.xml 파일 추가 #
스트럿츠의 config파일이다.




# WEB-INF/struts-config.xml 에 action-mapping 내용 추가 #
위의 web.xml에 의해 호출된 ActionServlet은 struts-config.xml 정보를 읽어 처리 되어진다.
action 패스가 /Index 이면 examples.IndexAction 클래스의 excute 메소드를 호출한다.
<?xml  version="1.0"  encoding="UTF-8"?>    

<!DOCTYPE  struts-config  PUBLIC    
"-//Apache  Software  Foundation//DTD  Struts  Configuration  1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">    
<struts-config>    
    <action-mappings>
      <action  path="/Index"  type="examples.IndexAction">
                <forward  name="success"  path="/index.jsp"  />
        </action>
      </action-mappings>
</struts-config>  
  



# examples 페키지 추가 #
examples라는 패키지를 만든다 .



# IndexAction class 추가 #



# IndexAction class 비지니스 로직 부분추가 #
struts-config.xml 정보에 의해 호출된 excute 안에서 request 에 title 이란 이름으로
"나의 첫번째 struts 성공" 이라고 request attribute에 추가 한다.
return mapping.findForward("success"); 이부분은 struts-config.xml 에 정의된 매핑이름이
success 일경우 index.jsp 파일로 Forward 시켜준다
package  examples;

import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.apache.struts.action.Action;
import  org.apache.struts.action.ActionForm;
import  org.apache.struts.action.ActionForward;
import  org.apache.struts.action.ActionMapping;

public  class  IndexAction  extends  Action  {

        public  ActionForward  execute(
                ActionMapping  mapping,
                ActionForm  form,
                HttpServletRequest  request,
                HttpServletResponse  response)
                throws  Exception  {
        
         request.setAttribute("title",  "나의  첫번째  struts  성공");

                return  mapping.findForward("success");

        }

}



# index.jsp 추가 #



# index.jsp 내용 #
examples.IndexAction 에서 넣은 request attribute 부분을 출력한다.
<%@  page  language="java"  contentType="text/html;  charset=EUC-KR"
        pageEncoding="EUC-KR"%>
<%=request.getAttribute("title")  %>



# 추가된 파일들 #



# 톰켓 서버 시작 #


# 결과 확인 #
"나의 첫번째 struts 성공" 이란 글씨가 보이면 성공이다.


댓글