웹프로그래밍/JSP

JSP - 액션 태그

Uisin 2024. 10. 11. 11:37

Action tag (액션 태그)

- 액션 태그는 페이지간 이동, 페이지 삽입, 객체 생성 등의 기능을 포함하고 있다

- <% %>와 같은 스크립트 태그 형식이 아닌 <jsp:  />의 XML형식을 사용한다

액션 태그 형식 설명
forward <jsp: forward  /> 다른 페이지로 이동
include </jsp: include /> 외부 페이지 내용 포함 또는 모듈화
useBean </jsp: useBean /> JSP 페이지에 객체를 생성한다
setProperty </jsp: setProperty /> 객체의 프로퍼티 값을 설정
getProperty </jsp: getProperty /> 객체의 프로퍼티 값을 가져온다
param </jsp:param  /> forward, include 태그에 파라미터를 추가한다

 

 

forward 액션 태그

- 현재 JSP 페이지에서 다른 페이지로 이동하는 태그

- 다만 이동할 때 버퍼에 있는 내용을 flush 하기 때문에 이전까지 생성된 HTML 코드는 버려진다

- 따라서 웹페이지가 무겁다면 forward 액션 태그 사용을 신중히 해야한다

<jsp: forward page = "forward.jsp" />

 

 

 

include 액션 태그

- 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그로 HTML, JSP, Servlet 등을 포함할 수 있다

- page와 flush 속성을 가지고 있으며 page에는 파일명을, flush에는 flush 속성을 넣으면 된다

- flush 속성이 true면 외부 파일을 포함하기 전까지의 버퍼를 비우고 출력을 하며 false면 출력하지 않는다

 

구분 include 액션 태그 include 디렉티브 태그
포함하는 시점 태그가 실행 될 때 컴파일이 완료 됐을 때
기능 include 할 파일의 실행 결과를 포함 include 할 파일의 코드를 포함
데이터 전달 방법 request 객체나 param 액션 태그 스크립트 태그로 데이터를 전달
용도 화면 레이아웃의 일부분을 모듈화 할 때 다수의 JSP 웹 페이지에서 공통으로 사용되는 코드나 저작권과 같은 문장을 포함하는 경우
기타 동적 페이지에 사용 정적 페이지에 사용

 

<jsp:include page="include_date.jsp" flush="true">       </jsp:include>

 

param 액션 태그

- 현재 JSP 페이지에서 다른 페이지로 정보를 전달할 때 사용하는 태그

- include 액션 태그, forward 액션 태그와 함께 사용해 다른 페이지에 파라미터 전달

- 보낼 때는 <jsp: param name="매개변수명" value ="매개변수 값" /> 받을 때는 request.getParameter("매개변수명")

- key-value 형태로 사용된다

- 기본적으로 전달 방식은 POST 방식이다

 

 

param으로 정보 전달하기

	<jsp:include page = "param02_data.jsp">
		<jsp:param value='<%= java.net.URLEncoder.encode("오늘의 날짜와 시각") %>' name="title"/>
		<jsp:param value='<%= java.util.Calendar.getInstance().getTime().toLocaleString() %>' name="date"/>
	</jsp:include>

 

 

전달 받은 정보 사용하기

<body>
	<%
		String title = request.getParameter("title");
	%>
	<h3><%= java.net.URLDecoder.decode(title) %></h3>
	Today is :<%= request.getParameter("date") %>
</body>

 

 

자바빈즈 액션 태그

- JSP 페이지에서 Java 클래스를 생성할 수 있도록 하는 태그

- 자바빈즈를 통해 JSP 파일과 Java 클래스 코드를 별도로 분리해 코드를 재사용하거나 관리하는데 장점이 있다

- 자바빈즈는 property와 method로 구성되는데 쉽게 말해 멤버 변수(전역 변수)와 메서드로 이루어진 형태다

- 자바빈즈를 사용하기 위해서 java.io.serializable 인터페이스를 import 해야 한다

- 자바빈즈의 멤버 변수는 반드시 private으로 접근지정자를 설정해야한다 (캡슐화)

 

useBean

- 작성한 자바빈즈 클래스를 JSP 페이지에서 생성/초기화하는 태그

- id(참조변수), class(클래스 이름), scope(범위) 속성을 가지고 있다

- 만약 <jsp:useBean id="date" class="java.util.Date" />라는 태그가 있다하면 여기에 대치되는 java 코드는

Date date = (Date) request.getAttribute("date"); 가 될 것이다.

- scope의 기본값은 page지만 request(1회), session(다회), application(서버 소멸 까지) 중 하나를 선택할 수도 있다

 

Calculator라는 클래스를 참조하는 JSP 페이지를 만들어보자

 

public class Calculator 
{
	public int process(int n) 
	{
		return n*n*n;
	}
}

인수를 3번 곱하는 메서드를 가지고 있는 Calculator클래스

<body>
	<jsp:useBean id="bean" class= "chapter04.Calculator" />
	<%
		int m= bean.process(5);
		out.print("5의 3제곱 : " + m);
	%>
</body>

Calculator 클래스를 참조해 메서드를 활용하는 JSP코드

 

 

setProperty

- 참조한 클래스의 setter() 메서드에 접근해 멤버 변수를 저장하는 태그다

 

<jsp:setProperty name="member" property ="id" value="admin" />

 

 

 

getProperty

 

 

 

 

'웹프로그래밍 > JSP' 카테고리의 다른 글

JSP - 내장 객체  (0) 2024.10.14
JSP - 디렉티브 태그  (0) 2024.10.10
JSP - 스크립트 태그  (0) 2024.10.08
JSP - 기초  (0) 2024.10.07