Legacy
2022. 1 . 11 ์ ๊ธฐ๋ก
GroovyArea
2022. 1. 11. 09:25
- ํ๋ฃจ ์ ๋ฆฌ -
- ์ธ๋ฏธ ํ ํ์ ๋ ์ง ์ ํ๊ธฐ (๋ญ ํด์ผ ํ ์ง ์๊ฐํด์ ์๋ ค์ฃผ์)
- JSP ์๋ฒฝ ๋ณต์ต ๋ฐ ์์ ๋ง๋ค๊ธฐ
- ์ค๋ ๊ณต๋ถ ๋ด์ฉ -
JSP
- JSP๋ ์น ๋ฌธ์์ด์ง๋ง WAS์ ์ํด์ ์๋ธ๋ฆฟ ํด๋์ค๋ก ๋ณํ๋๊ธฐ ๋๋ฌธ์ ์น ํ๋ก๊ทธ๋จ์ผ๋ก๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
directive
- ์ง์์ด(Directive)
- page Directive : JSP ๋ฌธ์(์นํ๋ก๊ทธ๋จ)์ ํ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๋ก ์ง์
- include Directive : JSP ๋ฌธ์์ ์ธ๋ถ ํ์ผ์ ์ฝ๋๋ฅผ ํฌํจํ๋๋ก ์ง์
- tagLibrary Directive : JSP ๋ฌธ์์ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ Java ํ๊ทธ๋ฅผ ํฌํจํ๋๋ก ์ง์
- page Directive : JSP ๋ฌธ์๋ฅผ ์์ฒญํ์ฌ ์๋ต ๋ฐ์ ์ ์๋ ๋ฌธ์(ํ์ผ)์ ์ ํ(MimeType)๊ณผ ์บ๋ฆญํฐ์ (CharterSet - Encoding) ์ ์ ๊ณตํ๊ธฐ ์ํ ์์ฑ (contentType ๊ณผ import๊ฐ ์ ์ผ ์ค์)
- page Directive - import : JSP ๋ฌธ์์์ ์ฌ์ฉ๋ ํด๋์ค ๋๋ ์ธํฐํ์ด์ค๋ฅผ ํจํค์ง๋ก ๋ช ํํ๊ฒ ํํํ๊ธฐ ์ํ ์์ฑ
- page Directive ์์๋ ๋์ผํ ์์ฑ์ ๋ค๋ฅธ ์์ฑ๊ฐ์ ์ค๋ณต ์ ์ธํ ๊ฒฝ์ฐ ์คํ ์ 500 ์๋ฌ ๋ฐ์
- ⇒ import ์์ฑ์ ์ฌ๋ฌ๋ฒ ์ ์ธ ๊ฐ๋ฅ
- ⇒ ์๋ ์ดํด๋ฆฝ์ค์์ ์๋ ์์ฑํด์ค (์๋์ผ๋ก ํ ํ์๊ฐ ์๋ค..)
- page Directive - errorPage : JSP ์คํ ์ ์์ธ๊ฐ ๋ฐ์๋ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ฌ์ฝ๋(500) ๋์ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ JSP ๋ฌธ์๋ฅผ ์ค์ ํ๊ธฐ ์ํ ์์ฑ - ํด๋ผ์ด์ธํธ์ ์์ฒญ URL์ฃผ์ ๋ฏธ๋ณ๊ฒฝ
- ์ฌ์ฉ์์๊ฒ๋ ์๋ฌ์ฝ๋๋ณด๋ค HTML ๋ฌธ์๋ก ์๋ตํด์ฃผ๋๊ฒ์ด ์ข๋ค (์๋ฌํ์ด์ง์ ์ด์ )
- page Directive - isErrorPage : page Directive์์ isErrorPage ์์ฑ๊ฐ์ [true]๋ฅผ ์ค์ ํ๋ฉด ์์ธ ์ ๋ณด๊ฐ ์ ์ฅ๋ exception ๋ด์ฅ๊ฐ์ฒด ์ ๊ณต (๊ธฐ๋ณธ๊ฐ false)
- errorPage ์์ฑ์ ๊ทธ๋ฆฌ ๋ง์ด ์ฐ์ด์ง๋ ์์
- [web.xml] ํ์ผ์์ ๋ชจ๋ ์นํ๋ก๊ทธ๋จ์ ๋ํ ์์ฒญ์๋ฌ(4xx)์ ์๋ต์๋ฌ(5xx)์ ๋ํ ์๋ฌํ์ด์ง ์ค์ - ํด๋ผ์ด์ธํธ์ ์์ฒญ URL ์ฃผ์ ๋ฏธ๋ณ๊ฒฝ
- WEB.xml ์์์ error-page ์๋ฆฌ๋จผํธ : ์๋ฒ์์ ๋ฐ์๋ ์๋ฌ์ ๋ํ ๋ฉ์ธ์ง๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์นํ๋ก๊ทธ๋จ์ ์ค์ ํ๋ ๋ถ๋ชจ ์๋ฆฌ๋จผํธ
- exception-type : ์น ํ๋ก๊ทธ๋จ ์คํ ์ ๋ฐ์๋ ์์ธ์ ๋ํ ์์ธํด๋์ค๋ฅผ ์ค์ ํ๋ ์๋ฆฌ๋จผํธ
- location : ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์นํ๋ก๊ทธ๋จ์ URL ์ฃผ์๋ฅผ ์ค์ ํ๋ ์๋ฆฌ๋จผํธ
- error-code: ํด๋ผ์ด์ธํธ์์ ์ ๋ฌ๋๋ ์ํ์ฝ๋(์๋ฌ ์ฝ๋ : 4xx or 5xx)๋ฅผ ์ค์ ํ๋ ์๋ฆฌ๋จผํธ ) ์ผ 500์ด ๋ฐ์ํ๋ฉด ๋์ ์๋ตํด์ค๋ผ (location์ผ๋ก)
- web.xml์์๋ Exception์ด ๋ ์ฐ์ ์์๊ฐ ๋๋ค (์ค๋ณต ์๋ฌ ์ผ๋๋) ์ผ๋จ 400์ผ๋ก ๋ณด๋ด์.. 404๋ ๋ง์ด ๋ณด๋
include - directive
- ์๋ฒ ์ปจํ ์คํธ๋ก ์กด์ฌํ๋ ํ์ผ์ ์ฝ๋๋ฅผ ํ์ฌ JSP๋ฌธ์์ ํฌํจํ๋ ์ง์์ด - ์ ์ ํฌํจ
- jspf ํ์ผ์ ๋ค๋ฅธ jsp์ ํฌํจ๋๋ ํ์ผ (์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋์ง ์์) - ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ์ ์๋ต์ด ๋ชฉ์ ์ด ์๋ ๋ค๋ฅธ JSP ๋ฌธ์์ ์ฝ๋๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์์ฑ๋ ํ์ผ
- JSPF ํ์ผ๊ณผ ํ์ผ์ ํฌํจํ๋ JSP ํ์ผ์ ์ ์ธ๋ page ์ง์์ด(Directive)์ contentType ์์ฑ๊ฐ์ ๋ฐ๋์ ๋์ผํ๊ฒ ์ค์
- ํค๋์ ํธํฐ ๋ถ๋ถ์ ์ด์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ์ (์ ์ง๋ณด์์ ์ ์ฉํจ)
- ๊ทธ๋ฅ ์์ฒญํ๋ฉด ํ ์คํธ๋ก ๋ฐ์๋ค์ฌ์ ๊ธ์๊ฐ ๋ค๊นจ์ง (์๋ธ๋ฆฟ์ผ๋ก ๋ฐ๋์ง ์์ ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ๊ฐ ์๋จ) ์ผ๋ฐ ํ ์คํธ ํ์ผ๊ณผ ๋ค๋ฅธ ๊ฒฝ์ฐ๋ java์ฝ๋๋ฅผ ์ธ ์ ์์
- Header ์์ญ : ๋ก๊ณ , ๋ฉ๋ด ๋ฑ
- Content ์์ญ : ์์ฒญ์ ๋ํ ์๋ต ๊ฒฐ๊ณผ
- footer ์์ญ : ์ ์๊ถ, ์ฝ๊ด, ๊ฐ์ธ์ ๋ณด ๋ณดํธ์ ์ฑ ๋ฑ ์ถ๋ ฅ
- a ํ๊ทธ ๋ฆฌ์์ค ๊ฒฝ๋ก ์ ์ ๋ ์ ๋๊ฒฝ๋ก๋ก ํด์ค์ผํจ. (๋ค๋ฅธ ํด๋์ ์์ ์๊ฐ ์์)
tagLib - directive
- jsp๋ง ์ด์ฉํ ํ๋ก๊ทธ๋จ์ ๊ฑฐ์ ์ฌ์ฉํ์ง ์์.
- ํ๊ทธ ํด๋์ค : JSP ๋ฌธ์์์ ์ปค์คํ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉํ์ฌ ๋์๋๋ ํด๋์ค
- ⇒ TagSupport ํด๋์ค๋ฅผ ์์๋ฐ์ ์์ฑ → ์์๋ฐ๋ ์ด์ : ๋ถ๋ชจ ํด๋์ค ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ค๋ฒ๋ผ์ด๋ํ๊ธฐ ์ํด์์. WAS๊ฐ ์ฌ์ฉํ ์ ์๊ฒ ๋จ.
- doStartTag() : JSP ๋ฌธ์์์ ์ปค์คํ ํ๊ทธ์ ์์ํ๊ทธ ์ฌ์ฉ ์ ์๋ ํธ์ถ๋๋ ๋ฉ์๋
- doEndTag() : JSP ๋ฌธ์์์ ์ปค์คํ ํ๊ทธ์ ์ข ๋ฃํ๊ทธ ์ฌ์ฉ ์ ์๋ ํธ์ถ๋๋ ๋ฉ์๋
- WEb-inf ํด๋์ xml ํ์ผ๋ก ์น์์์ผ๋ก ๋ฑ๋กํจ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ ๋์คํฌ๋ฆฝํธ ํ์ผ์ tld ์ผ๋ก ๊ท์น์ ๋ง๊ฒ ๋ง๋ค์
- uri ์๋ฆฌ๋จผํธ๋ jsp ์น๋ฌธ์์์ tld ํ์ผ์ ๊ตฌ๋ถํ๊ธฐ ์ํ ์๋ณ์ ๊ฐ์ ์ญํ .
- tag-class์ ์๋ ํด๋์ค๊ฐ ๊ฐ์ฒดํ ๋์ด ์๋ฐ ๋ช ๋ น์ด ์คํ๋จ. body๊ฐ ์๋ค (ํ๊ทธ ๋ด์ฉ์ด ์์)
- JSP ๋ฌธ์์ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ(TLD)์ ํฌํจํ์ฌ ์ปค์คํ ํ๊ทธ๋ฅผ ์ ๊ณตํ๋ ์ง์์ด
- ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ : ํ๊ทธ ํด๋์ค๋ฅผ ์ปค์คํ ํ๊ทธ๋ก ๋ฑ๋กํ๋ XML ํ์ผ
- ์คํฌ๋ฆฝํ๋ฆฟ์ผ๋ก taglib Directive๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ๋ถ๋ฌ์ ํฌํจ
- prefix ์์ฑ : ์ปค์คํ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๋ค์์คํ์ด์ค(namespace)๋ฅผ ์์ฑ๊ฐ์ผ๋ก ํํ (์ด๋์ ์ฌ๋ ๊น์จ ๋๊ฐ ์๋ ค๊ณ ) - prefix๊ฐ ์๋ ํ์ผ๋ก ๋ง๋ ํ ์ ๋ง์ ๋ง๊ฒ ์ด๋ฆ ์ง์ด์ ์ฌ์ฉ.
- uri ์์ฑ : ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ๋ฑ๋ก๋ ์๋ณ์ (uri ์๋ฆฌ๋จผํธ์ ํ๊ทธ๋ด์ฉ)๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์ : ์๋ ์์ฑ
JSP ๋ด์ฅ ๊ฐ์ฒด
- WAS ํ๋ก๊ทธ๋จ์ ์ํด JSP ๋ฌธ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ Java ๊ฐ์ฒด(์ธ์คํด์ค)
- page(HttpJspPage) : JSP ๋ฌธ์์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ ์ ๊ณตํ๊ธฐ ์ํ ์ธ์คํด์ค(๋ฉ์๋์ this์ ์ ์ฌ)
- config(ServletConfig) : WAS ํ๋ก๊ทธ๋จ์ ๋ฑ๋ก๋ ๊ฐ์ ์ ๊ณตํ๊ธฐ ์ํ ์ธ์คํด์ค
- out(JspWriter) : ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ ์๋ต ๋ฌธ์๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ธ์คํด์ค(์ถ๋ ฅ์คํธ๋ฆผ) - ํํ์์ ์ฐ๋ฉด ๋ด๋ถ์ ์ผ๋ก out.println์ด ๋์
- request(HttpServletRequest) : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์ธ์คํด์ค
- response(HttpServletResponse) : ํด๋ผ์ด์ธํธ์ ์๋ต์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์ธ์คํด์ค
- session(HttpSession) : ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ ์ง์์ฑ์ ์ ๊ณตํ๊ธฐ ์ํ ์ธ์คํด์ค
- application(ServletContext) : ์๋ฒ์ ์ปจํ ์คํธ ์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ ์ ๊ณตํ๊ธฐ ์ํ ์ธ์คํด์ค
- pageContext(pageContext) : JSP ๋ฌธ์์ ํ์ํ Java ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์ธ์คํด์ค - (๋ถ๋ชจ) ๋ค ๊ฐ์ง๊ณ ์์
- Exception(Throwable) : JSP ๋ฌธ์ ์คํ ์ ๋ฐ์๋๋ ์์ธ๋ฅผ ์ ์ฅํ์ฌ ์ ๊ณตํ๊ธฐ ์ํ ์ธ์คํด์ค - page Directive์ isErrorPage ์์ฑ๊ฐ์ [true]๋ก ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ์ ๊ณต๋๋ ๋ด์ฅ๊ฐ์ฒด
- ๊ฐ์ฒด ์ค์ฝํ ์ค์ํจ
<short-name>c</short-name>
<uri>http://www.itwill.xyz/jsp/custom</uri>
<tag>
<name>display</name>
<tag-class>xyz.itwill.custom.CustomTag</tag-class>
<body-content>empty</body-content>
</tag>
<%@taglib prefix="c" uri="http://www.itwill.xyz/jsp/custom"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
<h1>taglib Directive</h1>
<hr>
<p>JSP ๋ฌธ์์ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ(TLD)์ ํฌํจํ์ฌ ์ปค์คํ
ํ๊ทธ๋ฅผ ์ ๊ณตํ๋ ์ง์์ด</p>
<p>ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ : ํ๊ทธ ํด๋์ค๋ฅผ ์ปค์คํ
ํ๊ทธ๋ก ๋ฑ๋กํ๋ XML ํ์ผ</p>
<hr>
<c:display/>
<c:display/>
<c:display/>
</body>
</html>
=> short-name ์๋ฆฌ๋จผํธ๋ prefix์ ๊ฐ์ ์๋ณ์ ๊ธฐ๋ฅ์ ํ๋ ๊ฒ์ผ๋ก ํ์ธ!
- ์ธ๋ฏธ ํํ -
> ๊ฐ ๋งก์ ์ญํ ์ ํ ์ด๋ธ ๋ฐ ์ปฌ๋ผ๋ช ํ์ธํ๊ธฐ
> ํ ์์ผ 2~6์ ํ์ (๊ณต๋ถ๋ ์์ )
> ์ฐธ์กฐํค ํ์คํ ๊ณต๋ถํด์ค๊ธฐ
- ์คํฐ๋ ๋ด์ฉ ๋ฐ ๊ฒฐ๊ณผ -
> tagLib ์ฐ๋ ์ด์ ํ์ธ
> ์ ์ฒด์ ์ธ jsp ๋ณต์ต (์ง์์ด, ์คํฌ๋ฆฝํ ์์)
๋ฐ์ํ