본문 바로가기
카테고리 없음

[struts2] overview

by 뽀도 2016. 7. 21.

- 스트럿츠2는  mvc 디자인 패턴을 기본으로하는 인기있고 오래 사용된 웹 어플리케이션 프레임 워크다.

- 스트럿츠2는 스트럿츠1의 다음 버전이 아니다. 그러나 스트러츠2는 완전히 새로 스트럿츠 프레임워크를 완전히 새로 썼다.

 

- WebWork FrameWork + Struts frameWork  =  Struts2 FrameWork.

 : 완전히 더해서 나왔다는 뜻은 아니고 두개가 서로 힘을 합쳐 만들어 냈다..

 

- 태그 지원, Ajax 지원, 다른 프레임워크와 결합이 쉬움, Template 지원 등등

 

- 단점

: 초보자가 배우기엔 난이도가 있다.

: 문서가 별로 없다. jsp나 servlet에 비교하면 스트럿츠는 온라인에만 리소스가 몇개 있는 정도다.

그래서 초보자는 온라인 아파치 문서를 찾는다.

: 프레임워크를 이해하는데 어렵다..

 

- Struts1.X와 비교했을 때 가장 큰 특징이느 ServletApi가 없다는 것이며 이로 인해 웹이 아닌 곳에서도 사용이 가능한 일반 클래스인데, 결국 POJO빈을 이용하여 쉽고 유연한 개발이 가능해 졌다는 것이다.

예를 들면 HTML 폼 데이터를 특정 자바 클래스로 Submit 시키는 데 이 자바 클래스를 Action이라 부르는 것이다.

또한 화면에서 msg에 대한 접근을 getter  메소드를 이용해서 하게 된다.

 

 

- Request initaion [httpServletRequst]

 : 리퀘스트는 유저의 웹 브라우저에서 시작하고 끝난다.

( : 리퀘스트는 Url의 Form안에 있다. 액션을 나타낸다.)

- 유저의 요청은 필터체인을 통해서 전달된다. 이 필터체인은 액츄얼한 결정을 생성합니다. 요청한 필터디스패처를 호출하여

 

- Struts2 Servlet Filter [FilterDispatcher]

 : 필터디스패처은 스트럿츠2에서 컨트롤러입니다.

 : 필터디스패치는 요청에 맞은 액션을 결정해 줍니다.

 : 필터디스패쳐는 호출되는 동안에 액션 맵퍼와 상의합니다. 결정하기 위해서, 요청이 액션을 호출했다면

 

: 프레임 워크는 모든컨트롤러를 다룹니다. 프레임워크는 정보(request Url과 map된 액션 정보)가 필요합니다.  이 정보는 [struts.xml]을 사용하는 프레임 워크에 전달 됩니다.

 

ActionMapper

: 액션 매퍼는 액션을 호출해야합니다. 필터 디스패처가 액션 프록시에게 컨트롤을 위임했다면

 

ActionProxy

:  액션 프록시는 프레임워크 [sturts.xml]과 상의?(이야기합니다) 그리고 요청처리한 수행 결과 정보를 갖고 있습니다...

 

맞나 어려워ㅠ ㅠ

 

 

 

 

출처 :

 

http://zion437.tistory.com/161

 

http://www.tutorialspoint.com/struts_2/struts_overview.htm

 

 

Request life cycle

Based on the above digram, one can explain the user's request life cycle in Struts 2 as follows:

  • User sends a request to the server for requesting for some resource (i.e pages).

  • The FilterDispatcher looks at the request and then determines the appropriate Action.

  • Configured interceptors functionalities applies such as validation, file upload etc.

  • Selected action is executed to perform the requested operation.

  • Again, configured interceptors are applied to do any post-processing if required.

  • Finally the result is prepared by the view and returns the result to the user.

 

 

 

반응형

댓글