현재 위치 - 중국 분류 정보 발표 플랫폼 - 비즈니스 서비스 정보 - Struts2의 핵심 작동 원리

Struts2의 핵심 작동 원리

.Struts 2의 기본 프로세스

Struts 2 프레임워크는 핵심 컨트롤러 FilterDispatcher, 비즈니스 컨트롤러 및 사용자 구현 비즈니스 로직 구성 요소의 세 부분으로 구성됩니다. 이 세 부분에서 Struts 2 프레임워크는 핵심 컨트롤러 FilterDispatcher를 제공하며 사용자는 비즈니스 컨트롤러 및 비즈니스 로직 구성 요소를 구현해야 합니다.

2. 핵심 컨트롤러: FilterDispatcher

FilterDispatcher는 Struts 2 프레임워크의 핵심 컨트롤러로 웹 애플리케이션에서 필터로 실행되며 모든 사용자 요청을 가로채는 역할을 합니다. , 사용자 요청이 도착하면 이 필터는 사용자 요청을 필터링합니다. 사용자 요청이 작업으로 끝나는 경우 해당 요청은 처리를 위해 Struts 2 프레임워크로 전송됩니다.

Struts 2 프레임워크는 *.action 요청을 얻은 후 *.action 요청의 이전 부분을 기반으로 호출할 비즈니스 로직 구성 요소를 결정합니다. 예를 들어 login.action 요청의 경우 Struts 2는 요청을 처리하기 위해 login이라는 Action을 호출합니다.

Struts 2 애플리케이션의 Action은 모두 struts.xml 파일에 정의되어 있습니다. 이 파일에서 Action을 정의할 때 Action의 name 속성과 class 속성이 정의되고 name 속성에 따라 처리가 결정됩니다. Action. 어떤 사용자가 요청했는지, class 속성은 Action의 구현 클래스를 결정합니다.

사용자 요청을 처리하기 위해 Struts 2에서 사용하는 Action 인스턴스는 사용자가 구현한 비즈니스 컨트롤러가 아니라 Action 프록시입니다. 사용자가 구현한 비즈니스 컨트롤러는 Servlet API와 연결되어 있지 않기 때문에 분명히 사용자 요청을 처리할 수 없습니다. Struts 2 프레임워크는 HttpServletRequest 요청의 요청 매개변수를 구문 분석하고 이를 Action에 전달하며 사용자 요청을 처리하기 위해 Action의 실행 메소드를 다시 호출하는 일련의 인터셉터를 제공합니다.

분명히 위의 처리 과정은 전형적인 AOP(Aspect-Oriented 프로그래밍) 처리 방식이다. 그림 3.19는 이 처리 모델을 보여줍니다.

그림 3.19 Struts 2의 인터셉터와 액션

그림 3.19에서 볼 수 있듯이 사용자가 구현한 Action 클래스는 Struts 2의 Action 프록시의 프록시 대상일 뿐입니다. 사용자가 구현한 비즈니스 컨트롤러(Action)에는 사용자 요청 처리가 포함됩니다. 사용자의 요청 데이터는 HttpServletRequest 객체에 포함되어 있으며 사용자의 Action 클래스는 HttpServletRequest 객체에 액세스할 필요가 없습니다. 인터셉터는 HttpServletRequest의 요청 데이터를 구문 분석하고 이를 비즈니스 로직 구성 요소 Action 인스턴스에 전달하는 역할을 합니다.

3. 비즈니스 컨트롤러

그림 3.19에서 볼 수 있듯이 비즈니스 컨트롤러 구성 요소는 일반적으로 사용자가 구현한 Action 클래스의 인스턴스입니다. 이 메소드는 문자열을 반환합니다. 이 문자열은 비즈니스 컨트롤러가 사용자 요청을 처리한 후 실행 메소드는 처리 결과에 따라 다른 문자열을 반환합니다. 각 문자열은 보기 이름에 해당합니다.

시스템 아키텍처 설계에 대해 어느 정도 이해하고 있는지, 자신이 이해한 내용을 소프트웨어 설계에 있어 상호 소통의 핵심 포인트를 명확하게 표현할 수 있는지를 검토하는 것이 문제라고 생각합니다.