JSP ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ด ์ ๋ฆฌ - ํ ํ๋ฆฟ ๋ฐ์ดํฐ, JSP ์ ์ฉ ํ๊ทธ, ๋ด์ฅ ๊ฐ์ฒด
JSP ๊ตฌ์ฑ ์์๋ ํฌ๊ฒ ํ ํ๋ฆฟ ๋ฐ์ดํฐ์ JSP ์ ์ฉ ํ๊ทธ, JSP ๋ด์ฅ ๊ฐ์ฒด ์ธ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค.
ํ ํ๋ฆฟ ๋ฐ์ดํฐ | ํด๋ผ์ด์ธํธ๋ก ์ถ๋ ฅ๋๋ ์ฝํ
์ธ HTML, ์๋ฐ์คํฌ๋ฆฝํธ, ์คํ์ผ ์ํธ, JSON, XML, ์ผ๋ฐ ํ ์คํธ ๋ฑ์ด ์ฌ๊ธฐ์ ํด๋นํ๋ค. |
JSP ์ ์ฉ ํ๊ทธ | ์๋ธ๋ฆฟ ์์ฑ ์ ํน์ ์๋ฐ ์ฝ๋๋ก ๋ฐ๋๋ ํ๊ทธ Directives(<%@ %>), Scriptlet Elements(<% %>), Declarations(<%! %>), Expressions(<%= %>), JSP Action(<jsp:...>) |
JSP ๋ด์ฅ ๊ฐ์ฒด |
JSP ๊ธฐ์ ์ฌ์์์ ์ ์๋ ํ์์ ์ธ 9๊ฐ ๊ฐ์ฒด request, response, pageContext, session, application, config, out, page, exception JSP์์ ๋ณ๋ ์ ์ธ ์์ด ์ฌ์ฉ ๊ฐ๋ฅ |
ํ ํ๋ฆฟ ๋ฐ์ดํฐ
ํ ํ๋ฆฟ ๋ฐ์ดํฐ๋ ํด๋ผ์ด์ธํธ๋ก ์ถ๋ ฅ๋๋ ์ฝํ ์ธ ์ด๋ค.
ํ ํ๋ฆฟ ๋ฐ์ดํฐ๋ ์๋ธ๋ฆฟ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ถ๋ ฅ๋ฌธ(ํฐ์บฃ์ ๊ฒฝ์ฐ out.println)์ผ๋ก ๋ฐ๋๋ค.
jsp๋ก๋ถํฐ ์์ฑ๋ ์๋ฐ ์๋ธ๋ฆฟ ํ์ผ์ ์์ค๋ฅผ ์ด์ด๋ณด๋ฉด ํ ํ๋ฆฟ ๋ฐ์ดํฐ๊ฐ ์๋ฐ ์ถ๋ ฅ๋ฌธ์ผ๋ก ๋ณํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
JSP ์ ์ฉ ํ๊ทธ
Directives(์ง์์)
<%@ ์ง์์ ์์ฑ="๊ฐ" ์์ฑ="๊ฐ" ... %>
JSP ์ง์์๋ ์ง์์, ์์ฑ์ ๋ฐ๋ผ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
JSP ์ง์์์๋ page, taglib, include๊ฐ ์๋ค.
page
page ์ง์์๋ JSP ํ์ด์ง์ ๊ด๋ จ๋ ์์ฑ์ ์ ์ํ ๋ ์ฌ์ฉํ๋ ํ๊ทธ์ด๋ค.
page ์ง์์์ ์
1
|
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
|
cs |
์์ฑ | ์ค๋ช |
language | ์คํฌ๋ฆฝํ๋ฆฟ, ํํ์, ์ ์ธ๋ถ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ ํ๋ค. ์ฆ JSP ํ์ด์ง์ ์ฝ์ก๋๋ ์ฝ๋์ ์คํฌ๋ฆฝํ ์ธ์ด๋ฅผ ์ง์ ํ๋ค. JSP 2.2์์๋ 'java'๋ง ํ์ฉ๋๋ค. (๋ชจ๋ ์๋ฌธ์๋ก ์์ฑ) language ์์ฑ์ ์๋ตํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ 'java'์ด๋ค. |
contentType | ์ถ๋ ฅํ ๋ฐ์ดํฐ์ MIME ํ์
๊ณผ ๋ฌธ์ ์งํฉ์ ์ง์ ํ๋ค. MIME ํ์ ์ด 'text/html'์ด๋ฉด ์ถ๋ ฅํ ๋ฐ์ดํฐ๊ฐ HTML์ด๋ผ๋ ์๋ฏธ์ด๋ค. ๋ฌธ์ ์งํฉ์ด 'charset=UTF-8'์ด๋ฉด ์ถ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ UTF-8๋ก ์ธ์ฝ๋ฉํ๋ค. ๋ฌธ์ ์งํฉ์ ์๋ตํ๋ฉด ๊ธฐ๋ณธ๊ฐ 'ISO-8859-1'์ ์ฌ์ฉํ๋ค. ์๋ฐ๋ ๋ฌธ์์ด์ ๋ค๋ฃฐ๋ ์ ๋์ฝ๋(UTF-16 BE)๋ฅผ ์ฌ์ฉํ๋๋ฐ ํด๋ผ์ด์ธํธ๋ก ๋ฌธ์์ด์ ์ถ๋ ฅํ ๋ ์ ๋์ฝ๋๋ฅผ contentType ํน์ pageEncoding์ ์ค์ ๋ ๋ฌธ์ ์งํฉ์ผ๋ก ์ธ์ฝ๋ฉํ์ฌ ์ถ๋ ฅํ๋ค. |
pageEncoding | ์ถ๋ ฅํ ๋ฐ์ดํฐ์ ๋ฌธ์ ์งํฉ์ ์ง์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ 'ISO-8859-1'์ด๋ค. contentType ์ค์ ๊ฐ๋ณด๋ค ์ฐ์ ์๋๋ค. ์ด ์์ฑ์ ์๋ตํ๋ฉด contentType์ ์ค์ ๋ ๊ฐ์ ์ฌ์ฉํ๋ค. |
page ์ง์์๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
contentType๊ณผ pageEncoding ์์ฑ์ ์ง์ ๋ ๊ฐ์ผ๋ก setContentType() ํธ์ถ ์ฝ๋๊ฐ ์์ฑ๋๋ค.
language ์์ฑ์ JSP ์์ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ด๋ฉฐ ๋ฐ๋ก ์ฝ๋๋ฅผ ์์ฑํ์ง ์๋๋ค.
taglib
taglib๋ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉํ๋ค.
taglib ์ง์์์ ์ : JSTL Core ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ธ
1
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
cs |
์์ฑ | ์ค๋ช |
uri | ์ฌ์ฉํ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์์คํ์ด์ค ์๋ณ์(URI) |
prefix | ํ๊ทธ ์ ๋์ฌ |
Scriptlet Elements(์คํฌ๋ฆฝํธ๋ฆฟ)
<% ์๋ฐ ์ฝ๋ %>
JSP์ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์คํฌ๋ฆฝํธ๋ฆฟ ํ๊ทธ <% %> ์์ ์์ฑํ๋ค.
์คํฌ๋ฆฝํธ๋ฆฟ ํ๊ทธ ์์ ์์ฑํ ์ฝ๋๋ ์๋ธ๋ฆฟ ํ์ผ์ ๋ง๋ค ๋ ๊ทธ๋๋ก ๋ณต์ฌ๋๋ค.
JSP ์คํฌ๋ฆฝํธ๋ฆฟ ์ฝ๋์ ์
์์ฑ๋ JAVA ์ฝ๋
JSP์์ ์์ฑ๋ ์๋ฐ ์๋ธ๋ฆฟ ์์ค์์ _jspService() ์์ ๊ทธ๋๋ก ๋ณต์ฌ๋๋ค.
Declarations(์ ์ธ๋ฌธ)
<%! %>
์๋ธ๋ฆฟ ํด๋์ค์ ๋ฉค๋ฒ(๋ณ์, ๋ฉ์๋)๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉํ๋ค.
JSP ์ ์ธ๋ฌธ์ ์
JSP์์ ์์ฑ ์์น๋ ์๊ด ์๋ค.
์ ์ธ๋ฌธ์ _jspService() ๋ฉ์๋ ์์ ๋ณต์ฌ๋๋ ๊ฒ์ด ์๋๋ผ _jspService() ๋ฐ์ ํด๋์ค ๋ธ๋ก ์์ ๋ณต์ฌ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฐ ์๋ธ๋ฆฟ ์ฝ๋์ ์ถ๋ ฅ๋ฌธ์ผ๋ก ๋ณํ๋ ์ ์ธ๋ฌธ์ ์
Expressions(ํํ์)
<%= %>
๋ฌธ์์ด์ ์ถ๋ ฅํ ๋ ์ฌ์ฉํ๋ค.
๋ฐ๋ผ์ ํํ์ <%= %> ์์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์๋ฐ ์ฝ๋๊ฐ ์์ผํ๋ค.
ํํ์์ ์ถ๋ ฅ๋ฌธ์ผ๋ก ๋ง๋ค์ด์ง๋ฉฐ ์คํฌ๋ฆฝํธ๋ฆฟ๊ณผ ๊ฐ์ด _jspService() ์์ ์์๋๋ก ๋ณต์ฌ๋๋ค.
JSP ํํ์์ ์
์๋ฐ ์๋ธ๋ฆฟ ์ฝ๋์ ์ถ๋ ฅ๋ฌธ์ผ๋ก ๋ณํ๋ ํํ์์ ์
์์ ๊ฐ์ด JSP ํํ์ ์์ ์๋ฐ ์ฝ๋๊ฐ out.println() ์ถ๋ ฅ๋ฌธ์ ์ธ์๊ฐ์ผ๋ก ๋ณต์ฌ๋๋ค.
๋ฐ๋ผ์ JSP ํํ์ ์์๋ out.println()์ ์์๊ฐ์ผ๋ก ๋ฃ์ ์ ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์๋ฐ ์ฝ๋๊ฐ ์์ผํ๋ค.
JSP Action
JSP์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ ํ๊ทธ๋ค์ ์งํฉ์ 'JSP Action'์ด๋ผ ํ๋ค.
๋ค์์ JSP 2.2์์ ์ ๊ณตํ๋ Standard Action๋ค์ด๋ค.
์ก์ | ์ค๋ช |
<jsp:useBean> | ์๋ฐ ์ธ์คํด์ค๋ฅผ ์ค๋นํ๋ค. ๋ณด๊ด์์์ ์๋ฐ ์ธ์คํด์ค๋ฅผ ๊บผ๋ด๊ฑฐ๋ ์๋ฐ ์ธ์คํด์ค๋ฅผ ์๋ก ๋ง๋ค์ด ๋ณด๊ด์์ ์ ์ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ์๋ฐ ์ธ์คํด์ค๋ฅผ ์๋ฐ ๋น(Java Bean)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. |
<jsp:setProperty> | ์๋ฐ ๋น์ ํ๋กํผํฐ ๊ฐ์ ์ค์ ํ๋ค. ์๋ฐ ๊ฐ์ฒด์ settet()๋ฅผ ํธ์ถํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:getProperty> | ์๋ฐ ๋น์ ํ๋กํผํฐ ๊ฐ์ ๊บผ๋ธ๋ค. ์๋ฐ ๊ฐ์ฒด์ getter()๋ฅผ ํธ์ถํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:include> | ์ ์ (HTML, ํ ์คํธ ํ์ผ ๋ฑ) ๋๋ ๋์ (์๋ธ๋ฆฟ/JSP) ์์์ includingํ๋ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:forward> | ํ์ฌ ํ์ด์ง์ ์คํ์ ๋ฉ์ถ๊ณ ๋ค๋ฅธ ์ ์ , ๋์ ์์์ผ๋ก forwardingํ๋ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:param> | jsp:include, jsp:forard, jsp:params์ ์์ ํ๊ทธ๋ก ์ฌ์ฉํ๋ค. ServletRequest ๊ฐ์ฒด์ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
<jsp:plugin> | OBJECT ๋๋ EMBED HTML ํ๊ทธ๋ฅผ ์์ฑํ๋ค. |
<jsp:element> | ์์์ XML ํ๊ทธ๋ HTML ํ๊ทธ๋ฅผ ์์ฑํ๋ค. |
JSP Implicit Objects(๋ด์ฅ ๊ฐ์ฒด)
request, response, pageContext, session, application, config, out, page, exception
JSP์์ ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ ๋ ๋ณ๋์ ์ ์ธ ์์ด ์ฌ์ฉํ ์ ์๋ ์๋ฐ ๊ฐ์ฒด์ด๋ค.
์๋ฅผ ๋ค์ด JSP์์ ์ ์ธ ์์ด ์ฌ์ฉํ ์ ์๋ request ๊ฐ์ฒด๊ฐ ์ด์ ํด๋นํ๋ค.
JSP๋ก๋ถํฐ ์์ฑ๋ ์๋ฐ ์๋ธ๋ฆฟ ์์ค์ _jspService()๋ฅผ ๋ณด๋ฉด ํด๋น ๊ฐ์ฒด๋ค์ ๋ณ์๊ฐ ์ ์ธ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
_jspService()๋ javax.servlet.jsp.HttpJspPage ์ธํฐํ์ด์ค์ ์ ์ธ๋ ๋ฉ์๋์ด๋ค.
JSP ๊ธฐ์ ์ฌ์์์๋ JSP๋ก ์๋ธ๋ฆฟ์ ๋ง๋ค ๋ ๋ฐ๋์ ์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋๋ก ์ ์ํ๊ณ ์๋ค.
๋ํ JSP ์์ฑ ์ ์ ์ธ ์์ด ์ฆ์ ์ฌ์ฉํ ์ ์๋ 9๊ฐ ๊ฐ์ฒด request, response, pageContext, session, application, config, out, page, exception ๋ฅผ ์ ์ํ๊ณ ์๋ค. (exception์ JSP๊ฐ ์์ธ ์ฒ๋ฆฌ ํ์ด์ง๋ก ์ ์ธ๋ ๊ฒฝ์ฐ์๋ง ์กด์ฌ)
์คํฌ๋ฆฝํธ๋ฆฟ <% %>๊ณผ ํํ์ <%= %>์ ์์ฑํ ์๋ฐ ์ฝ๋๋ _jspService๋ก ๋ณต์ฌ๋ ๋ JSP ๋ด์ฅ ๊ฐ์ฒด๋ฅผ ์ ์ธํ ๋ฌธ์ฅ ๋ค์ ๋ณต์ฌ๋๋ค.
์ด๋ฐ ์ด์ ๋ก ๋ณ๋ ์ ์ธ ์์ด JSP ๋ด์ฅ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด๋ค.
'Javaยท๏ปฟServletยท๏ปฟJSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
RequestDispatcher.forward()๋ฅผ ์ด์ฉํ ์๋ฌ ํ์ด์ง ์ถ๋ ฅํ๊ธฐ (0) | 2020.02.12 |
---|---|
[IntelliJ] ํ์๊ฐ์ ์์ (MVC) - (4) ๋ทฐ(JSP) ๋ถ๋ฆฌํ๊ธฐ (0) | 2020.02.12 |
JSP ๊ตฌ๋ ์๋ฆฌ (0) | 2020.02.11 |
Servlet Filter ์ฌ์ฉํ๊ธฐ (0) | 2020.02.11 |
Servlet Init Parameter(์๋ธ๋ฆฟ ์ด๊ธฐํ ๋งค๊ฐ๋ณ์)๋ก web.xml์ DB ์ฐ๊ฒฐ ์ ๋ณด ๊ด๋ฆฌํ๊ธฐ (1) | 2020.02.11 |
๋๊ธ