struts로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

struts로 검색한 결과
등록일:2008-02-25 17:24:39
작성자:
제목:struts-config.xml 구성


1.  struts-blank  의  struts-config.xml  을  보면서  기본적인  흐름을  보겠습니다

struts-blank.war  file  안에  구성이  미리  되어  있는  struts-config.xml  을  기본으로  설명을  하겠습니다
다시  한  번  의미를  생각해보시겠어요?

<?xml  version="1.0"  encoding="ISO-8859-1"  ?>
<!DOCTYPE  struts-config  PUBLIC
                    "-//Apache  Software  Foundation//DTD  struts  Configuration  1.2//EN"
                    "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

<struts-config>
        <form-beans>
        </form-beans>    

        <global-exceptions>
        </global-exceptions>    

        <global-forwards>
                <forward  name="welcome"  path="/Welcome.do"/>
        </global-forwards>      

        <action-mappings>
                <action  path="/Welcome"  forward="/pages/Welcome.jsp"/>
        </action-mappings>      

        <controller  processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>        
        <message-resources  parameter="MessageResources"  />      

        <plug-in  className="org.apache.struts.tiles.TilesPlugin"  >
            <set-property  property="definitions-config"  value="/WEB-INF/tiles-defs.xml"  />
            <set-property  property="moduleAware"  value="true"  />
        </plug-in>

        <plug-in  className="org.apache.struts.validator.ValidatorPlugIn">
            <set-property  property="pathnames"  value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
        </plug-in>

</struts-config>  

참고
그리고  부모  요소  (<!ELEMENT  web-app>)  인  web-app  안에  씌여져  있는  ()  안의  요소들  -  자식  요소  는
기록된  순서대로  사용되어야  한다는  것을  의미합니다

이해를  돕기  위해서  *  ,  ?  ,  +  의  의미를  요약하겠습니다  

No  Symbol  :  자식  element  는  반드시  한  번  나와야  한다는  의미입니다  부모요소  내에서  단  한번만  나옵니다
+  :  자식  요소는  부모  요소에서  한  번  이상  나올  수  있다는  의미입니다
*  :  자식  요소는  부모  요소  내부에서  한  번도  나오지  않거나  여러  번  나올  수  있습니다  (  가장  자주  사용됩니다  )
?  :  자식  요소는  부모  요소  내부에서  한  번도  사용되지  않거나  한  번  나올  수  있습니다  (  빈번하게  사용됩니다  )

위의  참고  자료를  바탕으로  아래의  dtd  를  분석해  보시겠어요?

<!ELEMENT  struts-config  (display-name?,  description?,  data-sources?,
                                                                        form-beans?,  global-exceptions?,  global-forwards?,
                                                                        action-mappings?,  controller?,  message-resources*,  plug-in*)>

위의  요소들로  struts-config.xml  이  구현이  되어  있습니다

각각의  요소에  관해  간단한  설명을  하겠습니다  

1.  data-sources  :  struts  에서  사용할  데이터  베이스  자원을  기입합니다.  주로  Connection  Pooling  을  사용합니다.

2.  form-beans  :
                struts  에서는  client  가  웹  브라우저에  입력한  parameter  들을  class  에  매핑시켜  처리하게  해줍니다  그  class  를  기입합니다.

3.  global-exceptions  :
                struts  로  구현된  application  에서  발생한  예외를  처리할  수  있는  page  로  forwarding  하는  역할을  합니다.
                error  처리는  해당  action  에서  exception  요소로  처리하는  것도  가능합니다.

4.  global-forwards  :
                모든  action  은  보여지는  화면(  jsp  page,  html  )  등으로  처리된  응답을  보내게  되어  있습니다.
                여기에  특정한  pattern  으로  처리해야  하는  page  가  있다면  key  값으로  정의하고  action  element  에서  활용하는  것이  가능합니다.

