JSP ํ๊ทธ
โข
์คํฌ๋ฆฝํธ ํ๊ทธ : JSP ์์ ์๋ฐ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๊ทธ
โข
๋๋ ํฐ๋ธ ํ๊ทธ : JSP ํ์ด์ง์ ์์ฑ๊ณผ ๊ตฌ์ฑ์ ์ค์ ํ๋ ํ๊ทธ
โข
์ก์
ํ๊ทธ : JSP ํ์ด์ง์์ ํน์ ์์
์ ์ํํ๋ ํ๊ทธ
์คํฌ๋ฆฝํธ ํ๊ทธ
โข
์ ์ธ๋ฌธ : <%! ์ฝ๋ %> : ๋ณ์๋ ๋ฉ์๋ ์ ์
โข
์คํฌ๋ฆฝํ๋ฆฟ : <% ์ฝ๋ %> : ์๋ฐ ์ฝ๋ ๋ก์ง
โข
ํํ๋ฌธ : <%= ์ฝ๋ %> : ๋ณ์, ๊ณ์ฐ ์์, ๋ฉ์๋ ํธ์ถ
ํ๊ทธ | ํํ | ์๋ฏธ |
์ ์ธ๋ฌธ | <%! %> | ๋ณ์ ์ ์ธ O, ๋ฉ์๋ ์ ์ O |
์คํฌ๋ฆฝํ๋ฆฟ | <% %> | ๋ณ์ ์ ์ธ O, ๋ฉ์๋ ์ ์ X |
ํํ๋ฌธ | <%= %> | ๋ณ์ ์ฌ์ฉ, ์์ ๊ณ์ฐ, ๋ฉ์๋ ํธ์ถ |
์ ์ธ๋ฌธ ๋ณ์ ์ ์ธ VS ์คํฌ๋ฆฝํ๋ฆฟ ๋ณ์ ์ ์ธ
โข
์ ์ธ๋ฌธ์์ ๋ณ์๋ฅผ ์ ์ธ : ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ ์, _jspService() ๋ฉ์๋ ์ธ๋ถ์ ์ ์ธ
โข
์คํฌ๋ฆฝํ๋ฆฟ ๋ณ์ ์ ์ธ : ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ ์, _jspService() ๋ฉ์๋ ๋ด๋ถ์ ์ ์ธ
๋๋ ํฐ๋ธ ํ๊ทธ
ํ๊ทธ | ํ์ | ์๋ฏธ |
page | <%@ page โฆ %> | JSP ํ์ด์ง์ ๋ํ ์ ๋ณด ์ค์ |
include | <%@ include โฆ %> | ์ธ๋ถ JSP ํ์ด์ง๋ฅผ ํ์ด์ง ๋ด๋ถ๋ก ํฌํจ์ํด |
taglib | <%@ taglib โฆ %> | JSP ํ์ด์ง์์ ์ฌ์ฉํ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์ |
page ๋๋ ํฐ๋ธ ํ๊ทธ
์์ฑ (Attribute) | ์ค๋ช
| ๊ธฐ๋ณธ๊ฐ |
language | JSP ํ์ด์ง์์ ์ฌ์ฉํ ์คํฌ๋ฆฝํธ ์ธ์ด๋ฅผ ์ค์ ํฉ๋๋ค. | java |
contentType | ์๋ต์ ์ฝํ
์ธ ํ์
๊ณผ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ์ค์ ํฉ๋๋ค. | text/html |
pageEncoding | JSP ํ์ด์ง์ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ์ค์ ํฉ๋๋ค. | ISO-8859-1 |
import | ๋ค๋ฅธ ํด๋์ค๋ ํจํค์ง๋ฅผ JSP ํ์ด์ง๋ก ๊ฐ์ ธ์ต๋๋ค. | |
session | true ๋๋ false ๊ฐ์ ๊ฐ์ง๋๋ค.
true๋ก ์ค์ ํ๋ฉด JSP ํ์ด์ง์์ ์ธ์
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. | true |
buffer | ๋ฒํผ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค. | 8KB |
autoFlush | true ๋๋ false ๊ฐ์ ๊ฐ์ง๋๋ค.
true๋ก ์ค์ ํ๋ฉด ๋ฒํผ๊ฐ ๊ฐ๋ ์ฐจ๋ฉด ์๋์ผ๋ก ์ถ๋ ฅ๋ฉ๋๋ค. | true |
isThreadSafe | true ๋๋ false ๊ฐ์ ๊ฐ์ง๋๋ค.
true๋ก ์ค์ ํ๋ฉด JSP ํ์ด์ง๊ฐ ์ค๋ ๋ ์์ ํ๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค. | true |
info | JSP ํ์ด์ง์ ๋ํ ์ค๋ช
์ ์ ๊ณตํฉ๋๋ค. | |
errorPage | ์ค๋ฅ ํ์ด์ง๋ก ์ด๋ํ URL์ ์ค์ ํฉ๋๋ค. | |
isErrorPage | true ๋๋ false ๊ฐ์ ๊ฐ์ง๋๋ค.
true๋ก ์ค์ ํ๋ฉด ์ด ํ์ด์ง๊ฐ ์ค๋ฅ ํ์ด์ง์์ ์ง์ ํฉ๋๋ค. | false |
isELIgnored | true ๋๋ false ๊ฐ์ ๊ฐ์ง๋๋ค.
true๋ก ์ค์ ํ๋ฉด EL (ํํ ์ธ์ด)์ ๋นํ์ฑํํฉ๋๋ค. | false |
extends | JSP ํ์ด์ง์ ํด๋์ค๊ฐ ์์ํ๋ ํด๋์ค๋ฅผ ์ค์ ํฉ๋๋ค. |
pageEncoding ์์ฑ
โข
ํ๊ธ ์ถ๋ ฅ์ ์ํด ์ง์ ํด์ผํ๋ ์์ฑ๊ฐ
โฆ
UTF-8
โฆ
EUC-KR
์์ UTF-8, EUC-KR ์ธ์ฝ๋ฉ ํ์
์ด ์๋ ๊ธฐ๋ณธ๊ฐ ISO-8859-1 ์ด ์ ์ฉ๋์ด ์์ผ๋ฉด, ํ๊ธ์ด ๊นจ์ง
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1"%>
HTML
๋ณต์ฌ
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
HTML
๋ณต์ฌ
include ๋๋ ํฐ๋ธ ํ๊ทธ
: JSP ์ ์ธ๋ถ ํ์ผ์ ํฌํจ์ํค๋ ํ๊ทธ
ํฌํจ ๊ฐ๋ฅํ ํ์ผ : HTML, JSP, TXT ํ์ผ ๋ฑ
์ค์ต ํ์ผ
โข
include.jsp
โข
header.jsp
โข
footer.jsp
โข
copy.txt
include.jsp
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include</title>
</head>
<body>
<%@ include file="include01_header.jsp" %>
<div class="container">
<h1>์ปจํ
์ธ ์์ญ</h1>
<h3><%= new Date() %></h3>
</div>
<%@ include file="include01_footer.jsp" %>
</body>
</html>
HTML
๋ณต์ฌ
header.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>
<header>
<h1>ํค๋ ์์ญ</h1>
</header>
</body>
</html>
HTML
๋ณต์ฌ
footer.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>
<footer>
<p><%@ include file="copy.txt" %></p>
</footer>
</body>
</html>
HTML
๋ณต์ฌ
copy.txt
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Copyright โ์๋กํํด๋์ค. All Rights Reserved
HTML
๋ณต์ฌ
taglib ๋๋ ํฐ๋ธ ํ๊ทธ
: JSP ์์ JSTL, EL(ํํ ์ธ์ด), ์ปค์คํ
ํ๊ทธ ๋ฑ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์ ํ๋ ํ๊ทธ
JSTL ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ
JSTL (JavaServer Pages Standard Tag Library)
: Java ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ ์ ์๋ ํ์ค ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Tomcat 10 ๋ฒ์ ๋ฏธ๋ง์์ ์ฌ์ฉ
1.
JSTL ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด๋ก๋
a.
taglibs-standard-compat-1.2.5.jar
b.
taglibs-standard-impl-1.2.5.jar
c.
taglibs-standard-jstlel-1.2.5.jar
d.
taglibs-standard-spec-1.2.5.jar
2.
JSP ํ๋ก์ ํธ ์ ํฌํจํ๊ธฐ
a.
[WEB-INF] > [lib] ํด๋์ ์ถ๊ฐ
JSTL ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐํ๊ธฐ
3.
JSP ์ฝ๋ ์๋จ์ taglib ๋๋ ํฐ๋ธ ํ๊ทธ ์ถ๊ฐ
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
JavaScript
๋ณต์ฌ
4.
์ฝ๋ ์์ฑ
<%-- taglib ๋๋ ํฐ๋ธ ํ๊ทธ ์ถ๊ฐ --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>taglib ๋๋ ํฐ๋ธ - JSTL</title>
</head>
<body>
<%-- WEB-INF > lib : jstl-xxx-impl.jar ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ --%>
<c:forEach var="k" begin="1" end="10" step="1">
<c:out value="${k}" />
</c:forEach>
</body>
</html>
JavaScript
๋ณต์ฌ
Tomcat 10 ๋ฒ์ ์ด์์์ ์ฌ์ฉ
โข
jstl
โข
jstl-api
โข
servlet-api
jstl
jstl-api
servlet-api
์ก์ ํ๊ทธ
: ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ํ๊ทธ
โข
forward : ํ์ด์ง๋ฅผ ์ด๋ํ๋ ํ๊ทธ
โข
include : ์ธ๋ถ ํ์ผ์ ํฌํจํ๋ ํ๊ทธ
โข
param : ๋ค๋ฅธ ํ์ด์ง๋ก ๋๊ฒจ์ค ํ๋ผ๋ฏธํฐ(๋งค๊ฐ๋ณ์)๋ฅผ ์ง์ ํ๋ ํ๊ทธ
โข
์๋ฐ๋น์ฆ ์ก์
ํ๊ทธ
์ก์
ํ๊ทธ | ์ค๋ช
|
<jsp:include> | ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ํ์ฌ ํ์ด์ง์ ํฌํจ์ํต๋๋ค. |
<jsp:forward> | ํ์ฌ ํ์ด์ง์ ์ ์ด๋ฅผ ๋ค๋ฅธ ์น ์์์ผ๋ก ์ ๋ฌํฉ๋๋ค. |
<jsp:param> | <jsp:include> ๋๋ <jsp:forward>์ ํจ๊ป ์ฌ์ฉํ์ฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค. |
<jsp:useBean> | JavaBeans ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฑฐ๋ ์ฌ์ฉํฉ๋๋ค. |
<jsp:setProperty> | JavaBeans ๊ฐ์ฒด์ ์์ฑ์ ์ค์ ํฉ๋๋ค. |
<jsp:getProperty> | JavaBeans ๊ฐ์ฒด์ ์์ฑ ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค. |
<jsp:plugin> | ๋ธ๋ผ์ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ง์ํ๊ธฐ ์ํด ์๋ฐ ์ ํ๋ฆฟ์ ํฌํจํฉ๋๋ค. |
<jsp:element> | XML ์๋ฆฌ๋จผํธ๋ฅผ ์์ฑํ๊ณ ์กฐ์ํฉ๋๋ค. |
<jsp:attribute> | ์ปค์คํ
ํ๊ทธ์ ์์ฑ์ ์ค์ ํฉ๋๋ค. |
<jsp:text> | ํ
์คํธ ๋ธ๋ก์ ์์ฑํฉ๋๋ค. |
forward ์ก์ ํ๊ทธ
<jsp:forward page="์ด๋ํ ํ์ผ๋ช
.jsp" />
HTML
๋ณต์ฌ
ํ์ด์ง ์ด๋ ๋ฐฉ์
โข
forward
โข
redirect
์น ํ์ด์ง๋ฅผ ์ด๋ํ๋ ๋ฐฉ์์ 2๊ฐ์ง๋ก ๋๋์ด ๋ณผ ์ ์๋ค.
forward ๋ฐฉ์
forward : โ์ ๋ฌํ๋คโ
โข
์๋ฒ ๋ด๋ถ์์ ์์ฒญ ๊ฒฝ๋ก A ๊ฐ B ๋ก ์์ฒญ์ ์ ๋ฌํ๋ฉฐ ํ์ด์ง๋ก ์ด๋ํ๋ ๋ฐฉ์
โข
ํน์ง
โฆ
์๋์ ์์ฒญ ์ ๋ณด(request) ๋ฐ ์๋ต ์ ๋ณด(response)๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉ
โฆ
ํด๋ผ์ด์ธํธ๋ ์ด๋ํ ํ์ด์ง B ๋ฅผ ์๋ต ๋ฐ์ง๋ง, ์ฃผ์ ํ์์ค์ ์์ฒญ URL ์ ๊ทธ๋๋ก์
โฆ
์กฐํ(์ฝ๊ธฐ) ์์ฒญ์ ํ๋ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ฌ์ฉ
redirect ๋ฐฉ์
redirect : โ๋ค์ ์ง์ํ๋คโ
โข
์๋ฒ๊ฐ ์์ฒญ ๊ฒฝ๋ก A ๋ก ์์ฒญ์ ๋ฐ์ ํ, ํด๋ผ์ด์ธํธ์๊ฒ B ๋ก ๋ค์ ์์ฒญํ๋ผ๊ณ ์ง์ํ๋ฉฐ ํ์ด์ง๋ฅผ ์ด๋ํ๋ ๋ฐฉ์
โข
ํน์ง
โฆ
ํด๋ผ์ด์ธํธ๊ฐ ์๋์ ์์ฒญ๊ณผ ๋ฌ๋ฆฌ ์์ ํ ๋ค๋ฅธ ์๋ก์ด ์์ฒญ์ ํ์ฌ, ๊ธฐ์กด์ ์์ฒญ ์ ๋ณด๋ ์ดํ์ ์์ฒญ์์๋ ์ฌ์ฉํ ์ ์์
โฆ
์ด๋ํ ํ๋ฉด์์ ์ฃผ์ ํ์์ค์ URL ์ด A ์์ B ๋ก ๋ณํ๋จ
โฆ
๋ฑ๋ก, ์์ , ์ญ์ ์์ฒญ ์์ ์ฃผ๋ก ์ฌ์ฉ
์ค์ต ํ์ผ
โข
forward_A.jsp
โข
forward_B.jsp
forward_A.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
<h2>forward A ํ๋ฉด</h2>
<jsp:forward page="forward_B.jsp" />
<p>-------------------------------</p>
</body>
</html>
HTML
๋ณต์ฌ
forward_B.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
<h2>forward B ํ๋ฉด</h2>
</body>
</html>
HTML
๋ณต์ฌ
include ์ก์ ํ๊ทธ
: ์ธ๋ถ ํ์ผ์ ํฌํจํ๋ ํ๊ทธ
ํฌํจ ๊ฐ๋ฅํ ํ์ผ : HTML, JSP, ์๋ธ๋ฆฟ ํ์ด์ง ๋ฑ
๋ฐํ์์ ํฌํจ๋๋ฉฐ, ํฌํจ๋๋ JSP ํ์ด์ง๊ฐ ํ์ฌ ํ์ด์ง์ ๋ณ๊ฐ๋ก ๋
๋ฆฝ์ ์ผ๋ก ์คํ
<jsp:include page="ํฌํจํ ํ์ผ๋ช
.jsp" flush="false" />
HTML
๋ณต์ฌ
์ค์ต ํ์ผ
โข
include_main.jsp
โข
include_header.jsp
โข
include_footer.jsp
include_main.jsp
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include</title>
</head>
<body>
<jsp:include page="include_header.jsp" flush="false" />
<div class="container">
<h1>์ปจํ
์ธ ์์ญ</h1>
<h3><%= new Date() %></h3>
</div>
<jsp:include page="include_footer.jsp" flush="false" />
</body>
</html>
HTML
๋ณต์ฌ
include_header.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>
<header>
<h1>ํค๋ ์์ญ</h1>
</header>
</body>
</html>
HTML
๋ณต์ฌ
include_footer.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>
<footer>
<p>ํค๋ ์์ญ</p>
</footer>
</body>
</html>
HTML
๋ณต์ฌ
๋๋ ํฐ๋ธ include vs ์ก์ include
1.
๋๋ ํฐ๋ธ include
โข
ํ์ : <%@ include file="includedPage.jsp" %>
โข
ํฌํจ ์๊ฐ : ์ปดํ์ผ ์๊ฐ
โฆ
์๋ณธ JSP ํ์ด์ง์ ํฌํจ๋๋ JSP ํ์ด์ง๊ฐ ํ๋์ ์์ค ์ฝ๋๋ก ํฉ์ณ์ ธ์ ์ปดํ์ผ
โข
์ฃผ์ ์์ : ํ์ด์ง์ ๊ณตํต๋ ํค๋๋ ํธํฐ
โข
์คํ ์๊ฐ์ ํฌํจ๋์ง ์์ผ๋ฏ๋ก ๋์ ์ผ๋ก ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์
2.
์ก์
include
โข
ํ์ : <jsp:include page="includedPage.jsp" />
โข
ํฌํจ ์๊ฐ : ๋ฐํ์ ์๊ฐํฌํจ
โฆ
JSP ํ์ด์ง๊ฐ ํ์ฌ ํ์ด์ง์ ๋ณ๊ฐ๋ก ๋
๋ฆฝ์ ์ผ๋ก ์คํ
โข
์ฃผ์ ์์ : ๋์ ์ฝํ
์ธ ํฌํจ ํ๋ ๊ฒฝ์ฐ (ํ์ด์ง๋ณ ์๋ก ๋ค๋ฅธ ์๋ธ ๋ฉ๋ด ๋ฑ)
โข
์คํ ์๊ฐ์ ํฌํจ๋๋ฏ๋ก ์์ฒญ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝํ
์ธ ๋ฅผ ํฌํจ์ํฌ ์ ์์ต๋๋ค.
๋๋ ํฐ๋ธ ํ๊ทธ include ์ค์ต์ฝ๋
์ค์ตํ์ผ
โข
include_main.jsp
โข
include_header.jsp
โข
include_footer.jsp
include_main.jsp
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>๋๋ ํฐ๋ธ ํ๊ทธ - include</title>
</head>
<body>
<%
String menu1 = "home";
String menu2 = "board";
String menu3 = "gallery";
%>
<%-- ๋๋ ํฐ๋ธ ํ๊ทธ include --%>
<%@ include file="include_header.jsp" %>
<div class="container">
<h1>์ปจํ
์ธ ์์ญ</h1>
<h3><%=new Date()%></h3>
</div>
<%
String copy = "copyright";
%>
<%@ include file="include_footer.jsp" %>
</body>
</html>
HTML
๋ณต์ฌ
include_header.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>
<header>
<h1>ํค๋ ์์ญ</h1>
<ul>
<li><a href=""><%= menu1 %></a></li>
<li><a href=""><%= menu2 %></a></li>
<li><a href=""><%= menu3 %></a></li>
</ul>
</header>
</body>
</html>
HTML
๋ณต์ฌ
include_footer.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>
<footer>
<p>ํธํฐ ์์ญ</p>
<p><%= copy %></p>
</footer>
</body>
</html>
HTML
๋ณต์ฌ
๊ฒฐ๊ณผ ํ๋ฉด
์ก์ ํ๊ทธ include ์ค์ต์ฝ๋
์ค์ตํ์ผ
โข
include_main.jsp
โข
include_header.jsp
โข
include_footer.jsp
include_main.jsp
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ก์
ํ๊ทธ - include</title>
</head>
<body>
<%-- ์ก์
ํ๊ทธ include --%>
<jsp:include page="include_header.jsp" flush="false">
<jsp:param value="home" name="menu1"/>
<jsp:param value="board" name="menu2"/>
<jsp:param value="gallery" name="menu3"/>
</jsp:include>
<div class="container">
<h1>์ปจํ
์ธ ์์ญ</h1>
<h3><%=new Date()%></h3>
</div>
<jsp:include page="include_footer.jsp" flush="false">
<jsp:param value="copyright" name="copy"/>
</jsp:include>
</body>
</html>
HTML
๋ณต์ฌ
include_header.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ก์
ํ๊ทธ - include</title>
</head>
<body>
<%
String menu1 = request.getParameter("menu1");
String menu2 = request.getParameter("menu2");
String menu3 = request.getParameter("menu3");
%>
<header>
<h1>ํค๋ ์์ญ</h1>
<ul>
<li><a href=""><%= menu1 %></a></li>
<li><a href=""><%= menu2 %></a></li>
<li><a href=""><%= menu3 %></a></li>
</ul>
</header>
</body>
</html>
HTML
๋ณต์ฌ
include_footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ก์
ํ๊ทธ - include</title>
</head>
<body>
<footer>
<p>ํธํฐ ์์ญ</p>
<p><%= request.getParameter("copy") %></p>
</footer>
</body>
</html>
HTML
๋ณต์ฌ
๊ฒฐ๊ณผ ํ๋ฉด
param ์ก์ ํ๊ทธ
: ํ์ฌ JSP ํ์ด์ง์์ ๋ค๋ฅธ JSP ํ์ด์ง๋ก ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ๊ธฐ ์ํ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ํ๋ ํ๊ทธ
์ค์ต ํ์ผ
โข
param.jsp
โข
detail.jsp
param.jsp
<jsp:forward page="detail.jsp">
<jsp:param name="id" value="ALOHA" />
<jsp:param name="age" value="20" />
</jsp:forward>
HTML
๋ณต์ฌ
detail.jsp
์์ด๋ : <%=request.getParameter("id")%>
๋์ด : <%=request.getParameter("age")%>
HTML
๋ณต์ฌ
์๋ฐ๋น์ฆ (JavaBeans)
: ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ ์์ฑํ๋ ์๋ฐ ํด๋์ค
โข
์๋ฐ๋น์ฆ์ ์กฐ๊ฑด
โฆ
Serializable ์ธํฐํ์ด์ค ๊ตฌํ (๊ฐ์ฒด ์ง๋ ฌํ)
โฆ
๊ธฐ๋ณธ ์์ฑ์
โฆ
private ๋ฉค๋ฒ ๋ณ์
โฆ
getter/setter ๋ฉ์๋
โฆ
๋ฐ๋์ ํจํค์ง ๋ด์ ์์ด์ผํจ (default package ์์๋ ์ฌ์ฉ ๋ถ๊ฐ)
์๋ฐ๋น์ฆ๋ฅผ ์ํ ์ก์ ํ๊ทธ
โข
useBean
<jsp:useBean id="์๋ฐ๋น์ฆ id(๊ฐ์ฒด๋ช
)" class="ํจํค์ง๋ช
.ํด๋์ค๋ช
" />
HTML
๋ณต์ฌ
โข
getProperty
<jsp:getProperty property="์์ฑ๋ช
(๋ณ์๋ช
)" name="์๋ฐ๋น์ฆ id(๊ฐ์ฒด๋ช
)"/>
HTML
๋ณต์ฌ
โข
setProperty
<jsp:setProperty property="์์ฑ๋ช
(๋ณ์๋ช
)" name="์๋ฐ๋น์ฆ id(๊ฐ์ฒด๋ช
)" value="์ง์ ํ ๊ฐ"/>
HTML
๋ณต์ฌ
์ค์ต ํ์ผ
โข
Person.java
โข
person01.jsp - ์คํฌ๋ฆฝํ๋ฆฟ์ผ๋ก getter/setter
โข
person02.jsp - ์ก์
ํ๊ทธ๋ก getter/setter
Person ์๋ฐ๋น์ฆ
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
// private ๋ณ์
private String name;
private int age;
// ๊ธฐ๋ณธ ์์ฑ์
public Person() {
this.name = "๊น์กฐ์";
this.age = 1;
}
// getter/setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Java
๋ณต์ฌ
person01.jsp
โข
getter/setter
<%-- p1 ์ด๋ฆ์ผ๋ก Person ๊ฐ์ฒด ์์ฑ --%>
<jsp:useBean id="p1" class="beans.Person" />
<h3>์์ด๋ : <%= p1.getName() %></h3>
<h3>๋์ด : <%= p1.getAge() %></h3>
<hr>
<%-- p2 ์ด๋ฆ์ผ๋ก Person ๊ฐ์ฒด ์์ฑ --%>
<jsp:useBean id="p2" class="beans.Person" />
<%
p2.setName("ํ๊ธธ๋");
p2.setAge(20);
%>
<h3>์์ด๋ : <%= p2.getName() %></h3>
<h3>๋์ด : <%= p2.getAge() %></h3>
Java
๋ณต์ฌ
person02.jsp
โข
์ก์
ํ๊ทธ get/set
<jsp:useBean id="person" class="beans.Person" />
<h3>์ด๋ฆ : <jsp:getProperty property="name" name="person"/></h3>
<h3>๋์ด : <jsp:getProperty property="age" name="person"/></h3>
<hr>
<jsp:setProperty property="name" name="person" value="ํ๊ธธ๋"/>
<jsp:setProperty property="age" name="person" value="20"/>
<h3>์ด๋ฆ : <jsp:getProperty property="name" name="person"/></h3>
<h3>๋์ด : <jsp:getProperty property="age" name="person"/></h3>
Java
๋ณต์ฌ