위로
아래
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 페이지 및 문서에서 템플릿 텍스트를 작성
- XML 형식 <jsp: ... /> 사용
- 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
- JSP 페이지에서 페이지와 페이지 사이를 제어
- 다른 페이지의 실행 결과 내용을 현재 페이지에 포함 등
- 자바빈즈 등의 다양한 기능 제공
디렉티브 (지시어)와의 차이점
- 디렉티브 <%@ 내용%> : include시 두 번째 페이지를 복사해서 첫 번째 페이지에 붙여 넣는다.
- 액션태그 <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 = "범위"/>
- JSP 페이지에서 자바 빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그
- id속성과 scope 속성을 바탕으로 자바빈즈의 객체를 검색하고 객체가 발견되지 않으면 비어 있는 객체 생성.
- id 에는 JSP 페이지에서 사용할 자바 빈 이름
- class에는 자바 빈의 패키지명을 포함한 실제 클래스 이름
- scope에는 자바 빈의 유효범위 지정 (기본값 page)
scope
- page
- JSP의 현재 페이지만 객체를 사용할 수 있다.
- JSP 페이지가 요청될 때마다 객체가 새로 생성
- request
- JSP의 요청(request)와 응답(response)가 이루어질 때까지 객체를 유지
- JSP가 요청될 때마다 객체가 새로 생성
- forward나 include 액션 태그에 의해 이동된 JSP 페이지에서도 객체 공유 가능
- session
- 동일한 브라우저 상의 사용자 세션이 유지되는 동안 객체 유지
- JSP의 다른 페이지간의 공유도 가능
- applicarion
- 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="프로퍼티 값"/>
- 자바빈즈의 프로퍼티 값을 설정
- property : 자바 빈의 이름 지정
- param : request parameter 이름 지정
- 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="프로퍼티 이름" /> // 자바빈즈의 프로퍼티 값을 가져옴
- 자바빈즈의 프로퍼티 값을 가져옴
예시
더보기
//자바 빈즈 .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