[JSP] 스트럿츠의 개요
programming/jsp

[JSP] 스트럿츠의 개요


스트럿츠의 개요


1. JSP의 개발방식


1.1 model1 방식

JSP page 안에 자바 코드 작성


1.2 model2(MVC pattern) 방식 : jsp page와 java code 분리

Model : 데이터 처리 클래스(DAO, DTO), back end

 Data Access Object(DAO) : 실제적인 비즈니스 로직을 처리

 Data Transfer Object(DTO) : 데이터를 저장, 전달

  bean(빈), VO(Vector Object), TO(Table Object)

View : 화면 처리(jsp), front end

Controller : 프로그램의 흐름을 제어(servlet class)


2. Model 1


모델1의 아키텍쳐



3. Model 2


모델2의 아키텍쳐



4. 모델2의 필요성


모델1과 모델2의 비교



4.1 Model 1의 장점

- 빠른 개발 속도

- 배우기 쉬움


4.2 Model 1의 단점

- JSP 페이지에서 프레젠테이션 로직과 비즈니스 로직을 모두 포함하기 때문에 JSP 페이지가 너무 복잡해진다.

- 프레젠테이션 로직과 비즈니스 로직이 혼재되어 있기 때문에 개발자와 디자이너의 분리된 작업이 어려워진다.

- JSP 페이지의 코드가 복잡해짐으로 인해 유지보수가 어려워진다.


4.3 Model 2의 장점

- Web Application이 복잡해지고, 사용자들의 요구가 증가함에 따라 새로운 방식의 개발방식에 대한 요구가 증대되었다.

- 대규모 프로젝트의 경우 개발시의 개발 비용보다는 유지보수를 쉽게 할 수 있는 개발 방식을 요구하는 경우가 많아졌다.


4.4 Model 2의 단점

- Model 2 개발방식은 Model 1보다 어렵고 복잡하다.

- Model 1으로 개발하는 것보다 개발시간이 더 요구된다.


5. Framework


- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성된다.

- 컴포넌트의 재사용이 가능하다.

- 좀더 높은 수준에서 패턴들을 조직화한다.

- Framework의 종류 : Struts, Spring 등


6. 스트럿츠 프레임워크의 특징


6.1 jsp 페이지로 직접 url 호출을 할 수 없도록 설정 가능(보안성)

6.2 Controller(서블릿 클래스)의 기능을 분리

 가) Action 클래스 - 프로그램의 흐름을 제어

 나) struts.xml - 액션 정의


7. 스트럿츠 라이브러리 다운로드


https://struts.apache.org


8. 스트럿츠 프로젝트 환경설정


8.1 라이브러리 복사

struts_lib(google drive)에서 다운로드하고 압축을 해제한 후 WebContent/WEB-INF/lib 디렉토리에 복사함


8.1.1 스트럿츠 라이브러리

8.1.2 오라클 라이브러리

8.1.3 jstl 라이브러리

8.1.4 mybatis 라이브러리

8.1.5 스트럿츠 실행에 필요한 기타 라이브러리


8.2 web.xml에 스트럿츠 필터 추가

8.3 struts.xml 파일에 액션 정의


9. 실습예제


9.1 프로젝트 만들기 : Dynamic Web Project, 프로젝트 이름 jsp05_struts

9.2 WebContent/WEB-INF/web.xml

9.3 WebContent/include/style.css

9.4 WebContent/include/header.jsp

9.5 WebContent/include/menu.jsp

9.6 src/struts.propertis

9.7 src/struts.xml

9.8 src/config/struts_test.xml