🚀 Apache Struts2란?
- Java 기반 MVC 웹 프레임워크
- Servlet + JSP 기반으로 동작
- XML 설정(
struts.xml
)을 통해 컨트롤러, 뷰 연결 - Spring MVC 등장 전, 웹 개발의 표준이었던 프레임워크
📌 Struts 주요 개념
구성 요소 | 역할 |
---|---|
StrutsPrepareAndExecuteFilter | 모든 요청을 중앙에서 관리 (Front Controller 역할) |
Action 클래스 | 컨트롤러 역할, 비즈니스 로직 처리 (Struts 1의 ActionServlet 없이 직접 실행됨) |
Interceptor | 요청과 응답을 가로채서 공통 로직 처리 (예: 인증, 로깅, 예외 처리 등) |
JSP(View) | 사용자 화면 (Struts 2 태그 및 OGNL 표현식 사용 가능) |
struts.xml | 요청 URL과 액션 클래스 매핑 (Struts 1의 struts-config.xml 대체) |
ValueStack & OGNL | 데이터 저장 및 표현식 언어 처리 (Action 클래스의 속성 접근 가능) |
ActionSupport | 기본 기능을 제공하는 Struts 2의 Action 클래스 (유효성 검사, 로깅 등 지원) |
📂 Struts의 동작 방식
- 사용자 요청 →
StrutsPrepareAndExecuteFilter
StrutsPrepareAndExecuteFilter
→ 요청을 매핑된 Action으로 전달- 요청 전 Interceptor 실행 → 사전 처리 (예: 로그인 체크, 로깅 등)
- Action 실행 → 비즈니스 로직 처리 및 데이터 생성
- 요청 후 Interceptor 실행 → 후처리 (예: 응답 가공, 데이터 변환 등)
- Result 반환 → 어떤 View를 보여줄지 결정
- View 렌더링 → JSP 등을 이용해 화면을 생성
- 클라이언트에게 HTTP 응답 전송
🔥 Struts 1 vs Struts 2
비교 항목 | Struts 1 (구버전) | Struts 2 (최신) |
---|---|---|
설정 방식 | struts-config.xml |
struts.xml |
Form Bean | ActionForm 필요 |
POJO 사용 가능 |
Action 클래스 | execute() 고정 |
여러 메서드 정의 가능 |
DI 지원 | 없음 | Spring과의 통합 가능하지만 기본적으로 독립적 |
Ajax 지원 | 없음 | JSON 플러그인을 통해 지원 가능 |
✅ Struts의 장점
- MVC 구조 제공 (Servlet + JSP 관리 용이)
- Struts 2 태그 라이브러리 제공 (
<s:form>
,<s:textfield>
등) - 기존 Java EE 환경과 호환 가능
❌ Struts의 단점
- 설정 파일이 많음 (
struts.xml
복잡) - Spring MVC에 비해 확장성 부족
- Ajax 및 최신 웹 기술 지원 부족
- 현재 대부분 Spring Boot로 대체됨
'Apache struts' 카테고리의 다른 글
[Struts2] Struts2 태그 정리 및 사용법 (0) | 2025.03.17 |
---|---|
[Struts2] CRUD 게시판 구현하기 (0) | 2025.03.17 |
[Struts2] Eclipse에서 Struts2 프로젝트 설정부터 실행까지 (Tomcat 9, JDK 8) (0) | 2025.03.13 |