본 게시글은 "JSP 웹 프로그래밍"을 학습하며, 내용 요약 또는 몰랐던 부분을 정리하는 글 입니다.
액션 태그
액션 태그
- 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
- JSP 페이지에서 페이지와 페이지 사이 제어
- 다른 페이지의 실행 결과 내용을 현재 페이지에 포함
- 자바빈즈(JavaBeans) 등의 다양한 기능 제공
- 자바빈즈(JavaBeans): 자바로 작성된 소프트웨어 컴포넌트
- <%...%>와 같은 스크립트 태그의 형식을 따르지 않고, XML 형식 <jsp: .../>을 사용한다.
forward 액션태그: <jsp:forward .../>
- 다른 페이지로의 이동과 같은 페이지 흐름을 제어한다.
- JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제하고, forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동
- page 속성 값: 이동할 페이지의 외부 파일명(같은 디렉토리면 파일명만, 다르면 전체 URL 또는 상대 경로)
ex) forward 액션 태그 사용 예제
"이 파일은 first.jsp입니다"는 출력되지 않은 것을 볼 수 있다. (버퍼를 비우기 때문)
tip) forword액션 태그 사용 시 주의점
액션 태그를 사용하는 이유: 자바 코드의 삽입을 되도록 최소화하여 유지 보수를 효율적으로 하는 것이 목적이다.
include 액션 태그: <jsp:include .../> 외부 페이지의 내용을 포함하거나 페이지를 모듈화한다.
- include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그
- 현재 JSP 페이지에 포함할 수 있는 외부 파일은 HTML, JSP, 서블릿 페이지 등
- page 속성: 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명
- flush 속성(default: false): 설정한 외부 파일로 제어가 이동할 때, 출력 버퍼에 저장한 결과를 처리(true면 제어가 이동할 때 모두 비운다. -> 삭제가 아닌 비우는 것)
- 헤더정보도 같이 전송되기 때문에 웹 브라우저에 전송되고 나면 헤더 정보가 반영되지 않아 문제가 될 수 있다.
- include 액션태그가 forward 액션태그와 다른 점은 포함된 외부 파일이 실행된 후 현재 JSP 페이지로 제어를 반환한다는 것
제어권: first.jsp -> second.jsp -> first.jsp
("Java Server Page" 출력 위치를 보면 이해가 쉽다.)
tip) include 액션 태그 vs include 디렉티브 태그
- include 액션 태그는 포함될 페이지의 결과가 원래 페이지의 결과와 합쳐져서 보인다.
- include 디렉티브 태그는 포함될 파일의 소스코드를 복사하여 붙여넣기 함. 조각코드 삽입개념. 단순하게 다른 페이지의 내용이 텍스트로 포함된다.
param 액션 태그: <jsp:param .../> <jsp:forward>, <jsp:include>, <jsp:plugin> 태그에 인자를 추가한다.
- 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
- 이 태그는 단독으로 사용되지 못하며 <jsp:forward>나 <jsp:include> 태그의 내부에 사용
- 다른 페이지에 여러 개의 정보를 전송해야 할 때는 다중의 param 액션 태그 사용
그 외 태그
- useBean: <jsp:useBean .../> JSP 페이지에 자바빈즈를 설정한다.
- setProperty: <jsp:setProperty .../> 자바빈즈의 프로퍼티 값을 설정한다.
- getProperty: <jsp:getProperty .../> 자바빈즈의 프로퍼티 값을 얻어온다.
- plugin: <jsp:plugin .../> 웹 브라우저에 자바 애플릿을 실행한다. 자바 플러그인에 대한 OBJECT 또는 EMBED 태그를 만드는 브라우저별 코드를 생성한다.
- element: <jsp:element .../> 동적 XML요소를 설정한다.
- attribute: <jsp:attribute .../> 동적으로 정의된 XML 요소의 속성을 설정한다.
- body: <jsp:body .../> 동적으로 정의된 XML 요소의 몸체를 설정한다.
- text: <jsp:text .../> JSP 페이지 및 문서에서 템플릿 텍스트를 작성한다.