위로 아래

JSP 표준 액션 태그

<jsp:forward ... />   // 다른 페이지의 이동과 같은 페이지 흐름을 제어 (제어권을 넘겨준다)
<jsp:include ... />   // 외부 페이지의 내용을 포함하거나 페이지를 모듈화
<jsp:param ... />   // forward, include, plugin 태그에 인자 추가

<jsp:useBean ... />   // JSP 페이지에 자바빈즈 설정
<jsp:setProperty ... />   // 자바빈즈의 프로퍼티 값을 설정
<jsp:getProperty ... />   // 자바빈즈의 프로퍼티 값을 가져옴

<jsp:plugin ... />   // 웹 브라우저에 자바 애플릿을 실행. 이제 잘 안 씀.
<jsp:element ... />   // 동적 XML 요소 설정
<jsp:attribute ... />   // 동적으로 정의된 XML 요소의 속성을 설정
<jsp:body ... />   // 동적으로 정의된 XML 요소의 몸체를 설정
<jsp:text ... />   // JSP 페이지 및 문서에서 템플릿 텍스트를 작성
  1. XML 형식 <jsp: ... /> 사용
  2. 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
  3. JSP 페이지에서 페이지와 페이지 사이를 제어
  4. 다른 페이지의 실행 결과 내용을 현재 페이지에 포함 등
  5. 자바빈즈 등의 다양한 기능 제공

 

디렉티브 (지시어)와의 차이점

  1. 디렉티브 <%@ 내용%> : include시 두 번째 페이지를 복사해서 첫 번째 페이지에 붙여 넣는다.
  2. 액션태그 <jsp:include/> : include시 두 번째 페이지로 넘어가서 결과를 출력하고 다시 첫 번째 페이지로 넘어온다.

 

 


forward

<jsp:forward ... />   // 다른 페이지의 이동과 같은 페이지 흐름을 제어 (제어권을 넘겨준다)

 

예시

더보기
<!-- Forward.jsp 파일 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>Forward 액션 태그</h3>
	<jsp:forward page="ForwardDate.jsp"/>
	<p>===========forward 페이지===========</p>
</body>
</html>
<!-- ForwardDate.jsp 파일 -->
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>오늘의 날짜 및 시간</p>
	<p><%=
		new SimpleDateFormat("yyyy-mm-dd a HH:mm:ss")
		.format(new java.util.Date())
	 %></p>
</body>
</html>

 

 

 


include

<jsp:include ... />   // 외부 페이지의 내용을 포함하거나 페이지를 모듈화

 

예시

더보기
<!--FirstInclude.jsp 파일 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>여기는 FirstInclude 파일</h3>
	<jsp:include page="SecondInclude.jsp" flush="false"/>
	<p>여기도 FirstInclude. 자바 서버 페이지 연습</p>
</body>
</html>
<!--SecondInclude.jsp 파일 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

	<h3>여기는 SecondInclude 파일.</h3>
	Today is : <%=new java.util.Date() %>

 

 


param

<jsp:param ... />   // forward, include, plugin 태그에 인자 추가

 

예시

더보기
<!--FirstParam.jsp 파일 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>action tag</title>
</head>
<body>
	<h3>이곳은 first입니다.</h3>
		<jsp:include page="SecondParam.jsp">
			<jsp:param value="<%=new java.util.Date() %>" name="date"/>
		</jsp:include>
		<p>Java Server Page</p>
</body>
</html>
<!--SecondParam.jsp 파일 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
	<!-- 파라메터 값 받아오기 -->
	Today is : <%=request.getParameter("date") %>

 

예시

더보기
<!-- login.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String msg = request.getParameter("msg");
if(msg!=null){
%>
<%= msg %>
<%} %>
<form action="result.jsp">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pw"><br>
<input type="submit" value="전송">
</form>
</body>
</html>
<!-- result.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	String msg = "아이디를 입력하세요.";
	String name = request.getParameter("id");
	if(name.length()==0){
%>
	<jsp:forward page="login.jsp">
		<jsp:param name="msg" value="<%= msg %>" />
	</jsp:forward>
<%
	} else{
%>
	환영합니다 <%= name %>님 ㅎㅎ
<%		
	}
%>
</body>
</html>

 

 

 


자바 빈즈 : useBean

