액션 태그
- 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
- 자바 빈즈 등 다양한 기능 제공
- XML 형식을 사용 반드시 끝나는 태그 />로 마무리해야 함
- 스크립트 태그를 이용하여 JSP 페이지에 직접 자바 코드를 작성하는 것을 피하기 위해 사용
forward
- 현재 JSP 페이지에서 다른 페이지로 이동하는 태그
ex)
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
<h2>forward 액션 태그</h2>
<jsp:forward page="forward_date.jsp" /> <!-- xml 태그 --> <!-- forward_date.jsp 만들어야됨 -->
<p>-------------------------------</p>
</body>
</html>
include 액션 태그
- 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그
- 포함할 수 있는 외부 파일은 HTML, JSP, 서블릿 페이즈 등 이다
- include액션태그 동적 페이지에 사용 include 디렉티브 태그는 정적 페이지에 사용
- flush 속성은 false로 지정하는 것이 좋음
- flush 속성은 포함될 페이지로 제어가 이동될 때 현재 포함하는 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리하는 방법을 결정
- flush 속성의 값을 'true' 로 지정하면 포함될 페이지로 제어가 이동될 때 현재 페이지가 지금까지 버퍼에 저장한 내용을 웹 브라우저에 출력하고 버퍼를 비운다.
param
- 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
- 단독으로 사용 불가 <jsp:forward> 나 <jsp:include> 태그의 내부에 사용
- 여러 개의 정보를 전송해야 할 떄 는 다중 param 액션 태그 사용
ex)
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
<h3>param 액션 태그</h3>
<jsp:forward page="param01_data.jsp">
<jsp:param name="id" value="admin" />
<jsp:param name="name" value='<%=java.net.URLEncoder.encode("관리자")%>' />
<!-- 한글이 꺠지지 않게 java.net.URLEncoder.encode() 메소드 사용 -->
</jsp:forward>
<p>Java Server Page
</body>
</html>
자바빈즈
- 동적 콘테츠 개발을 위해 자바 코들르 사용하여 자바 클래스로 로직을 작성하는 방법
useBean
- JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그
- id : 식별하기위한 이름 class : 패키지이름 포함한 자바빈즈 이름 scope : 자바빈즈가 저장되는 영역(page(기본값), request, session, application)
ex)
- Java Resources에 패키지와 자바빈즈 Calculator 를 생성하고 useBean 액션태그에 Calculator 클래스를 사용하여 숫자 출력
자바빈즈 Calculator
package ch04.com.dao;
public class Calculator {
public int process(int n) {
return n*n*n;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="bean" class = "ch04.com.dao.Calculator"/>
<%
int m = bean.process(5); //스크립틀릿
out.println("5의 3제곱 : " +m);
%>
</body>
</html>
setProperty
- useBean 액션 태그와 함께 자바빈즈의 Setter() 메소드에 접근하여 자바빈즈의 멤버 변수인 프로퍼티의 값을 저장하는 태그
- name = useBean 태그에 id 속성 값 , property : 자바빈즈의 프로퍼티 이름 , value : 변경할 자바빈즈의 프로퍼티 값, param : 자바빈즈의 프로퍼티 값을 전달하는 요청 파라미터 이름
- value 와 param 동시 사용 불가
getProperty
- useBean 액션 태그와 함께 자바빈즈의 Getter() 메소드에 접근하여 자바빈즈의 멤버 변수인 프로퍼티의 값을 가져오는 태그
- name : useBean 태그에 id 속성 값 , property : 자바빈즈의 프로퍼티 이름
ex)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="person" class="ch04.com.dao.Person"></jsp:useBean>
<jsp:setProperty name="person" property="id" value="20182005" />
<jsp:setProperty name="person" property="name" value="홍길동" />
<p>아이디 : <jsp:getProperty property="id" name="person" />
<p>이 름 : <jsp:getProperty property="name" name="person" />
</body>
</html>
쉽게 배우는 JSP 웹 프로그래밍
송미영 지음 한빛 아카데미