- 액션태그 - 행위에 대한 태그
- jsp 페이지에서 동일한 내용이라도 자바 코드를 기술하기 보다는 태그를 기술하는 것이 지저분하지 않고 깔끔하게 코딩할 수 있어 가독성 높은 소스코드를 작성할 수 있다. 또한 코드 양을 대폭 주일수 있다.
- 페이지와 페이지 사이를 제어하거나 다른 페이지의 실행 결과 내용을 현재 페이지에 포함하거나 자바 빈즈(객체) 등의 다양한 기능을 제공한다.
- 액션태그는 XML 문법을 따른다. 즉 시작 태그와 함께 반드시 종료 태그를 포함해야한다.
- 액션 태그의 기본 형식 : <jsp:... 속성="값">내용</jsp:... 속성="값">
- 내용이 없는 액션 태그의 형식 : <jsp:... 속성="값"/>
1-1. 액션태그 종류
- forward : 다른 페이지로의 이동, 페이지 흐름 제어
<jsp:forward ... >
- include : 외부 페이지의 내용을 포함하거나 페이지 모듈화
<jsp:include ... >
- param : 현재 페이지에서 다른 페이지에 대한 정보를 전달할 때 사용
<jsp:param ...>
- useBean : 빈을 생성하고 사용하기 위한 환경을 정의
<jsp:useBean ...>
- setProperty : 빈 속성 값을 할당
<jsp:setProperty ...>
- getProperty : 빈에서 속성 값을 얻어올 때 사용
<jsp:getProperty ...>
- 페이지 이동
2-1. forward
- request에 담긴 값이 유효하다.(resquest, response가 유지된다)
- 이동된 url이 화면에 안보인다.(사용자는 이동했는지 알 수 없음)
- foward하는 방법
-> <jsp:forward page="이동할페이지"/>
-> pateContext.forward("이동할페이지");
2-2. redirct
- 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동됨. request, response가 유지되지 않는다. (새로 만들어진다)
- 이동된 url이 화면에 보인다
- 리다이렉트 하는 방법
-> response.sendRedirect("이동할페이지");
- attribute scope
- Page : 요청된 page 내부에서 사용된다
- Request : 요청부터 응답까지
- Session : Web Browser 종료 또는 설정한 시간 동안
- Application : 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용
- MVC패턴
- M : Model (사용자가 원하는 데이터나 정보를 제공)
-> 애플리케이션의 정보, 데이터를 말한다.
- V : View (보여지는 화면)
-> input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다. 다시 말해 데이터 및 객체의 입력 , 그리고 보여주는 출력을 담당한다. 데이터를 기반으로 사용자들이 볼 수 있는 화면이다.
- C : Controller (사용자의 요청을 처리하고, 그 요청에 따른 전체적인 흐름을 제어)
-> 데이터와 사용자 인터페이스 요소들을 잇는 다리 역할을 한다.
4-1. MVC 1패턴
- MVC 1패턴의 경우 view 와 Controller를 모두 JSP가 담당하는 형태를 가집니다. 즉 JSP하나로 유저의 요청을 받고 응답을 처리하므로 구현 난이도는 쉽다
- 단순한 프로젝트에서는 괜찮겠지만 내용이 복잡하고 거대해질 수록 이 패턴은 힘을 잃는다. 즉, 유지보수에 있어서 문제가 발생한다.
4-2. MVC2 패턴 - 스프링에서 채택
- MVC2 패턴은 널리 표준으로 사용되는 패턴이다. 요청을 하나의 컨트롤러(Servlet)가 먼저 받는다. 즉 MVC1과는 다르게 Controller. View가 분리되어 있다. 따라서 역할이 분리되어 MVC1 패턴에서 단점을 보완 할 수 있다.
- 그래서 개발자는 MVC 중에서 수정할 부분이 있다면 그것만 꺼내여 수정하면 된다. 따라서 유지보수에도 큰 이점이 있다.