<jsp:useBean id = "자바 빈즈 식별 이름" class="자바빈즈 이름 (자바빈즈 파일 이름)" scope = "범위"/>
  1. JSP 페이지에서 자바 빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그
  2. id속성과 scope 속성을 바탕으로 자바빈즈의 객체를 검색하고 객체가 발견되지 않으면 비어 있는 객체 생성.
  3. id 에는 JSP 페이지에서 사용할 자바 빈 이름
  4. class에는 자바 빈의 패키지명을 포함한 실제 클래스 이름
  5. scope에는 자바 빈의 유효범위 지정 (기본값 page)

 

scope

  1. page
    1. JSP의 현재 페이지만 객체를 사용할 수 있다.
    2. JSP 페이지가 요청될 때마다 객체가 새로 생성
  2. request
    1. JSP의 요청(request)와 응답(response)가 이루어질 때까지 객체를 유지
    2. JSP가 요청될 때마다 객체가 새로 생성
    3. forward나 include 액션 태그에 의해 이동된 JSP 페이지에서도 객체 공유 가능
  3. session
    1. 동일한 브라우저 상의 사용자 세션이 유지되는 동안 객체 유지
    2. JSP의 다른 페이지간의 공유도 가능
  4. applicarion
    1. JSP 컨테이너(톰캣)을 재시작하기 전까지는 객체가 유지.

 

 

예시

더보기
<!-- UseBean04.jsp -->
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="person" class="com.beans.Person" scope="request"/>
<p>아이디 : <%=person.getId() %></p>
<p>이름 : <%=person.getName() %></p>
<%
person.setId(20182005);
person.setName("홍길동");
%>
==========================================
<p>아이디 : <%=person.getId() %></p>
<p>이름 : <%=person.getName() %></p>
==========================================
<jsp:include page="UseBean03.jsp"/>
</body>
</html>
<!-- Person.class -->
package com.beans;

public class Person {
	//멤버 변수
	private int id = 20231004;
	private String name = "장희수";
	
	public Person() {}
	
	public int getId() {   // getter
		return id;
	}
	public void setId(int id) {   // setter
		this.id = id;
	}
	public String getName() {   // getter
		return name;
	}
	public void setName(String name) {   // setter
		this.name = name;
	}
}
<!-- UseBeans03.jsp -->
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="person" class="com.beans.Person" scope="request"/>
<p>아이디 : <%=person.getId() %></p>
<p>이름 : <%=person.getName() %></p>
</body>
</html>

 

 

 


 

자바 빈즈 : setProperty

// 자바빈즈의 프로퍼티 값을 설정
<jsp:setProperty name="자바 빈 이름" property="프로퍼티 이름" param="파라미터 이름" value="프로퍼티 값"/>
  1. 자바빈즈의 프로퍼티 값을 설정
  2. property : 자바 빈의 이름 지정
  3. param : request parameter 이름 지정
  4. value : property에 할당할 값 지정

 

예시

더보기
//자바 빈즈 .class 파일

package com.beans;

public class Person {
	//멤버 변수
	private int id = 20231004;
	private String name = "장희수";
	
	public Person() {}
	
	public int getId() {   // getter
		return id;
	}
	public void setId(int id) {   // setter
		this.id = id;
	}
	public String getName() {   // getter
		return name;
	}
	public void setName(String name) {   // setter
		this.name = name;
	}
}
<!-- JSP 파일.jsp-->

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="person" class="com.beans.Person" scope="request"/>
<jsp:setProperty name="person" property="id" value="20232005"/>
<jsp:setProperty name="person" property="name" value="홍길동"/>
<p>아이디 : <%out.println(person.getId()); %></p>
<p>이름 : <%out.println(person.getName()); %></p>
</body>
</html>

 

 

 


자바 빈즈 : getProperty

<jsp:getProperty name="자바 빈 이름" property="프로퍼티 이름" />   // 자바빈즈의 프로퍼티 값을 가져옴
  1. 자바빈즈의 프로퍼티 값을 가져옴

 

예시

더보기
//자바 빈즈 .class 파일

package com.beans;

public class Person {
	//멤버 변수
	private int id = 20231004;
	private String name = "장희수";
	
	public Person() {}
	
	public int getId() {   // getter
		return id;
	}
	public void setId(int id) {   // setter
		this.id = id;
	}
	public String getName() {   // getter
		return name;
	}
	public void setName(String name) {   // setter
		this.name = name;
	}
}
<!-- JSP 파일.jsp-->

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="person" class="com.beans.Person" scope="request"/>
<p>아이디 : <jsp:getProperty name="person" property="id"/></p>
<p>이름 : <jsp:getProperty name="person" property="name"/></p>
</body>
</html>

 

 

 


자바 빈즈 : useBean