์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array ๊ฐ์ฒด
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey๐ณ๐
[57] 230321 JSP Ch. 5 ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ญ, Ch. 6 ์๋ฌ ์ฒ๋ฆฌ, Ch. 7 ํ์ด์ง ๋ชจ๋ํ์ ์์ฒญ ํ๋ฆ ์ ์ด [K-๋์งํธ ํธ๋ ์ด๋ 57์ผ] ๋ณธ๋ฌธ
[57] 230321 JSP Ch. 5 ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ญ, Ch. 6 ์๋ฌ ์ฒ๋ฆฌ, Ch. 7 ํ์ด์ง ๋ชจ๋ํ์ ์์ฒญ ํ๋ฆ ์ ์ด [K-๋์งํธ ํธ๋ ์ด๋ 57์ผ]
yjyuwisely 2023. 3. 21. 12:45230321 Tue 57th class
Ch. 5 ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ญ
Ch. 6 ์๋ฌ ์ฒ๋ฆฌ
Ch. 7 ํ์ด์ง ๋ชจ๋ํ์ ์์ฒญ ํ๋ฆ ์ ์ด
์ง๋: p. 80 ~ (๊ต์ฌ: ์ต๋ฒ๊ท ์ JSP 2.3 ์น ํ๋ก๊ทธ๋๋ฐ: ๊ธฐ์ด๋ถํฐ ์ค๊ธ๊น์ง, ์ ์: ์ต๋ฒ๊ท )
์ฑ
์์ ์ฝ๋: https://github.com/madvirus/jsp23
์ ์ ๋ธ๋ก๊ทธ: https://javacan.tistory.com/
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
๋ชฐ๋๋ ๊ฒ
flush=False (yes, the default) will wait for the line to complete before printing it.
- ๋ชจ๋(module)์ด๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ๊ตฌ์ฑ ์์๋ก, ๊ด๋ จ๋ ๋ฐ์ดํฐ์ ํจ์๋ฅผ ํ๋๋ก ๋ฌถ์ ๋จ์๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ณดํต ํ๋์ ์์ค ํ์ผ์ ๋ชจ๋ ํจ์๋ฅผ ์์ฑํ์ง ์๊ณ , ํจ์์ ๊ธฐ๋ฅ๋ณ๋ก ๋ฐ๋ก ๋ชจ๋์ ๊ตฌ์ฑํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋์ ํฉ์ณ ํ๋์ ํ์ผ๋ก ์์ฑํ๋ ๋ฐฉ์์ผ๋ก ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ฒ ๋ฉ๋๋ค. ์์ฒ๋ผ ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ๊ธฐ๋ฅ๋ณ๋ก ๋๋ ์ ๋ ๋ฆฝ๋ ํ์ผ์ ์ ์ฅํ์ฌ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ๋ชจ๋ํ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๊ณ ํฉ๋๋ค.
use the . jsp extension for the source files of complete JSP pages
and use the . jspf extension for the source files of JSP segments.
f(fragment): ํํธ
PART 2 ํ์ ์ต๋
Ch. 5 ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ญ
์ฑ ์ ๋ชฉ์ฐจ
01 ๊ธฐ๋ณธ ๊ฐ์ฒด
02 out ๊ธฐ๋ณธ ๊ฐ์ฒด
2.1 out ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์ถ๋ ฅ ๋ฉ์๋
2.2 out ๊ธฐ๋ณธ ๊ฐ์ฒด์ ๋ฒํผ์ ๊ด๊ณ
03 pageContext ๊ธฐ๋ณธ ๊ฐ์ฒด
3.1 ๊ธฐ๋ณธ ๊ฐ์ฒด ์ ๊ทผ ๋ฉ์๋
04 application ๊ธฐ๋ณธ ๊ฐ์ฒด
4.1 ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๊ธฐํ ํ๋ผ๋ฏธํฐ ์ฝ์ด์ค๊ธฐ
4.2 ์๋ฒ ์ ๋ณด ์ฝ์ด์ค๊ธฐ
4.3 ๋ก๊ทธ ๋ฉ์์ง ๊ธฐ๋กํ๊ธฐ
4.4 ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ๊ตฌํ๊ธฐ
05 JSP ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ญ
06 JSP ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ฑ(Attribute) ์ฌ์ฉํ๊ธฐ
6.1 ์์ฑ์ ๊ฐ ํ์
6.2 ์์ฑ์ ํ์ฉ
Ch. 5 ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ญ p. 114
์์ ํ์ตํ request ๊ธฐ๋ณธ ๊ฐ์ฒด์ response ๊ธฐ๋ณธ ๊ฐ์ฒด ์ด์ธ์ ๋๋จธ์ง JSP ๊ธฐ๋ณธ ๊ฐ์ฒด์ ๋ํด์ ์ดํด๋ณธ๋ค.
JSP ํ์ด์ง์ ๊ด๋ จ๋ ๋ค ๊ฐ์ง ์์ญ๊ณผ ์์ญ๋ณ๋ก ์์ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ๋ฐฐ์ด๋ค.
5.1 ๊ธฐ๋ณธ ๊ฐ์ฒด
JSP๋ 9๊ฐ์ง ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
๊ธฐ๋ณธ ๊ฐ์ฒด | ์ค์ ํ์ | ์ค๋ช |
request | javax.servlet.http.HttpServletRequest | ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. |
response | javax.servlet.http.HttpServletResponse | ์๋ต ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. |
pageContext | javax.servlet.jsp.PageContext | JSP ํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. |
session | javax.servlet.http.HttpSession | HTTP ์ธ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. |
application | javax.servlet.ServletContext | ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. |
out | javax.servlet.jsp.JspWriter | JSP ํ์ด์ง๊ฐ ์์ฑํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ ๋ ์ฌ์ฉํ๋ ์ถ๋ ฅ ์คํธ๋ง์ด๋ค. |
config | javax.servlet.ServletConfig | JSP ํ์ด์ง์ ๋ํ ์ค์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. |
page | javax.lang.Object | JSP ํ์ด์ง๋ฅผ ๊ตฌํํ ์๋ฐ ํด๋์ค ์ธ์คํด์ค์ด๋ค. |
exception | java.lang.Throwable | ์ต์ผ์ ฅ ๊ฐ์ฒด์ด๋ค. ์๋ฌ ํ์ด์ง์๋ง ์ฌ์ฉํ๋ค. |
5.2 out ๊ธฐ๋ณธ ๊ฐ์ฒด
1) out ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์ถ๋ ฅ ๋ฉ์๋
JSP ํ์ด์ง๊ฐ ์์ฑํ๋ ๋ชจ๋ ๋ด์ฉ์ out ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ํตํด ์ ์ก๋๋ค.
์์ 5-1) out ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ JSP ํ์ด์ง์ ์คํฌ๋ฆฝํธ๋ฆฟ์ ์ง์ ์ฌ์ฉ useOutObject.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>out ๊ธฐ๋ณธ ๊ฐ์ฒด ์ฌ์ฉ</title>
</head>
<body>
<%
out.println("์๋
ํ์ธ์?");
%>
<br>
out ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ
<%
out.println("์ถ๋ ฅํ ๊ฒฐ๊ณผ์
๋๋ค.");
%>
</body>
</html>
๊ฑฐ์ ์ฐ์์ ์๋ค.
2) out ๊ธฐ๋ณธ ๊ฐ์ฒด์ ๋ฒํผ์ ๊ด๊ณ
5.3 pageContext ๊ธฐ๋ณธ ๊ฐ์ฒด
1) ๊ธฐ๋ณธ ๊ฐ์ฒด ์ ๊ทผ ๋ฉ์๋
5.4 application ๊ธฐ๋ณธ ๊ฐ์ฒด
1) ์น ์ ํ๋ฆฌ์ผ์ด์
์ด๊ธฐํ ํ๋ผ๋ฏธํฐ ์ฝ์ด์ค๊ธฐ
2) ์๋ฒ ์ ๋ณด ์ฝ์ด์ค๊ธฐ
3) ๋ก๊ทธ ๋ฉ์์ง ๊ธฐ๋กํ๊ธฐ
4) ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ๊ตฌํ๊ธฐ
5.5 JSP ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ญ p. 132
์ธ์ (Session)์ด๋ ์ฌ์ฉ์๊ฐ ์ต์ด์ ์๋ฒ์ ์์ฒญํ ์์ ๋ถํฐ ์ข ๋ฃํ ๋๊น์ง ์ฌ์ฉ์๋ก๋ถํฐ ๋ค์ด์ค๋ ์ผ๋ จ์ ์๊ตฌ๋ฅผ ํ๋์ ์ํ๋ก ๋ณด๊ณ ๊ทธ ์ํ๋ฅผ ์ผ์ ํ๊ฒ ์ ์ง์ํค๋ ๊ธฐ์ ์ด๋ค.
์ฐธ๊ณ
์ธ์ ์ ์์ด๋, ๋น๋ฐ๋ฒํธ๊ฐ ์์ผ๋ฉด ๋ก๊ทธ์ธํ๋ค.
์ธ์ ์ ์ฐ๋ ์ด์ : ํ ๋ฒ ๋ก๊ทธ์ธ ํ ๋ค์ ๊ณ์์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ด๋ค.
์น๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ผ๋ฉด ๋ ๋ผ๊ฐ๋ค.
(ํ ๋ธ๋ผ์ฐ์ ๋น ํ๋์ ์ธ์ ์ด๋ค.: ํฌ๋กฌ์ผ๋ก ๋ค์ด๋ฒ ๋ก๊ทธ์ธํด๋, ๋ง์ดํฌ๋ก์ํํธ ์ฃ์ง์๋ ๋ก๊ทธ์ธ ์ ๋ ๊ฑธ๋ก ๋ฌ๋ค.)
์ ํ๋ฆฌ์ผ์ด์ ์์ญ ex) ๋ฐฉ๋ฌธ์ ์๊ฐ ๋์ ๋๋ค.
์๋ฒ๋ฅผ ์ฃฝ์ด๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ค์ด ๋ค ๋ ๋ผ๊ฐ๋ค. (์ธ์ ์ ๋ซ์ผ๋ฉด ๋ ๋ผ๊ฐ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅด๋ค.)
- PAGE ์์ญ: ํ๋์ JSP ํ์ด์ง๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ ์์ญ
ํ ๋ฒ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํด์ ํ๋์ JSP ํ์ด์ง๋ฅผ ๋ฒ์๋ก ๊ฐ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด JSP ํ์ด์ง๋ฅผ ์คํํ๋๋ฐ, ์ด๋ JSP ํ์ด์ง๋ฅผ ์คํํ๋ ๋ฒ์๊ฐ ํ๋์ PAGE ์์ญ์ด ๋๋ค.
- REQUEST ์์ญ: ํ๋์ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ ์์ญ
ํ ๋ฒ์ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ๊ณผ ๊ด๋ จ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์ ์ฃผ์์ URL์ ์
๋ ฅํ๊ฑฐ๋ ๋งํฌ๋ฅผ ํด๋ฆญํด์ ํ์ด์ง๋ฅผ ์ด๋ํ ๋, ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์น ์๋ฒ์ ์ ์กํ๋ ์์ฒญ์ด ํ๋์ REQUEST ์์ญ์ด ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค ์๋ก์ด REQUEST ์์ญ์ด ์์ฑ๋๋ค.
- SESSION ์์ญ: ํ๋์ ์น ๋ธ๋ผ์ฐ์ ์ ๊ด๋ จ๋ ์์ญ์ด๋ค. ์ธ์
์ด ์์ฑ๋๋ฉด ํ๋์ ์น ๋ธ๋ผ์ฐ์ ์ ๊ด๋ จ๋ ๋ชจ๋ ์์ฒญ์ ํ๋์ SESSION ์์ญ์ ํฌํจ๋๋ค.
- APPLICATION ์์ญ: ํ๋์ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ด๋ จ๋ ์ ์ฒด ์์ญ์ ํฌํจํ๋ค.
5.6 JSP ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ฑ(Attribute) ์ฌ์ฉํ๊ธฐ
์์ ) ApplicationForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>application ํผ</title>
</head>
<body>
<form action="setApplicationAttribute.jsp">
์ด๋ฆ: <input type="text" name="name">
๊ฐ: <input type="text" name="value">
<input type="submit" value="์ ์ก">
</form>
</body>
</html>
์์ 5-13) application ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ฑ๊ฐ์ ์ถ๊ฐํด ์ฃผ๋ JSPํ์ด์ง setApplicationAttribute.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
String name = request.getParameter("name");
String value = request.getParameter("value");
if (name != null && value != null) {
application.setAttribute(name, value);
}
%>
<html>
<head>
<meta charset="UTF-8">
<title>application ์์ฑ ์ง์ </title>
</head>
<body>
<%
if (name != null && value != null){
%>
application ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ฑ ์ค์ :
<%= name %> = <%= value %>
<%
} else {
%>
application ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ฑ ์ค์ ์ ํจ
<%
}
%>
</body>
</html>
์์ญ์ ์๋ฒ๋ฅผ ์ฃฝ์ด์ง ์๋ ์ด์ ๊ทธ๋๋ก ๋จ์์๋ค.
http://localhost:8081/JSPExample/ch05/setApplicationAttribute.jsp?name=attr1&value=val1
์ฐฝ์ ๋ซ์๋ ์ ์ฃผ์๋ฅผ ์
๋ ฅํ๋ฉด ๊ทธ๋๋ก ๋ฌ๋ค.
์ ํ๋ฆฌ์ผ์ด์
์์ญ์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ๊ทธ๋๋ก ๋จ์์๋ค.
1) ์์ฑ์ ๊ฐ ํ์
2) ์์ฑ์ ํ์ฉ
Ch. 6 ์๋ฌ ์ฒ๋ฆฌ p. 140
์ฑ ์ ๋ชฉ์ฐจ
01 ์ต์ ์ ์ง์ ์ฒ๋ฆฌํ๊ธฐ
02 ์๋ฌ ํ์ด์ง ์ง์ ํ๊ธฐ
03 ์๋ฌ ํ์ด์ง ์์ฑํ๊ธฐ
04 ์๋ต ์ํ ์ฝ๋๋ณ๋ก ์๋ฌ ํ์ด์ง ์ง์ ํ๊ธฐ
05 ์ต์ ์ ํ์ ๋ณ๋ก ์๋ฌ ํ์ด์ง ์ง์ ํ๊ธฐ
06 ์๋ฌ ํ์ด์ง์ ์ฐ์ ์์์ ์๋ฌ ํ์ด์ง ์ง์ ํํ
07 ๋ฒํผ์ ์๋ฌ ํ์ด์ง์ ๊ด๊ณ
์ต์ ์ ์ฒ๋ฆฌ
- try{์๋ฌ ๋ฐ์}catch{์๋ฌ ์ฒ๋ฆฌ}
- ์๋ฌ ํ์ด์ง
<%@ page errorPage = "์๋ฌํ์ด์ง.jsp" %>
6.1 ์ต์ ์ ์ง์ ์ฒ๋ฆฌํ๊ธฐ
์์ 6-2) try-catch๋ฅผ ์ด์ฉํด์ ์ต์ ์ ์ด ๋ฐ์ํ ๋ ์๋ง์ ์๋ต์ ์์ฑํ๊ธฐ readParameterWithTry.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ํ๋ผ๋ฏธํฐ ์ถ๋ ฅ</title>
</head>
<body>
name ํ๋ผ๋ฏธํฐ ๊ฐ:
<% try { %>
<%= request.getParameter("name").toUpperCase() %>
<% } catch(Exception ex) { %>
name ํ๋ผ๋ฏธํฐ๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค.
<% } %>
</body>
</html>
๊ฒฐ๊ณผ)
6.2 ์๋ฌ ํ์ด์ง ์ง์ ํ๊ธฐ
์๋ฌ ํ๋ฉด ๋์ ์ง์ ํ JSP ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค.
์๋์ฒ๋ผ page ๋๋ ํฐ๋ธ์ errorPage ์์ฑ์ ์ฌ์ฉํด์ ์ง์ ํ๋ค.
<%@ page errorPage = "viewErrorMessage.jsp" %>
์์ 6-3) ์๋ฌ ํ์ด์ง๋ฅผ ์ง์ ํ๋ ์ readParameter.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page errorPage = "viewErrorMessage.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ํ๋ผ๋ฏธํฐ ์ถ๋ ฅ</title>
</head>
<body>
name ํ๋ผ๋ฏธํฐ ๊ฐ: <%= request.getParameter("name").toUpperCase() %>
</body>
</html>
6.3 ์๋ฌ ํ์ด์ง ์์ฑํ๊ธฐ p. 144
์์ 6-4) ์์ ์์ 6-3)์ด ์ง์ ํ ์๋ฌ ํ์ด์ง viewErrorMessage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page isErrorPage = "true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์๋ฌ ๋ฐ์</title>
</head>
<body>
์์ฒญ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.<br>
๋น ๋ฅธ ์๊ฐ ๋ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
<p>
์๋ฌ ํ์
: <%= exception.getClass().getName() %> <br>
์๋ฌ ๋ฉ์์ง: <b><%= exception.getMessage() %></b>
</body>
</html>
๊ฒฐ๊ณผ)
6.4 ์๋ต ์ํ ์ฝ๋๋ณ๋ก ์๋ฌ ํ์ด์ง ์ง์ ํ๊ธฐ p. 147
์๋ฌ ์ฝ๋์ ๋ํด ๋ณด์ฌ์ค ์๋ฌ ํ์ด์ง๋ฅผ ์ง์ ํ๋ ค๋ฉด web.xml ํ์ผ์ ์ค์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
์๋ชป ๊ฑด๋ค๋ฉด ์๋ฒ๊ฐ ์ ๋์๊ฐ ์๋ ์์ผ๋ฏ๋ก ์ ์คํ๊ฒ ์
๋ ฅํ๋ค.
์์ 6-5) web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<error-page>
<error-code>404</error-code>
<location>/error/error404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/error500.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error/errorNullPointer.jsp</location>
</error-page>
</web-app>
6.5 ์ต์ ์ ํ์ ๋ณ๋ก ์๋ฌ ํ์ด์ง ์ง์ ํ๊ธฐ
6.6 ์๋ฌ ํ์ด์ง์ ์ฐ์ ์์์ ์๋ฌ ํ์ด์ง ์ง์ ํํ
6.7 ๋ฒํผ์ ์๋ฌ ํ์ด์ง์ ๊ด๊ณ
Ch. 7 ํ์ด์ง ๋ชจ๋ํ์ ์์ฒญ ํ๋ฆ ์ ์ด
์ฑ ์ ๋ชฉ์ฐจ
01 <jsp:include> ์ก์ ํ๊ทธ๋ฅผ ์ด์ฉํ ๊ณตํต ์์ญ ์์ฑ
1.1 <jsp:include> ์ก์ ํ๊ทธ ์ฌ์ฉ๋ฒ
1.2 <jsp:include> ์ก์ ํ๊ทธ๋ฅผ ์ด์ฉํ ์ค๋ณต ์์ญ ์ฒ๋ฆฌ
1.3 <jsp:param>์ผ๋ก ํฌํจํ ํ์ด์ง์ ํ๋ผ๋ฏธํฐ ์ถ๊ฐํ๊ธฐ
1.4 <jsp:param> ์ก์ ํ๊ทธ์ ์บ๋ฆญํฐ ์ธ์ฝ๋ฉ
02 include ๋๋ ํฐ๋ธ๋ฅผ ์ด์ฉํ ์ค๋ณต๋ ์ฝ๋ ์ฝ์
2.1 include ๋๋ ํฐ๋ธ์ ์ฒ๋ฆฌ ๋ฐฉ์๊ณผ ํ์ฉ๋ฒ
2.2 include ๋๋ ํฐ๋ธ์ ํ์ฉ
2.3 ์ฝ๋ ์กฐ๊ฐ ์๋ ํฌํจ ๊ธฐ๋ฅ
2.4 <jsp:include> ์ก์ ํ๊ทธ์ include ๋๋ ํฐ๋ธ์ ๋น๊ต
03 <jsp:forward> ์ก์ ํ๊ทธ๋ฅผ ์ด์ฉํ JSP ํ์ด์ง ์ด๋
3.1 <jsp:forward> ์ก์ ํ๊ทธ์ ์ฌ์ฉ๋ฒ
3.2 <jsp:forward> ์ก์ ํ๊ทธ์ ์ถ๋ ฅ ๋ฒํผ์์ ๊ด๊ณ
3.3 <jsp:forward> ์ก์ ํ๊ทธ์ ํ์ฉ
3.4 <jsp:param> ์ก์ ํ๊ทธ๋ฅผ ์ด์ฉํด์ ์ด๋ํ ํ์ด์ง์ ๋ฐ๋ผ ํ๋ผ๋ฏธํฐ ์ถ๊ฐํ๊ธฐ
04 <jsp:include>์ <jsp:forward> ์ก์ ํ๊ทธ์ page ์์ฑ ๊ฒฝ๋ก
05 ๊ธฐ๋ณธ ๊ฐ์ฒด์ ์์ฑ์ ์ด์ฉํด์ ๊ฐ ์ ๋ฌํ๊ธฐ
<jsp:include> ์ก์
ํ๊ทธ์ include ๋๋ ํฐ๋ธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ณต๋ ์ฝ๋ ์์ด ์ฌ๋ฌ JSP ์ฝ๋์ ๊ณตํต๋ ๊ตฌ์ฑ ์์๋ฅผ ๋ง๋ค ์ ์๋ค.
<jsp:forward> ์ก์
ํ๊ทธ๋ฅผ ์ด์ฉํด์ ๋ค๋ฅธ JSP๋ก ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.
7.1 <jsp:include> ์ก์
ํ๊ทธ๋ฅผ ์ด์ฉํ ๊ณตํต ์์ญ ์์ฑ p. 155
ํ๋ฉด ๊ตฌ์ฑ ์์์ ์ฝ๋ ์ค๋ณต ๋ฌธ์ ๋ฅผ ์์จ ๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด ๋ฐ๋ก <jsp:include> ์ก์ ํ๊ทธ์ด๋ค.
1) <jsp:include> ์ก์ ํ๊ทธ ์ฌ์ฉ๋ฒ
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ์๋์ ๊ฐ๋ค.
<jsp:include page="ํฌํจํ ํ์ด์ง" flush="true" />
์์ 7-1) <jsp:include> ์ก์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ์์ main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>main</title>
</head>
<body>
main.jsp์์ ์์ฑํ ๋ด์ฉ
<jsp:include page="sub.jsp" flush="false" />
include ์ดํ์ ๋ด์ฉ.
</body>
</html>
์์ 7.2) ์์ ์ sub.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>
<p>
sub.jsp์์ ์์ฑํ ๋ด์ฉ
</p>
</body>
</html>
๊ฒฐ๊ณผ)
์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฏ๋ก <p> ~ </p>๋ฅผ ์ ์ธํ๊ณ ๋ ์ง์ด๋ค.
์์ 7.2) ์์ ํ sub.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<p>
sub.jsp์์ ์์ฑํ ๋ด์ฉ
</p>
๊ฒฐ๊ณผ)
2) <jsp:include> ์ก์ ํ๊ทธ๋ฅผ ์ด์ฉํ ์ค๋ณต ์์ญ ์ฒ๋ฆฌ p. 158
์๋จ | |
์ข์ธก๋ฉ๋ด | ์ค์๋ด์ฉ |
ํ๋จ |
ํ, <div> ๋ฑ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ๋ ์ด์์ ์ก์๋ ๋๋ค.
์์)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>layout1</title>
</head>
<body>
<table border="1">
<tr>
<td colspan="2"> ์๋จ
</td>
</tr>
<tr>
<td> ์ข์ธก๋ฉ๋ด </td>
<td> ์ค์๋ฉ๋ด </td>
</tr>
<tr>
<td colspan="2"> ํ๋จ</td>
</tr>
</table>
</body>
</html>
๊ฒฐ๊ณผ)
์์) ์๋จ ๊ด๋ จ ์ฝ๋ top.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
์๋จ ๋ฉ๋ด: ํ ์ ๋ณด
์์) ์ข์ธก ๊ด๋ จ ์ฝ๋ left.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
์ข์ธก ๋ฉ๋ด:
์์) ํ๋จ ๊ด๋ จ ์ฝ๋ bottom.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
ํ๋จ ๋ฉ๋ด: ์๊ฐ | ๋์๋ง | ์ฝ๊ด | ์ฌ์ดํธ๋งต
์์ 7-4) <jsp:include> ์ก์
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง์ ๊ณตํต ๋ถ๋ถ์ ์ฝ์ด์ค๋ ์ layout.jsp
flush=False (yes, the default) will wait for the line to complete before printing it.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>layout1</title>
</head>
<body>
<table border="1">
<tr>
<td colspan="2">
<jsp:include page="top.jsp" flush="false" />
</td>
</tr>
<tr>
<td> <jsp:include page="left.jsp" flush="false" /> </td>
<td> ์ค์๋ฉ๋ด </td>
</tr>
<tr>
<td colspan="2"><jsp:include page="bottom.jsp" flush="false"/></td>
</tr>
</table>
</body>
</html>
๊ฒฐ๊ณผ)
3) <jsp:param>์ผ๋ก ํฌํจํ ํ์ด์ง์ ํ๋ผ๋ฏธํฐ ์ถ๊ฐํ๊ธฐ
<jsp:include page="infoSub.jsp" flush="false">
<jsp:param name="type" value="A" />
</jsp:include>
์์ 7-6) <jsp:param> ์ก์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ infoSub.jsp์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐ๋ก ์ ๋ฌํ๋ ์ info.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>INFO</title>
</head>
<body>
<table border="1">
<tr>
<td>์ ํ๋ฒํธ</td> <td>XXXX</td>
</tr>
<tr>
<td>๊ฐ๊ฒฉ</td> <td>10,000์</td>
</tr>
</table>
<jsp:include page="infoSub.jsp" flush="false">
<jsp:param name="type" value="A" />
</jsp:include>
</html>
์์ 7-7) ์ ํ์ ํ์ ๋ณ๋ก ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๋ ฅํด์ฃผ๋ ํ๋ฉด infosub.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String type = request.getParameter("type");
if (type == null) {
return;
}
%>
<br>
<table border="1">
<tr>
<td>ํ์
</td>
<td><b><%= type %></b></td>
</tr>
<tr>
<td>ํน์ง</td>
<td>
<% if (type.equals("A")) { %>
๊ฐํ ๋ด๊ตฌ์ฑ.
<% } else if (type.equals("B")) { %>
๋ฐ์ด๋ ๋์ฒ ๋ฅ๋ ฅ
<% } %>
</td>
</tr>
</table>
๊ฒฐ๊ณผ)
4) <jsp:param> ์ก์ ํ๊ทธ์ ์บ๋ฆญํฐ ์ธ์ฝ๋ฉ
7.2 include ๋๋ ํฐ๋ธ๋ฅผ ์ด์ฉํ ์ค๋ณต๋ ์ฝ๋ ์ฝ์
include ๋๋ ํฐ๋ธ๋ <jsp:include> ์ก์
ํ๊ทธ์ฒ๋ผ ์ง์ ํ ํ์ด์ง๋ฅผ ํ์ฌ ์์น์ ํฌํจ์ํค๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ํ์ง๋ง ํฌํจํ๋ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋ค.
<jsp: include> ์ก์
ํ๊ทธ๋ ๋ค๋ฅธ JSP๋ก ์คํ ํ๋ฆ์ ์ด๋์์ผ ์คํ ๊ฒฐ๊ณผ๋ฅผ ํ์ฌ ์์น์ ํฌํจํ๋ ๋ฐฉ์์ธ ๋ฐ๋ฉด์, include ๋๋ ํฐ๋ธ๋ ๋ค๋ฅธ ํ์ผ์ ๋ด์ฉ์ ํ์ฌ ์์น์ ์ฝ์
ํ ํ์ JSP ํ์ผ์ ์๋ฐ ํ์ผ๋ก ๋ณํํ๊ณ ์ปดํ์ผํ๋ ๋ฐฉ์์ด๋ค.
1) include ๋๋ ํฐ๋ธ์ ์ฒ๋ฆฌ ๋ฐฉ์๊ณผ ํ์ฉ๋ฒ p. 169
include: ํฌํจ์ํค๋ค.
forward: ์ด๋์ํค๋ค. ๋ผ๋ ๊ฐ๋
์ด๋ค.
include ๋๋ ํฐ๋ธ์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
<%@ include file="ํฌํจํ ํ์ผ" %>
์์ 7-10) include ๋๋ ํฐ๋ธ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋จํ ์์ ์ฝ๋ includer.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>
<%
int number = 10;
%>
<%@ include file="includee.jsp" %>
๊ณตํต๋ณ์ DATAFOLDER = "<%= dataFolder %>"
</body>
</html>
์์ 7-11) dataFolder ๋ณ์๋ฅผ ์ ์ธํ๋ ์ฝ๋ includee.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
includer.jsp์์ ์ง์ ํ ๋ฒํธ: <%= number %>
<p>
<%
String dataFolder = "c:\\data";
%>
๊ฒฐ๊ณผ)
2) include ๋๋ ํฐ๋ธ์ ํ์ฉ
3) ์ฝ๋ ์กฐ๊ฐ ์๋ ํฌํจ ๊ธฐ๋ฅ
4) <jsp:include> ์ก์
ํ๊ทธ์ include ๋๋ ํฐ๋ธ์ ๋น๊ต
7.3 <jsp:forward> ์ก์ ํ๊ทธ๋ฅผ ์ด์ฉํ JSP ํ์ด์ง ์ด๋
1) <jsp:forward> ์ก์ ํ๊ทธ์ ์ฌ์ฉ๋ฒ p. 179
์์ 7-18) <jsp:forward> ์ก์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ์์ from.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--
<jsp:foward> ์ก์
ํ๊ทธ๋ฅผ ์คํํ๋ฉด
์์ฑํ๋ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ๋ชจ๋ ์ ๊ฑฐ๋๋ค.
--%>
<html>
<head><title>from.jsp์ ์ ๋ชฉ</title></head>
<body>
์ด ํ์ด์ง๋ from.jsp๊ฐ ์์ฑํ ๊ฒ์
๋๋ค.
<jsp:forward page="to.jsp" />
</body>
</html>
์์ 7-19) to.jsp
์์ 7-18)์ ์๋ <jsp:forward> ์ก์
ํ๊ทธ๋ฅผ ์ฌ์ฉํด์ to.jsp๋ก ์คํ ํ๋ฆ์ ์ด๋์ํค๊ณ ์๋ค.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head><title>to.jsp์ ์คํ ๊ฒฐ๊ณผ</title></head>
<body>
์ด ํ์ด์ง๋ to.jsp๊ฐ ์์ฑํ ๊ฒ์
๋๋ค.
</body>
</html>
๊ฒฐ๊ณผ)