5.  action-mappings  :
                아마  가장  많이  주의  깊게  작성하는  곳일  될  겁니다.  client의  요청을  처리하는  주역할을  하는  action  class  를  해당하는
                요청에  mapping  하는  element  입니다.

6.  controller  :
                struts  의  이전  버전에서는  ActionServlet  을  상속해서  컨트롤러  기능을  오버라이드  해야  했지만,  struts  1.1  이  후에는
                RequestProcessor  로  많은  기능이  이전되었습니다.  그래서  각각의  application  을  위해서  각각의  controller  를  작성해야  한다면    여기에  RequestProcessor  를  상속한  class  를  기입하여  다양한  controller  의  기능을  구현하는  것이  가능합니다

7.  message-resources  :
              각각의  action  이  수행이  될때  error  message  가  나올수  있습니다.  이들  각각의  message  들을  지정해  둔  곳이라  보시는  것이  쉬우실  거라  생각합니다.

8.  plug-in  :
              이  element  는  struts  1.1  버전  이후에  나온  개념으로  org.apache.struts.PlugIn  interface  를  구현한  class  를  만들어  struts  로  구현한  application  이  구동될  때  동시에  실행되어  다양한  기능을  추가적인  코딩  없이  동적으로  작동하게  해주는  기능입니다.
              struts  에서  제공하는  Validator  와  Tiles  등이  이러한  plugin  기능을  활용한  것입니다  차후  validator  와  tiles  에  관한  사용법을    강좌에  연재할  계획입니다.

  

위의  간단한  설명을  잘  읽어두시길  바랍니다.
위의  element  들을  잘  이해하고
RequestProcessor  class  내부의  process()  의  내부적인  구조를
잘  이해하는  것이  struts  의  대부분이라  생각하셔도  됩니다.  

그래서  요청을  처리하는  것은  다음의  과정으로  이뤄지게  됩니다.  

0.  application  이  로딩되면  web  container  는  web.xml  을  읽어서  요청을  처리할  준비를  합니다.
      (  message  resource  로딩  -->  ActionServlet  class  를  control  하는  초기화  parameter  로딩  --->  web.xml  의  서블릿  mapping  정보로딩  -->  struts-config.xml  을  읽어  ServletContext  에  저장  -->  data  source  (커넥션  풀링)  초기화  -->  각  plugin  의  init()  호출)

1.  우선  client  의  요청을  분석한  다음  ActionServlet  이  처리하게  합니다.
2.  client  의  request  당  RequestProcessor  의  instance  를  하나씩  생성하여  요청을  처리합니다.
3.  이  때  다양한  요청을  struts-config.xml  의  mapping  정보(  action-mappings  )  를  보고  해당  Action  class  가  처리하게  합니다.
4.  그리고  이  때  client  page  의  정보를  해당하는  Action  class  가  처리하게  할  때  각각의  parameter  를  만들어둔  ActionForm  class에    mapping  시킵니다.  (  form-beans  )
5.  이때  해당하는  error  또는  exception  이  발생하면  해당하는  (  global-exceptions  )  처리  class  가  처리한  다음에  경로로  요청을  전달합니다.  

6.  그리고  ActionForm  안의  validate()  안에  해당하는  field  check  를  마친  다음에  error  가  발생하였다면  message-resources  안에  지정된  message  를  client  단의  web  page  에  보여줘서  바른  입력을  하게  합니다.

7.  Action  class  에서  요청을  처리한  다음에  지정한  경로로  forwarding  처리를  하게  됩니다.
      (  action  안에  지정한  forward  요소,  global-forwards  안에  지정한  경로  )

위의  과정으로  요청에  응답을  하게  됩니다
위에서  제가  분홍색으로  표시된  부분을  보시다시피
각각의  요소들이  위의  과정에서  사용이  됩니다
위의  과정은  struts  로  구현된  application  에서  요청을  처리하는  기본입니다.
잘  읽고  정리해두시길  바랍니다.
[:2008년  03월  28일  09:55:13  수정되었습니다.:]