Back-end/JSP

JSP) JSP기본 요소 - 액션 태그

luana_eun 2022. 2. 1. 16:45
728x90

액션태그

<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

 

728x90