μ§μμ΄
μ§μμ΄λ?
ν΄λΉνλ JSP νμΌμ μμ±μ κΈ°μ νλ κ³³μΌλ‘ JSP 컨ν μ΄λμκ² ν΄λΉ νμ΄μ§λ₯Ό μ΄λ»κ² μ²λ¦¬ν΄μΌ νλμ§ μ λ¬νκΈ° μν λ΄μ©μ λ΄κ³ μμ
1. page μ§μμ΄
page μ§μμ΄λ νμ¬μ JSP νμ΄μ§λ₯Ό 컨ν μ΄λμμ μ²λ¦¬νλ λ° νμν κ°μ’ μμ±μ κΈ°μ νλ λΆλΆμΌλ‘, λκ° μμ€μ½λ 맨 μμμ λ³Ό μ μλ€.
<%@ page μμ±1="μμ± κ°" μμ±2="μμ±2 κ°"..... %>
page μ§μμ΄ μμ± μ€μμλ νμ μ§μ μ νμν contentType, μλ° ν΄λμ€ μ¬μ©μ νμν import, μ€λ₯ νμ΄μ§ κ΄λ¦¬μ νμν errorPage, isErrorPage λ±μ κ°μ₯ λ§μ΄ μ¬μ©νλ€. μ°λ¦¬λλΌμμλ νκΈ μ²λ¦¬λ₯Ό μν΄ page μ§μμ΄λ₯Ό μ£Όλ‘ μ¬μ©νκ² λλ€.
νκΈ μ²λ¦¬λ₯Ό μν΄ κΆμ₯λλ μ¬νμ page μ§μμ΄μ μμ±μΈ pageEncodingκ³Ό contentType μμ±μ λͺ¨λ μ¬μ©νλ©΄μ μ μ§μ μΌλ‘ pageEncoding μ€μ¬μΌλ‘ μμ±νλ κ²μ΄λ€.
- pageEncoding μμ±
pageEncodingμ 컨ν μ΄λμμ μ²λ¦¬ν JSP νμΌμ μΈμ½λ©μ μ€μ νλ€. κΈ°λ³Έμ μΌλ‘ pageEncodingμ μ¬μ©νκ³ , ν΄λΌμ΄μΈνΈ μλ΅ κ²°κ³Όλ₯Ό νμΈνκΈ° μν΄ contentTypeμ λ³νν΄μ μ¬μ©νλλ‘ νλ€.
- contentType μμ±
νμ¬ JSP νμ΄μ§λ₯Ό ν΄λΌμ΄μΈνΈμμ μ²λ¦¬νκΈ° μν μ½ν μΈ μ νμ μ§μ νλ λΆλΆμ΄λ€. μΉ λΈλΌμ°μ μμ contentTypeμ λ°λΌ μ λ¬λλ λ΄μ©μ μ΄λ»κ² μ²λ¦¬ν μ§ κ²°μ ν μ μλ€.
2. include μ§μμ΄
include μ§μμ΄λ νμ¬ JSP νμΌμ λ€λ₯Έ HTMLμ΄λ JSP λ¬Έμλ₯Ό ν¬ν¨νκΈ° μν κΈ°λ₯μ μ 곡νλ€. include μ§μμ΄λ JSP νμΌμ μ»΄νμΌ νκΈ°μ μ λͺ¨λ ν¬ν¨μν¨ λ€ νλμ ν΄λμ€ νμΌλ‘ μ»΄νμΌ μν¨λ€.
<%@ include file="ν¬ν¨ν νμΌ μ΄λ¦" %>
include μ§μμ΄λ₯Ό μ¬μ©νλ©΄ νλμ νμ΄μ§ λ΄μμ κ°κ°μ λΈλ‘λ€μ΄ λ³λμ κΈ°λ₯μ λ 립μ μΌλ‘ μνν μ μλ€. λ§μ½ νλμ λ©μΈ νμ΄μ§λ₯Ό JSP νμΌ νλλ‘ κ΅¬μ±νλ€λ©΄, νμ΄μ§κ° 볡μ‘ν΄μ§κ³ κ° λΆλΆμ κΈ°λ₯λ€μ΄ λΆλ¦¬λμ§ μμ κ°μ νκ±°λ μ¬νμ©νκΈ°μ κ΅μ₯ν λΆνΈν΄μ§ μ μλ€. λ³λμ νμΌλ€μ λ§λλ κ²μ λ²κ±°λ‘μ§λ§ νλ² λ§λ€μ΄λλ©΄ λ€μν νμ΄μ§μμ μ¬νμ©ν μ μλ€.
3. taglib μ§μμ΄
taglib μ§μμ΄λ JSP κΈ°λ₯μ νμ₯νκΈ° μν΄ λ§λ€μ΄μ§ 컀μ€ν νκ·Έ λΌμ΄λΈλ¬λ¦¬λ₯Ό JSP νμΌμμ μ¬μ©νκΈ° μν μ§μμ΄μ΄λ€.
<%@ taglib uri="/META-INF/mytag.tld" prefix="mytag" %>
taglibμ uri, prefix μμ±μΌλ‘ μ΄λ£¨μ΄μ§λ€. uriλ TLD νμΌμ μ§μ νλ λ° μ¬μ©νλ€. TLD νμΌμ 컀μ€ν νκ·Έμ ꡬ쑰λ₯Ό μ μν νμΌλ‘ XML νμμΌλ‘ 미리 λ§λ€μ΄μ Έ μμ΄μΌ νλ€. λν TLD νμΌμμλ 컀μ€ν νκ·Έμ μ€μ μ μΈ κ΅¬νμ μν μλ° ν΄λμ€ νμΌμ μ§μ ν΄μΌ νλ€. λ€μμΌλ‘ prefixλ νμ¬ JSP νμΌμμ 컀μ€ν νκ·Έλ₯Ό μ¬μ©νκΈ° μν μ΄λ¦μΌλ‘ μΌμ’ μ λ³μλͺ μν μ νλ€.
<mytag:GetInfo name="user1"/>
mytag.tld νμΌμ μ μλ νκ·Έμ€ GetInfo νκ·Έλ₯Ό μ¬μ©νλ κ²μ΄λ©°, name μμ±μ "user1" κ°μ μ λ¬νλ λ΄μ©μ΄λ€. μ¬κΈ°μ mytagλ μμ prefixμμ μ μΈλ λ΄μ©μ΄λ€. μ΄μκ°μ νκ·Έ λΌμ΄λΈλ¬λ¦¬λ 볡μ‘νκ³ λ°λ³΅λλ μμ μ κ°λ¨ν νκ·Έ ννλ‘ λ§λ€μ΄ νμΌ κ΅¬μ±μ μΌκ΄μ±μ μ μ§νλ©° μ μ§λ³΄μμ ν¨μ¨μ±μ λμ΄λ €λ λͺ©μ μΌλ‘ λ리 μ¬μ©λλ€.
μ‘μ
μ‘μ μ JSP μ£Όμ ꡬμ±μμ μ€ νλλ‘ λ€μκ³Ό κ°μ κΈ°λ₯μ μ§μνλ€.
(1) JSP νμ΄μ§ κ° νλ¦ μ μ΄
(2) μλ° μ νλ¦Ώ μ§μ
(3) μλ° λΉμ¦ μ»΄ν¬λνΈμ JSP μνΈμμ© μ§μ
JSP μ‘μ μ XML ννμ νκ·Έλ§ λΆμΌ μ μμΌλ©°, κΈ°λ³Έμ μΌλ‘ <jsp:action_name attribute="value"/> ννλ₯Ό μ·¨νλ€.
1. include μ‘μ
include μ‘μ μ λ€λ₯Έ νμΌμ λΆλ¬μ¨λ€λ μΈ‘λ©΄μμ include μ§μμ΄μ μ μ¬νλ€. νμ§λ§ include μ§μμ΄λ ν΄λΉ νμΌμ ν¬ν¨μν¨ ν μ»΄νμΌνλ κ²μ λΉν΄, include μ‘μ μ μ€νμμ μμ ν΄λΉ νμΌμ νΈμΆνμ¬ κ·Έ κ²°κ³Όλ₯Ό ν¬ν¨νλ€λ μ μμ μ°¨μ΄κ° μλ€. include μ‘μ μ ν¬ν¨λ νμΌλ€μ κ°κ° νΈλ€λ§νκΈ° λλ¬Έμ μ±λ₯μμ λ¬Έμ λ₯Ό μΌκΈ°ν μ μμΌλ―λ‘ μ μ νκ² μ¬μ©ν΄μΌ νλ€. μ 리νλ©΄ include μ‘μ μ λμ μΈ νμ΄μ§, include μ§μμ΄λ μ μ μΈ νμ΄μ§λ₯Ό ν¬ν¨μν¬ κ²½μ°μ μ¬μ©νλ κ²μ΄ μ’λ€.
<jsp:include page="ν¬ν¨ν νμΌμ΄λ¦" />
include μ‘μ μ νΉμ§ μ€ νλλ λ³μλ₯Ό μ λ¬ν μ μλ€λ μ μ΄λ€. include μ‘μ μμ JSP νμΌμ ν¬ν¨νκ±°λ ν λ param νκ·Έλ₯Ό μ΄μ©νμ¬ μμ± κ°μ μ λ¬ν μ μλ€. μ λ¬λ 맀κ°λ³μ κ°μ request.getParameter() λ©μλλ₯Ό ν΅ν΄ μ κ·Όν μ μλ€.
2. forward μ‘μ
forward μ‘μ μ include μ‘μ κ³Ό μ μ¬νμ§λ§ νμ¬ νμ΄μ§λ₯Ό μμ ν λ€λ₯Έ νμ΄μ§λ‘ μ νν λ μ¬μ©νλ€. μ¦, include μ‘μ μ λ©μΈ μ€ν νμΌμ΄ λ€λ₯Έ μ²λ¦¬λ₯Ό ν¬ν¨νλ κ°λ μ΄μ§λ§ forward μ‘μ μ νμ΄μ§ μ μ΄κΆμ μμ ν λ겨λ²λ¦°λ€.
<jsp:forward page="ν¬μλ©ν νμΌ_μ΄λ¦"/>
forward μ‘μ λν include μ‘μ μ²λΌ paramμ μ΄μ©νμ¬ κ°μ μ λ¬ν μ μλ€.
<jsp:param name="email" value="servers1@naver.com"/>
3. plugin μ‘μ
plugin μ‘μ μ μΉ λΈλΌμ°μ μμ μλ° νλ¬κ·ΈμΈμ μ¬μ©νμ¬ μλ° μ νλ¦Ώμ΄λ μλ° λΉμ¦ μ»΄ν¬λνΈλ₯Ό μ€νν μ μκ² νλ€. μ΄λ μΉ λΈλΌμ°μ λλΆλΆμ΄ μλ°λ₯Ό νλ¬κ·ΈμΈ ννλ‘ μ§μνλ―λ‘ λΈλΌμ°μ μ λ΄μ₯λ JVMμΌλ‘λ μ€μ μ νλ¦Ώμ μ€νν μ μλ μ μ 보μνλ €κ³ λμ¨ κ°λ μ΄λ€.
useBean μ‘μ
<jsp:useBean id="λ³μ_μ΄λ¦" class="λΉμ¦ ν΄λμ€_μ΄λ¦"/>
<jsp:setProperty name="λ³μ_μ΄λ¦" property="μμ±_μ΄λ¦"/>
<jsp:getProperty name="λ³μ_μ΄λ¦" property="μμ±_μ΄λ¦"/>
useBean μ‘μ μ λΉμ¦ ν΄λμ€λ₯Ό μ¬μ©νκ² λ€λ κ²μ΄κ³ , getPropertyλ λΉμ¦μμ κ°μ κ°μ Έμ¬ λ μ¬μ©νλ©°, setPropertyλ JSPμμ λΉμ¦ κ°μ²΄μ κ°μ μ€μ ν λ μ¬μ©νλ€. setPropertyμ getPropertyλ λΉμ¦ ν΄λμ€μ getter λ©μλλ₯Ό λ΄λΆμ μΌλ‘ νΈμΆνλ€.
μ μΈ,ννμ κ·Έλ¦¬κ³ μ€ν¬λ¦½νΈλ¦Ώ
1. μ μΈ
μ μΈλ¬Έμ μ¬μ©νλ©΄ JSPμμ λ©μλλ λ©€λ²λ³μλ₯Ό μ μΈν μ μμΌλ―λ‘ νλ‘κ·Έλ¨ μμλ₯Ό ꡬννκΈ°μ μμνλ€. νμ§λ§ λ³λμ λΉμ¦ ν΄λμ€λ₯Ό μ¬μ©νλ κ²μ΄ μ’κΈ° λλ¬Έμ μ μΈλ¬Έμ κΆμ₯νμ§ μλλ€.
<%! String str = "test"; %>
2. ννμ
<%= %>λ₯Ό μ¬μ©ν΄μ κ°λ¨ν λ°μ΄ν° μΆλ ₯μ΄λ λ©μλ νΈμΆ λ±μ μ΄μ©νλ€. μ½λ λ§μ§λ§μ μΈλ―Έν΄λ‘ μ μ¬μ©νμ§ μλλ€. ννμμ κ²°κ΅μ out.println()μΌλ‘ λ³νλλ κ²κ³Ό λ§μ°¬κ°μ§μ΄λ―λ‘, μμ ꡬ문μ out.println()μ κ°μ ννλ‘ μ μ§ν΄μΌ νλ€.
<%= "i+2=" +(i+2) %>
3. μ€ν¬λ¦½νΈλ¦Ώ
μ€ν¬λ¦½νΈλ¦Ώμ JSP λ¬Έμ λ΄μ μλ° μ½λλ₯Ό κΈ°μ νλ λΆλΆμ΄λ©° λ³Έλ¬Έ μ΄λ κ³³μμλ μμ λ‘κ² μ¬μ©ν μ μλ€. ν΄λΉ κΈ°λ₯μ JSPμ κ°μ₯ νΉμ§μ μΈ λΆλΆμ΄λ©° JSPλ₯Ό κ°λ ₯νκ² λ§λλ μλλ ₯μ΄λ€. νμ§λ§ JSP λ΄μ κ°κΈμ μ€ν¬λ¦½νΈλ¦Ώμ μ¬μ©νμ§ λ§ κ²μ κΆμ₯νλ€. κ·Έ μ΄μ λ JSP λ΄μ 볡μ‘ν λ‘μ§μ΄ λ€μ΄κ°κ² λλ©΄ μ μ§λ³΄μκ° μ΄λ €μμ§κ³ , νμ μ μ΄λ €μμ΄ λ°λ₯΄κΈ° λλ¬Έμ΄λ€.
JSPμμ μ€ν¬λ¦½νΈλ¦Ώμ λͺ°μλ΄κΈ° μν΄μ EL(νν μΈμ΄), JSTLμ λΉλ‘―ν 컀μ€ν νκ·Έ λΌμ΄λΈλ¬λ¦¬, JSP λΉμ¦ μ¬μ©μ κΆμ₯νλ€.
<%
String str = "test";
for(int i=0; i<10; i++) {
out.println(i);
}
%>
μ£Όμν μ μ μ€νΈλ¦½νΈλ¦Ώ λΆλΆμλ μμ μλ° μ½λλ§ μ¬ μ μλ€. μ¦, HTML μΆλ ₯μ μν΄μλ out κ°μ²΄λ₯Ό μ΄μ©ν println λ©μλλ₯Ό μ΄μ©ν΄μΌ νλ€.