액션태그
<jsp: 형태로 시작하는 태그 형태로 JSP코드의 역할을 수행한다.
다른페이지의 서블릿이나 자바 객체에 접근할 수 있는 기능을 자바코드가 아닌 HTML형식의 태그로 구현된 것.
XML 문법으로 구현된 기능이므로 종료태그가 있어야하며, 단독으로 쓰여졌으면 종료를 알리는 / 포함.
기능 - 페이지의 흐름을 제어( forward, include )
- 자바빈의 속성을 읽고 쓰기( useBean )
- 애플릿 사용( plugin )
- 스크립트요소(자바코드)를 사용하지 않아서 JSP페이지 내부적인 로직을 감출 수 있음.
(사용자에게 보여지는 프레젠테이션과 프로그램부분인 비즈니스 로직 부분을 분리)
1. <jsp:forward>: 페이지 이동
pageContext 내장 객체의 forward() 메소드가 태그로 구현된 것이다.
현재 페이지의 요청, 응답 처리권을 이동할 페이지로 영구적으로 넘긴다.
(=
페이지를 이동하면 다시 이전페이지로 돌아오지 않는다.
=> A페이지에서 이것저것 처리하고 결과를 B페이지에 넘기는데
B페이지로 넘어갔으면 B의 주소가 떠야하는데 URL은 A주소 그래도 변하지 않는다.
<jsp:forward page='resultPage.jsp'> // resultPage.jsp파일로 이동
<jsp:params name="tel" value="00-00" /> // 파라미터 넘기기
</jsp:forward>
페이지는 동적으로도 지정할 수 있고
<jsp:forwrd page='<%= pagepage %>' >
파라미터를 넘길때는 <jsp:params>태그를 쓰거나 GET방식처럼 주소뒤에 붙여서 전송할 수도 있다.
<jsp:forward page="resultPage.jsp?id=jsp" >
2. <jsp:include>: 페이지 포함
include 페이지의 처리가 끝나면 처리결과를 원래 페이지에 반환하는 방식.
즉, 한페이지에 부분 부분이 다른 파일로 이루어진 셈이다.
이렇게 각 페이지를 기능별로 모듈화시켜서
한 페이지를 모듈화된 여러 페이지의 집합을 표현하는것을 템플릿페이지라고 한다.
*지시어 include와 차이점
지시어 include <% include %> |
원래 페이지에 페이지 소스코드가 그대로 복사되서 들어간다. 각 페이지를 컴파일 전에 include후(소스통합) 컴파일 한다. -> 정적 코드 포함시 사용 |
액션 include <jsp:include> |
소스가 복사되는것이 아니라 제어권이 넘어갔다가 돌아오는것이다. 각 페이지를 컴파일 후 해당 파일을 include한다. -> top, botton같은 동일 사용 페이지를 추가할 때 사용. |
지시어 include : https://luanaeun.tistory.com/115
template.jsp 에 다른 페이지들을 넣어보는(include) 예시
<h2>template.jsp</h2>
<table border="1" width="400" height="400">
<tr>
<td colspan="2">
// top페이지 포함
<jsp:include page="./top.jsp">
// top.jsp페이지에 id java값을 넘김
<jsp:param name="id" value="java"/>
</jsp:include>
</td>
</tr>
<tr>
// 왼쪽, 오른쪽 페이지 포함
<td width="80"><jsp:include page="./left.jsp"></jsp:include></td>
<td><jsp:include page="./right.jsp"></jsp:include></td>
</tr>
<tr>
<td colspan="2">BOTTOM</td>
</tr>
</table>
top.jsp에서는 request객체로 값을 받는다
<h2>TOP.jsp 페이지</h2>
<%
String id = request.getParameter("id");
%>
3. 자바빈(JavaBean)
맨 위의 액션태그 기능 중 4번째, 프리젠테이션 부분과 비즈니스 부분을 분리하는 기능이 있었다.
자바빈은 디자인 부분과 비즈니스 무문을 분리함으로써 복잡한 JSP코드를 줄이고 재사용성을 높인다.
JSP코드와 디자인 코드가 복잡하게 얽히지 않고 각자의 역할만 할 수 있게되는것이다.
종류: <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty>
자세히: https://luanaeun.tistory.com/117
'Back-end > JSP' 카테고리의 다른 글
JSP) Servlet이 무엇이며, 어떻게 동작할까? (0) | 2022.02.18 |
---|---|
JSP) 영역 객체와 속성(Attribute) (0) | 2022.02.01 |
JSP) 내장 객체란? (0) | 2022.02.01 |
JSP) JSP기본 요소(1): 주석, 지시어, 스크립트 요소, 액션 태그 (0) | 2022.01.30 |
JSP) JSP란? 특징, 구성, 동작원리, 프로젝트 만들기 (0) | 2022.01.20 |