λͺ©μ°¨
1. 2023.12.18(μ)
β β β JSP μ‘μ νκ·Έ(JSP Action Tag) β β β
β κ°μ
JSP μ‘μ
νκ·Έλ ν΄λΌμ΄μΈνΈ νΉμ μλ²μ μ΄λ€ λμμ μννλλ‘ λͺ
λ Ήμ λ΄λ¦¬λ νκ·Έλ‘
JSP νμ΄μ§ μμμ μλ° λΉμ¦λ₯Ό μ¬μ©ν μ μλλ‘ νλ μ‘μ
νκ·Έμ νμ΄μ§λ₯Ό νμ©ν μ μλλ‘ νλ μ‘μ
νκ·Έλ‘ λλ μ μλ€.
- JSP λΉκ³Ό κ΄λ ¨λ μ‘μ νκ·Έ
`<jsp:useBean>`, `<jsp:setProperty>`, `<jps:getProperty>`
- JSP νμ΄μ§ λͺ¨λκ³Ό μμ²νλ¦ μ²λ¦¬λ₯Ό μν μ‘μ
νκ·Έ
`<jsp:include>`, `<jsp:forward>`, `<jsp:param>` λ±
β νμ λ° κ΅¬μ‘°
`γ<jsp:μ‘μ νκ·Έ μμ±="κ°"> νκ·Έμ λ€μ΄μλ λ΄μ©</jsp:μ‘μ νκ·Έ>γ`
`γ<jsp:μ‘μ νκ·Έ μμ±="κ°">γ` <- νκ·Έμ λ€μ΄μλ λ΄μ©μ΄ μμ κ²½μ°
β» μ€μ½ν(Scope)
JSP μ‘μ
νκ·Έλ₯Ό ν΅ν΄ μμ±λ κ°μ²΄λ κ·Έ κ°μ²΄κ° μ¬μ©λ μ μλ μ€μ½ν νΉμ λΌμ΄νμ¬μ΄ν΄(Life Cycle : μλͺ
μ£ΌκΈ°) μμ±μ κ°λλ°, μ΄κ²μ μμ±λ κ°μ²΄μ λ νΌλ°μ€κ° μ΄λμμ μ¬μ©λ μ μκ³ , μΈμ μμ λ κ²μΈμ§λ₯Ό κΈ°μ νλ€.
- page
μμ±λ κ°μ²΄λ λ¨μΌ ν΄λΌμ΄μΈνΈμ μμ²μ μν΄ μμ±λ νμ΄μ§ λ΄μμ μ κ·Όνμ¬ μ¬μ©λ μ μλ€.
μμ±λ κ°μ²΄λ μ€μ§μ μΌλ‘ pageContext μ μ μ₯λλ€.
- request
μμ±λ κ°μ²΄λ λ¨μΌ ν΄λΌμ΄μΈνΈμ μμ²μ΄ μ²λ¦¬λλ λμμ μ κ·Όνμ¬ μ¬μ©λ μ μλ€.
requestκ° page μ λ€λ₯Έ μ μ `request` μμλ `forward` λ `include` λ₯Ό μ¬μ©ν΄μ
λ€λ₯Έ νμ΄μ§λ‘ μ μ΄κ° μ΄λλλ κ²½μ°μλ κ°μ²΄μ μ κ·Όνμ¬ μ¬μ©ν μ μλ€.
μμ±λ κ°μ²΄λ μ€μ§μ μΌλ‘ HttpServletRequest μ μ μ₯λλ€.
- session
μμ±λ κ°μ²΄λ μ¬μ©μμ μΈμ
μ΄ μ μ§λλ μ΄λ κ³³μμλ μ κ·Όνμ¬ μ¬μ©λ μ μλ€.
μμ±λ κ°μ²΄λ μ€μ§μ μΌλ‘ HttpSessionμ μ μ₯λλ€.
- application
μμ±λ κ°μ²΄λ μΉ μμ©νλ‘κ·Έλ¨μ λΌμ΄ν μ¬μ΄ν΄ λμμ μΉ μμ©νλ‘κ·Έλ¨μ μμλ μμμ Servlet κ³Ό JSP μμ μ κ·Όνμ¬ μ¬μ©λ μ μλ€.
μμ±λ κ°μ²΄λ μ€μ§μ μΌλ‘ ServletContext μ μ μ₯λλ€.
β <jsp:param>
<jsp:param> νκ·Έλ μμ²ν νμ΄μ§λ‘ μ μ€λ₯Ό μ λ¬ν λ μ¬μ©νλ νκ·Έλ‘ νμ¬ νμ΄μ§μμ μμ²ν νμ΄μ§λ‘ μΈμ(parameter)μ μΈμκ°(value) ννλ‘ λ겨μ€λ€.
<jsp:param name="paramName" value="var" />
β» μ΄ νκ·Έλ λ¨λ
μΌλ‘ μ¬μ©νμ§ λͺ»νκ³
<jsp:inclue> λ <jsp:forward> νκ·Έμ λ΄λΆμ κΈ°μ νμ¬ μ¬μ©νλ€.
- name μμ±
ν¬ν¨λλ JSP νμ΄μ§μ μ λ¬ν νλΌλ―Έν°μ μ΄λ¦μ νμ.
- value μμ±
μ λ¬ν νλΌλ―Έν° κ°μ νμ. μ΄λ, value μμ± κ°μΌλ‘ ννμμ μ¬μ©νλ κ²λ κ°λ₯νλ€.
β <jsp:forward>
<jsp:forward> νκ·Έλ νμ¬ λ¨Έλ¬Όκ³ μλ JSP νμ΄μ§μμ URLλ‘ μ§μ ν νΉμ ν νμ΄μ§λ‘ λμ΄κ° λ μ¬μ©νλ νκ·Έλ‘
νμ¬ νμ΄μ§μμ 쑰건μ λ°λΌ μλ‘ λ€λ₯Έ νμ΄μ§λ₯Ό νΈμΆν κ²½μ° μ¬μ©λλ€. μ΄ νκ·Έμ νΉμ΄ν μ μ νμ¬ νμ΄μ§μ λν URLλ§ λνλ λΏ μ μ΄κ° λμ΄κ° νΉμ νμ΄μ§μ URL μ΄ μ ν λνλμ§ μλλ€λ μ μ΄λ€.
ν΄λΌμ΄μΈνΈμ μΉ λΈλΌμ°μ μ£Όμλμ 보μ΄λ URL κ³Ό μ€μ λΈλΌμ°μ μμ μ½μ΄λ€μ΄κ³ μλ λ¬Έμκ° μλ‘ λ€λ₯΄κΈ° λλ¬Έμ
μ¬μ©μλ μ΄λ¬ν μν©μ΄ λ²μ΄μ§κ³ μλ μ§λ₯Ό κ°μ§ν μ μλ€.
κ·Έλ¦¬κ³ μ μ΄κ° λμ΄κ° λ request λ΄λΆ κ°μ²΄λ κ°μ΄ μ λ¬λλ€.
<jsp:formard page="μ΄λν νμ΄μ§μ΄λ¦" />
- page μμ±
μ΄λν νμ΄μ§μ μ΄λ¦μ κΈ°μ νλ©° page μμ±μ κ°μΈ μ΄λν νμ΄μ§μ μ΄λ¦μ μΉ μ΄ν리μΌμ΄μ
μλ κ²½λ‘λ, μΉ μ΄ν리μΌμ΄μ
μ λ κ²½λ‘λ‘ μ§μ ν μ μκ³ , ννμμ μ¬μ©ν μλ μλ€.
- <jsp:forward> μ‘μ
νκ·Έμμ <jsp:param> νκ·Έλ‘ νλ‘κ·Έλ¨μ μ μ΄κ° μ΄λν νμ΄μ§μ νλΌλ―Έν° κ°μ μ λ¬ν μ μμΌλ©°
μ λ¬λ°μ κ°μ γrequest.getParameter("νλΌλ―Έν°μ΄λ¦")γμΌλ‘ λ겨λ°λλ€.
<jsp:forward page="μ΄λν νμ΄μ§μ΄λ¦">
<jsp:param naem="paramName1" value="var1">
<jsp:param naem="paramName2" value="var2">
</jsp:forward page="<%=url%>" />
- λ¨μν page μμ±μ μ§μ λ νμ΄μ§λ‘ μ΄λνλλ° κ·ΈμΉλ κ²μ΄ μλλΌ μ΄λν νμ΄μ§μ μμ μ μ 보λ₯Ό νλΌλ―Έν° νμμΌλ‘ μ λ¬ν μ μλ κ²μ΄λ€.
<jsp:forward page="view.jsp" />
<%
String url = "/To.jsp";
%>
</jsp:forward>
β <jsp:include>
<jsp:includa> νκ·Έλ μΉνμ΄μ§λ₯Ό 곡ν΅λ νμ΄μ§λ₯Ό λͺ¨λννμ¬ λ μ΄μμμ ꡬμ±(μμ±)ν μ μλλ‘ μ§μν νκ·Έμ΄λ€.
include λλ ν°λΈ(<@ include>)μ ν¨κ»
λ€λ₯Έ νμ΄μ§λ₯Ό νμ¬ νμ΄μ§μ ν¬ν¨μν¬ μ μλ κΈ°λ₯μ κ°μ§ νκ·Έμ΄λ€.
λ¨, include λλ ν°λΈλ λ¨μνκ² μμ€μ λ΄μ©μ΄ ν
μ€νΈλ‘ ν¬ν¨λμ§λ§ <jsp:include> μ‘μ
νκ·Έλ₯Ό ν¬ν¨μν¬ νμ΄μ§μ μ²λ¦¬ κ²°κ³Όλ₯Ό ν¬ν¨μν¨λ€λ μ μμ μ°¨μ΄λ₯Ό κ°λλ€.
ν¬ν¨λλ νμ΄μ§ html, jsp, Servlet νμ΄μ§ λͺ¨λ κ°λ₯νλ©° include λλ ν°λΈλ μ£Όλ‘ μ‘°κ° μ½λλ₯Ό μ½μ
ν λ μ¬μ©λκ³ , <jsp:include>μ‘μ
νκ·Έλ νμ΄μ§λ₯Ό λͺ¨λν ν λ μ¬μ©λλ€.
μ¦, ν
νλ¦Ώ νμ΄μ§λ₯Ό μμ±ν λ μ£Όλ‘ μ¬μ©λλ€λ κ²μ΄λ€.λν, <jsp:include>μ‘μ
νκ·Έ κ°μ request κΈ°λ³Έ κ°μ²΄λ₯Ό 곡μ νλ€.
<jsp:include page="url" flush="false" />
- page μμ±
νμ¬ νμ΄μ§μ κ²°κ³Όκ° ν¬ν¨λ λμμ νμ΄μ§μ μ΄λ¦
- flush μμ±
μΆλ ₯ λ²νΌμ νλ¬μ μ 무
ν¬ν¨λ νμ΄μ§λ‘ μ΄λν λ νμ¬ νμ΄μ§κ° μ§κΈκΉμ§ μΆλ ₯ λ²νΌμ μ μ₯ν κ²°κ³Όλ₯Ό μ΄λ»κ² μ²λ¦¬ν μ§λ₯Ό κ²°μ νλ€.
flush μμ±μ κ°μ falseλ‘ μ€μ νλ κ²μ΄ μΌλ°μ μ΄λ€.
flush μμ±μ κ°μ trueλ‘ μ§μ ν κ²½μ° μΌλ¨ μΆλ ₯ λ²νΌμ λ΄μ©μ μΉ λΈλΌμ°μ λ‘ μ μ‘νκ² λλλ°
μ΄ λ, ν€λ μ 보λ ν¨κ» μ μ‘λλ€. ν΄λ μ 보κ°μΌλ¨ μΉ λΈλΌμ°μ λ‘ μ μ‘λκ³ λλ©΄ μ΄ν ν€λ μ 보λ₯Ό μΆκ°νλλΌλ κ²°κ³ κ° λ°μλμ§ μλλ€.
<jsp:include page="url" flush="false">
<jsp:param naem="paramName1" value="var1">
<jsp:param naem="paramName2" value="var2">
</jsp:include>
β» μλ° λΉμ¦(Java Bean)
JSP νμ΄μ§μ νλ©΄ μΆλ ₯ λΆλΆκ³Ό λ‘μ§λ€μ΄ μμ¬ μλ ννλ‘ μμ±ν κ²½μ° JSP νμ΄μ§λ₯Ό μ΄ν΄νκΈ° μ΄λ ΅κ³ λμμ΄λμ νμ
λ μ΄λ €μ μ§λ€.
λν, JSP νμ΄μ§μ νλ©΄ μΆλ ₯ λΆλΆκ³Ό λ‘μ§λ€μ΄ νΌμ¬ν ννμ μ½λλ μ¬μ¬μ©μ νλ κ²λ μ΄λ €μμ§κ² λλ€.
JSPμμλ μλ°λ‘ μμ±ν ν΄λμ€ μ€μ μλ°λΉμ¦ ꡬμ½μ λ§κ² μμ±λ ν΄λμ€λ₯Ό JSP μμ μ¬μ© κ°λ₯νκ² νμμΌλ©°,
μ΄λ₯Ό ν΅ν΄ ν리μ ν
μ΄μ
(μΉ λμμ΄λ μΈ‘)λΆλΆκ³Ό λΉμ¦λμ€ λ‘μ§(κ°λ°μ μΈ‘)μ μ²λ¦¬νλ λΆλΆμ λΆλ¦¬νμ¬ μμ±ν μ μλ€.
μ΄λ κ² ν¨μΌλ‘μ¨ μΉμ λ΄μ©μΌλ‘λΆν° μΉμ νν λΆλΆμ λΆλ¦¬νκ² λκ³ λμ μΈ μΉ νμ΄μ§ μ μμ μν κ°λ°κ³Ό κ΄λ¦¬μ μμ΄ λͺ
νν λΆλ¦¬κ° κ°λ₯νλ€.
λν, λμΌ κΈ°λ₯μ΄ νμ΄μ§ ꡬμ±μ΄ λ¬λΌμ λ°λ³΅μ μΌλ‘ μ¬μ© λλ κ²½μ° μΉ νμ΄μ§λ₯Ό ν¨μ¨μ μΌλ‘ μμ±, μμ νλ €λ©΄ λ°λ³΅μ μΌλ‘ μ¬μ©λλ μ½λλ₯Ό μ¬μ¬μ©ν μ μμ΄μΌ νλ€.
λΉμ μ΄μ κ°μ ν¨μ¨μ μΈ μ½λ© μμ
μ κ°λ₯νκ² λλ€.
νμ¬ κ°λ°λμκ±°λ κ°λ°μ€μΈ(μμ
μ€μΈ) νλ‘κ·Έλ¨λ€μ λͺ¨λ MVC κΈ°λ²μ μ ν΄ κ°λ°λκ³ μλ€.
MVC κΈ°λ²μ νλ‘κ·Έλ¨μ λͺ¨λΈ(Model), λ·°(View), 컨νΈλ‘€λ¬(Controller)λ‘ λλμ΄ κ°λ°μ νλλ°...
Model μ λ‘μ§μ κ°μ§κ³ μλ λΆλΆμΌλ‘ DBμ μ°λνλ λΆλΆμ΄κ³
View λ μ¬μ©μμκ² μ 곡νλ νλ©΄μΌλ‘ UI(User Interface)μ ν΄λΉνλ©°,
Controller λ View μ Model μ¬μ΄μμ νλ¦μ μ μ΄νλ κ°λ
μ΄λ€.
JAP νμ΄μ§ MVC μμ View μ ν΄λΉνκ³ , λ°λ‘ μ΄ View λ₯Ό λͺ¨λν νλ κ²μ΄ ν
νλ¦Ώ νμ΄μ§μ΄λ©°, μλ° λΉμ¦λ Modelμ ν΄λΉνλ€κ³ λ³Ό μ μλ€.
β <jsp:useBean>
<jsp:useBean> μ‘μ
νκ·Έλ μλ°κ°μ²΄λ₯Ό μμ±νκ±°λ κΈ°μ‘΄μ λ§λ€μ΄μ Έ μλ κ°μ²΄λ₯Ό λ°ννλ€.
<jsp:useBean id="name" scope="page|request|sesseion|application" typeSpec />
- id μμ±
κ°μ²΄ μΈμ€ν΄μ€λ₯΄ μλ³νλ μ΄λ¦μΌλ‘ λμλ¬Έμλ₯Ό μ격νκ² κ΅¬λΆνλ€.
ν λ² μμ±λ Bean μ΄ μλ©Έν λ κΉμ§λ κ°μ id λ₯Ό μ€λ³΅ν΄μ μ¬μ©ν μ μλ€.
- scope μμ±
κ°μ²΄ μ°Έμ‘° λ²μλ‘ κΈ°λ³Έκ°(default)μ page μ΄λ€.
·page
κ°μ²΄ μ°Έμ‘°λ service() νΈμΆμ΄ μ’ λ£λ λ μλ©Έ.
·request
HttpsevletRequest κ°μ²΄κ° μλ©Έλμ§ μλ ν μ‘΄μ¬νλ©°,컨ν
μ΄λμ μν΄ μμ±λ μλΈλ¦Ώμ HttpServletRequest μ setAttribute() λ©μλλ₯Ό μ΄μ©νμ¬ κ°μ²΄λ₯Ό HttpServletRequest μ λ°μΈλ© μν¨λ€.
·sesstion
κ°μ²΄λ ν΄λΌμ΄μΈνΈμ μμ²κ³Ό ꡬλ³λλ©°, session μ΄ μ΄μμλ λμμ μ‘΄μ¬νλ©°, 컨ν
μ΄λμ μν΄ μμ±λ μλΈλ¦Ώμ HttpSession μ putBalue(String key,Object value)λ©μλλ₯Ό μ΄μ©νμ¬ κ°μ²΄λ₯Ό HttpSession μ λ°μΈλ© μν¨λ€.
·application
κ°μ₯ μλͺ
(μλͺ
μ£ΌκΈ°)μ΄ κΈΈλ€. SevletContext μ setAttribute()λ₯Ό ν΅ν΄ κ°μ²΄λ₯Ό SevletContext μ λ°μΈλ©μν¨λ€.
- typeSpec μμ±
class="class_name" |
class="class_name" type="type_name"|
type="type_name" class="class_name" |
beanName="bean_name" type="type_name" |
tpe="type_name" beanName="bean_name" |
type="type_name"
· class
μμ ν ννμ ν΄λμ€ μ΄λ¦μΌλ‘ beanName μ΄ μ μλμ΄ μμ§ μμ μν©μ΄λΌλ©΄ λ°λμ μ μν΄μΌ νλ€.
· beanName
java.beans.Beans ν΄λμ€μ instantiate() λ©μλμ γ
μ©ν vean μ΄λ¦μΌλ‘ type κ³Ό beanName μ μ§μ ν κ²½μ°μλ classλ₯Ό μλ΅ν μ μλ€.
μ£Όλ‘ class μΈμλ₯Ό μ°μ§ μμ κ²½μ° μ¬μ©νλ€. λ΄λΆμ μΌλ‘ 컨ν
μ΄λλ id μ scope λ₯Ό μ΄γ
γ
ν΄μ κ°μ²΄λ₯Ό μ°Ύλλ€.
μ΄ κ³Όμ μμ λ§μ½ μ°Ύμ§ λͺ»ν κ²½μ° νμ¬ ν΄λμ€ λ‘λλ‘ instantiate() λ©μλλ₯Ό νΈμΆνλλ°, μ΄λ bena μ μ΄λ¦μ μΈμλ‘ μ λ¬νλ€. μ΄ μΈμ€ν΄μ€μ μμ±μ΄ μ€ν¨νκ² λλ©΄ μμΈκ° λ°μνλ€.
· typeν΄λμ€μ ν(Type)μ μ§μ νλ, μλ΅ κ°λ₯ν νΉμ±μ΄λ€.
κ°μ²΄κ° μ΄ νΉμ±μΌλ‘ μ§μ λ ν(type)μ΄ μλ κ²½μ° ClassCastException μμΈκ° λ°μνκ² λλ€.
<jsp:useBean id="name" scope="page" typeSpec>
<jsp:setProperty name="bean_name" prop_expr />
<%
// μ€ν¬λ¦½λ¦Ώμ μ΄μ©νμ¬ λ€λ₯Έ μμ± κ°μ νΈμΆνλ κΈ°λ₯μ κ°μ§ ν¨μλ₯Ό νΈμΆν μ μλ€.
%>
</jsp:useBean>
β <jsp:setProperty>
<jsp:setProperty> μ‘μ
νκ·Έλ μλ° λΉμ μμ± κ°μ ν λΉνλ€. name μμ±μ κΈ°μ λ μ΄λ¦μ ν΄λΉνλ bean ν΄λμ€λ <jsp:Bean> μ‘μ
νκ·Έλ₯Ό μ΄μ©ν΄μ μ΄ μ‘μ
μ΄ λνλκΈ° μ μ 미리 μ μλμ΄μΌ νλ€.
<jsp:setProperty name="bean_name" prop_expr />
- name μμ±
<jsp:userBean> μ‘μ
νκ·Έμ μν΄ μ μλ bean μΈμ€ν΄μ€ μ΄λ¦
- prop_expr
property="*" |
property="property_name" |
property="property_name" param="parameter_name" |
property="property_name" value="parameter_value" |
· property
κ°μ μ€μ νκ³ μ νλ bean μμμ μ΄λ¦μΌλ‘ γ"*"γμΌλ‘ μ€μ νλ©΄ ServeletRequest μμ λͺ¨λ μΈμλ€ μ€ bean μμ±κ³Ό λ°μ΄ν°νμ
μ΄ μΌμΉνλ κ²μ μ°Ύμμ κ°κ°μ μμ±λ€μ κ°κ°μ μΈμλ€μ κ°μΌλ‘ μ€μ νλ€.
κ°μ΄ γ""γμΈ κ²½μ° μμ±μ λ³νμ§ μλλ€.
· param
bean μμ±μ μ€μ νκ³ μ νλ κ°μ νλΌλ―Έν°μμ μ§μ νκ³ μ ν κ²½μ° μ¬μ©νλ€.
· value
bean μμ±μ μ€μ ν κ°μ μ§μ νλ©° νλμ <jsp:setProperty> μ‘μ
νκ·Έκ° param κ³Ό value λ₯Ό λμμ κ°μ§ μ μλ€.
β <jsp:getProperty>
<jsp:getProperty> μ‘μ νκ·Έλ bean μ μμ±κ°μ μ»λλ° μ¬μ©νλ€.
beanμ μμ±κ°μ μ»μ΄ String μΌλ‘ λ³νν λ€μ μΆλ ₯ μ€νΈλ¦ΌμΌλ‘ 보λΈλ€.
<jsp:getProperty name="name" property="property_name">
- name μμ±
μμ±μ μ»κ³ μ νλ beanμ μΈμ€ν΄μ€ μ΄λ¦
- property μμ±
μ»κ³ μ νλ μμ±μ μ΄λ¦
F_WebApp16: JSP μ‘μ νκ·Έ μ€μ΅


γ΄/WebApp16/src/com/test
γ΄γ΄Calc.java
/* =======================
Calc.java
========================== */
package com.test;
public class Calc
{
// μ£Όμ μμ± κ΅¬μ±
private int su1; //-- νΌμ°μ°μ1 (μ μ νν)
private String op; //-- μ°μ°μ (λ¬Έμμ΄ νν)
private int su2; //-- νΌμ°μ°μ2 (μ μ νν)
// μμ±μ μ μ νμ§ μμ(μ¬μ©μ μ μ μμ±μ μμ)
// -> default μμ±μ μλ μ½μ
// getter / setter ꡬμ±
public int getSu1()
{
return su1;
}
public void setSu1(int su1)
{
this.su1 = su1;
}
public String getOp()
{
return op;
}
public void setOp(String op)
{
this.op = op;
}
public int getSu2()
{
return su2;
}
public void setSu2(int su2)
{
this.su2 = su2;
}
// λ©μλ μΆκ°
public String result()
{
String result = "";
int s=0;
if(op != null)
{
if(op.equals("+"))
s = su1 + su2;
else if(op.equals("-"))
s = su1 - su2;
else if(op.equals("*"))
s = su1 * su2;
else if(op.equals("/"))
s = su1 / su2;
result = String.format("%d %s %d = %d", su1, op, su2, s);
}
return result;
}
}
γ΄/WebApp16/WebContent
γ΄γ΄Calc.jsp_JSP μ‘μ νκ·Έ μ€μ΅
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Calc.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<div>
<h1>JSP μ‘μ
νκ·Έ μ€μ΅</h1>
</div>
<div class="layout">
<!-- 첫 λ²μ¬ λ°©λ² -->
<!-- <form action="Calc_ok1.jsp" method="post" name="myForm"> -->
<!-- λ λ²μ¬ λ°©λ² -->
<!-- <form action="Calc_ok2.jsp" method="post" name="myForm"> -->
<!-- μΈ λ²μ¬ λ°©λ² -->
<form action="Calc_ok3.jsp" method="post" name="myForm">
<table class="table">
<tr>
<th>첫 λ²μ§Έ μ μ</th>
<td><input type="text" name="su1" class="txt"></td>
</tr>
<tr>
<th>μ°μ°μ</th>
<td>
<select name="op">
<option value="+">λνκΈ°</option>
<option value="-">λΉΌκΈ°</option>
<option value="*">κ³±νκΈ°</option>
<option value="/">λλκΈ°</option>
</select>
</td>
</tr>
<tr>
<th>λ λ²μ§Έ μ μ</th>
<td><input type="text" name="su2" class="txt"></td>
</tr>
<tr>
<td colspan="2">
<button type="submit" class="btn" style="width: 100%;"> = </button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
γ΄γ΄Calc_ok1.jsp_첫 λ²μ§Έ λ°©λ² μ²λ¦¬κ²°κ³Ό
<%@page import="com.test.Calc"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// μ΄μ νμ΄μ§(Calc.jsp)λ‘ λΆν° λμ΄μ¨ λ°μ΄ν° μμ
// -> su1, su2, op
String strSu1 = request.getParameter("su1");
String strSu2 = request.getParameter("su2");
String op = request.getParameter("op");
int su1, su2;
su1 = su2 = 0;
String str="";
if(strSu1.equals("") || strSu2.equals("") || strSu1==null || strSu2==null)
response.sendRedirect("Calc.jsp");
else{
su1 = Integer.parseInt(strSu1);
su2 = Integer.parseInt(strSu2);
// μλ°μμ μ°λ¦¬κ° μ€κ³ν ν΄λμ€λ₯Ό μ¬μ©νκΈ° μν΄... κ°μ²΄μμ±
Calc ob = new Calc();
//-- μ΄ν΄λ¦½μ€ μλμμ± κΈ°λ₯μ μ¬μ©νμ¬ κ΅¬λ¬Έμ μμ±ν κ²½μ°
// γ@page import="com.test.Calc"γμ΄ κ΅¬λ¬Έλ ν¨κ» μμ±λμ΄ μ²λ¦¬λ¨.
// νΉμ μλμμ± κΈ°λ₯μ μ¬μ©νμ§ μμ κ²½μ°λ
// γ@page import="com.test.Calc"γμ΄μ κ°μ ꡬ문μ μ§μ μμ±ν΄μ
// ν΄λΉ ν΄λμ€λ₯Ό μ¬μ©ν μ μλλ‘ μ²λ¦¬ν΄ μ£Όμ΄μΌ ν¨.
// λλ, μμ± κ΅¬λ¬Έμ μ§μ γcom.test.Calc ob=new com.test.Calc();γ
// μ κ°μ΄ μμ±νλ κ±°λ κ°λ₯ν¨.
ob.setSu1(su1);
ob.setSu2(su2);
ob.setOp(op);
str = ob.result();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Calc_ok1.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<div>
<h1>첫 λ²μ§Έ λ°©λ² μ²λ¦¬κ²°κ³Ό</h1>
</div>
<div class="layout">
<h2><%=str %></h2>
</div>
</body>
</html>
γ΄γ΄Calc_ok2.jsp_λ λ²μ§Έ λ°©λ² μ²λ¦¬κ²°κ³Ό
<%@page import="com.test.Calc"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%/*
// μ΄μ νμ΄μ§(Calc.jsp)λ‘ λΆν° λμ΄μ¨ λ°μ΄ν° μμ
// -> su1, su2, op
String strSu1 = request.getParameter("su1");
String strSu2 = request.getParameter("su2");
String op = request.getParameter("op");
int su1, su2;
su1 = su2 = 0;
String str="";
if(strSu1.equals("") || strSu2.equals("") || strSu1==null || strSu2==null)
response.sendRedirect("Calc.jsp");
else{
su1 = Integer.parseInt(strSu1);
su2 = Integer.parseInt(strSu2);
Calc ob = new Calc();
ob.setSu1(su1);
ob.setSu2(su2);
ob.setOp(op);
str = ob.result();
}
*/
%>
<%
/* String strSu1 = request.getParameter("su1");
int su1 = Integer.parseInt(strSu1); */
%>
<!-- Calc ν΄λμ€μ κ°μ²΄λ₯Ό νμ¬ νμ΄μ§μμ μ¬μ©ν μ μλλ‘ μ§μ -->
<jsp:useBean id="ob" class="com.test.Calc"></jsp:useBean>
<!-- μ΄ κ΅¬λ¬Έμ μ€ν¬λ¦½λ¦Ώ μμμμ
γcom.gets.Calc ob = new com.test.Cals();γ
μ μμ±νμ¬ import ꡬ문μ μλμΌλ‘ μ²λ¦¬ν κ²κ³Ό
λ§μ°¬κ°μ§ ν¨κ³Όλ₯Ό μ μ©νκ² λλ€. -->
<!-- requset.getParameter() λ©μλλ₯Ό ν΅ν΄ λ겨λ°μ(μ λ¬λ°μ) λ°μ΄ν°λ₯Ό
γCalcγ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ λ§λ€μ΄μ§ γobγκ°μ²΄μ λ겨주기 μ ν μμ± μ§μ -->
<%-- <jsp:setProperty property="su1" name="ob" value="<%=su1 %>"/> --%>
<!-- μ΄ κ΅¬λ¬Έμ Calc_ok1.jsp μ γob.setSu1(su1);γκ³Ό κ°μ ꡬ문 -->
<!-- check~!!! -->
<!-- β» μμ± μ΄λ¦κ³Ό λμΌν νλΌλ―Έν°μΈ κ²½μ°
γgetParameter()γλ©μλ μμ΄ λ°λ‘ λ°μ μ μλ€. -->
<!-- ob.su1 = xxx; -->
<jsp:setProperty property="su1" name="ob"/>
<!-- β request.getParameter() μ²λ¦¬ -> λ§€κ°λ³μλ₯Ό μ λ¬νκΈ° μν λ°μ΄ν° μμ μ²λ¦¬ -->
<!-- β‘ Integer.parseInt() μ²λ¦¬ -> λ§€κ°λ³μλ₯Ό μ λ¬νκΈ° μν ν λ³ν μ²λ¦¬ -->
<!-- β’ ob.su1 -> ob.setSu1() νΈμΆ μ²λ¦¬ -->
<!-- ==> μ΅μ’
μ μΌλ‘ ob -> Calc κΈ°λ°μ ob κ°μ²΄μ su1 μμ±μ
μ΄μ νμ΄μ§λ‘λΆν° λκ²Ήλ€μ λ°μ΄ν°λ₯Ό μ μ ν λ°μ΄ν°νμ
(ν)μΌλ‘ μ λ¬ -->
<jsp:setProperty property="su2" name="ob"/>
<jsp:setProperty property="op" name="ob"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Calc_ok2.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<div>
<h1>λ λ²μ§Έ λ°©λ² μ²λ¦¬κ²°κ³Ό</h1>
</div>
<div class="layout">
<%-- <h2><%=str %></h2> --%>
<h2><%=ob.result() %></h2>
</div>
</body>
</html>
γ΄γ΄Calc_ok3.jsp_μΈ λ²μ§Έ λ°©λ² μ²λ¦¬κ²°κ³Ό
<%@page import="com.test.Calc"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%--
<jsp:useBean id="ob" class="com.test.Calc"></jsp:useBean>
<jsp:setProperty property="su1" name="ob"/>
<jsp:setProperty property="su2" name="ob"/>
<jsp:setProperty property="op" name="ob"/>
--%>
<jsp:useBean id="ob" class="com.test.Calc"></jsp:useBean>
<jsp:setProperty property="*" name="ob"/>
<!-- **β»μ£Όμ! javaμ λ³μλͺ
κ³Ό jspμ name μμ±κ°μ΄ κ°μμΌ μ¬μ©κ°λ₯** -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Calc_ok3.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<div>
<h1>μΈ λ²μ§Έ λ°©λ² μ²λ¦¬κ²°κ³Ό</h1>
</div>
<div class="layout">
<%-- <h2><%=str %></h2> --%>
<h2><%=ob.result() %></h2>
</div>
</body>
</html>
F_WebApp17: κ°λ¨ν κΈ°λ³Έ λ°©λͺ λ‘ μμ± μ€μ΅


γ΄/WebApp17/src/com/test
γ΄γ΄GuestDTO.java
/*
GuestDTO.java
*/
package com.test;
public class GuestDTO
{
// μ£Όμ μμ± κ΅¬μ±
private String userName; //-- κ²μλ¬Ό μμ±μ
private String subject; //-- κ²μλ¬Ό μ λͺ©
private String content; //-- κ²μλ¬Ό λ΄μ©
//β» μ¬κΈ°μμ μ¬μ©νλ λ³μλͺ
(μμ±λͺ
)μ μ λκΈμλ μλ¬Έμλ‘ μμ±ν κ² ~!!! check~!!!
// numScore -> getNumscore()/ setNumScore()
// nScore -> getNScore() / setNScore()
// -> getnScore() / setnScore()
// -> getNScore() / setNscore()
// μ κ°μ΄ setter κ° μμ±λͺ
μ λΆλ¬μ€λ κ³Όμ μμ μΈμμ΄ μ΄κΈλλ κ²½μ°κ° λ°μν μ μκΈ° λλ¬Έ
// β» μ¬κΈ°μμ μ¬μ©νλ λ³μλͺ
(μμ±λͺ
)μ HTML μ form νκ·Έμμ name μμ±μΌλ‘ μ§μ νμ¬ μ¬μ©ν κ².
// κ·ΈλμΌ μμ± λ°μ΄ν° μμ λ° μμ± λ§€νμ μ‘μ
νκ·Έλ₯Ό μ¬μ©νμ¬ μ²λ¦¬ν΄ μ€ μ μκΈ° λλ¬Έ.
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getSubject()
{
return subject;
}
public void setSubject(String subject)
{
this.subject = subject;
}
public String getContent()
{
return content;
}
public void setContent(String content)
{
this.content = content;
}
}
γ΄/WebApp17/WebContent
γ΄γ΄Guest_ok.jsp_κ°λ¨ν κΈ°λ³Έ λ°©λͺ λ‘ μμ± μ€μ΅
<%@ page contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="guest" class="com.test.GuestDTO" scope="page"></jsp:useBean>
<jsp:setProperty property="*" name="guest"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Guest_ok.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<div>
<h1>κ°λ¨ν κΈ°λ³Έ λ°©λͺ
λ‘ μμ± μ€μ΅</h1>
<hr />
</div>
<div>
<h2>μμ±λ λ΄μ©</h2>
<!-- <h3>μ΄λ¦: νκΈΈλ</h3>
<h3>μ λͺ©: μ΄μ©κ΅¬μ μ©κ΅¬</h3>
<h3>λ΄μ©: μ΄λ¬μΏ΅ μ λ μΏ΅ κΆμλ κΆμλ </h3> -->
<h3>μ΄λ¦: <%=guest.getUserName() %></h3>
<h3>μ λͺ©: <%=guest.getSubject() %></h3>
<h3>λ΄μ©: <%=guest.getContent().replaceAll("\n","<br>") %></h3>
</div>
</body>
</html>
γ΄γ΄Guest.jsp_κ°λ¨ν κΈ°λ³Έ λ°©λͺ λ‘ μμ± μ€μ΅
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Guest.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<script type="text/javascript">
function formSubmit()
{
//alert("νμΈ");
var uName = document.getElementById("userName");
var uTitle = document.getElementById("subject");
var uCon = document.getElementById("content");
var f = document.myForm;
if(uName.value == "" || uTitle.value == "" || uCon.value == "" ||uName.value == null || uTitle.value == null || uCon.value == null )
{
return;
}
f.submit();
}
</script>
<div>
<h1>κ°λ¨ν κΈ°λ³Έ λ°©λͺ
λ‘ μμ± μ€μ΅</h1>
<hr />
</div>
<div class="layout">
<form action="Guest_ok.jsp" method="post" name="myForm">
<table class="table">
<tr>
<th>μ΄λ¦</th>
<td><input type="text" class="txt" name="userName" id="userName"></td>
</tr>
<tr>
<th>μ λͺ©</th>
<td><input type="text" class="txt" name="subject" id="subject"></td>
</tr>
<tr>
<th>λ΄μ©</th>
<td><textarea cols="30" rows="5" name="content" id="content"></textarea></td>
</tr>
<tr>
<td colspan="2">
<button type="button" class="btn" style="width: 100%;" onclick="formSubmit()">λ°©λͺ
λ‘ μμ±</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
F_WebApp18: λ°μ΄ν° μ λ ₯κ³Ό λ±λ‘ μμ κ²°κ³Ό νμΈ


γ΄/WebApp18/src/com/test
γ΄γ΄FriendDTO.java
package com.test;
public class FriendDTO
{
// μ£Όμ μμ± κ΅¬μ±
private String name, gender; //-- μ΄λ¦, μ±λ³
private int age; //-- λμ΄
//private String checkGruop;
private String[] checkGruop; //-- μ΄μν
//-- μ΄μνμ μ¬λ¬ κ°μ λ°μ΄ν°κ° λμμ μ λ¬λλ―λ‘
//(μ¦, λ€μ€ μ νμ΄ κ°λ₯νλλ‘ κ΅¬μ±νμκΈ° λλ¬Έμ)
//λ°°μ΄λ‘ μ²λ¦¬ν μ μλ€.
// getter / setter
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getGender()
{
return gender;
}
public void setGender(String gender)
{
this.gender = gender;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public String[] getCheckGruop()
{
return checkGruop;
}
public void setCheckGruop(String[] checkGruop)
{
this.checkGruop = checkGruop;
}
public String result()
{
String result = "";
if(checkGruop != null)
{
for(String item: checkGruop)
result += "["+ item + "]";
}
return result;
}
}
γ΄/WebApp18/WebContent
γ΄γ΄Friend_ok.jsp_λ±λ‘ μμ κ²°κ³Ό νμΈ
<%@ page contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="ob" class="com.test.FriendDTO" scope="page"></jsp:useBean>
<jsp:setProperty property="*" name="ob"/>
<!-- λ°λ³΅λ¬Έ νμ(λ€μ€ μ νμΌλ‘ λμ΄μ¨ κ²°κ³Όκ°μ μΆλ ₯νκΈ° μν μ²λ¦¬) -->
<%
String str = "";
if(ob.getCheckGruop() != null)
{
for(String temp: ob.getCheckGruop())
{
str += temp+"";
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Friend_ok</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<div>
<h1>λ±λ‘ μμ κ²°κ³Ό νμΈ</h1>
<hr />
</div>
<ul>
<li>μ΄λ¦: <%=ob.getName() %></li>
<li>λμ΄: <%=ob.getAge() %></li>
<li>μ±λ³: <%=ob.getGender() %></li>
<li>μ΄μν(λ°©λ²1): <%=ob.result() %></li>
<li>μ΄μν(λ°©λ²2): <%
for (String s : ob.getCheckGruop())
{%>
<%=s %>
<%} %>
</li>
<li>μ΄μν(λ°©λ²3): <%=str %></li>
</ul>
</body>
</html>
γ΄γ΄Friend.jsp_λ°μ΄ν° μ λ ₯
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Friend.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<script type="text/javascript">
function sendIt()
{
var f = document.myForm;
if(!f.name.value)
{
alert("μ΄λ¦μ
λ ₯")
f.name.focus();
return;
}
f.submit();
}
</script>
<div>
<h1>λ°μ΄ν° μ
λ ₯</h1>
<hr />
</div>
<!-- com.test.FriendDTO -->
<!-- Friend_ok.jsp -->
<div class="layout">
<form action="Friend_ok.jsp" method="post" name="myForm">
<table class="table">
<tr>
<th>μ΄λ¦(*)</th>
<td><input type="text" class="txt" name="name"></td>
</tr>
<tr>
<th>λμ΄</th>
<td><input type="text" class="txt" name="age"></td>
</tr>
<tr>
<th>μ±λ³</th>
<td>
<label><input type="radio" name="gender" value="λ¨μ">λ¨μ</label>
<label><input type="radio" name="gender" value="μ¬μ" checked>μ¬μ</label>
</td>
</tr>
<tr>
<th>μ΄μν</th>
<td>
<label><input type="checkbox" name="checkGruop" value="μλΉ">μλΉ</label>
<label><input type="checkbox" name="checkGruop" value="μ²μ°ν¬">μ²μ°ν¬</label>
<label><input type="checkbox" name="checkGruop" value="카리λ">카리λ</label>
<label><input type="checkbox" name="checkGruop" value="μ μ°μ±">μ μ°μ±</label>
<label><input type="checkbox" name="checkGruop" value="μ΄λμ±">μ΄λμ±</label>
<label><input type="checkbox" name="checkGruop" value="νμν¬">νμν¬</label>
<label><input type="checkbox" name="checkGruop" value="μ ν΄μΈ">μ ν΄μΈ</label>
<label><input type="checkbox" name="checkGruop" value="μμ§">μμ§</label>
</td>
</tr>
<tr>
<td colspan="2"><button type="button" class="btn" style="width: 100%;" onclick="sendIt()">λ±λ‘</button></td>
</tr>
</table>
</form>
</div>
</body>
</html>
F_WebApp19: μλ¨λ©λ΄, μ’μΈ‘λ©λ΄, λ©μΈνλ©΄, νλ¨λ©λ΄ λ μ΄μμ

γ΄/WebApp19/WebContent
γ΄γ΄Bottom.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
νλ¨ λ©λ΄<br>
<a href="">μ¬μ΄νΈμκ°</a> |
<a href="">μ΄μ©μ½κ΄</a> |
<a href="">λμλ§</a> |
<a href="">μ¬μ΄νΈλ§΅</a> |
</body>
</html>
γ΄γ΄Left.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
μ’μΈ‘ λ©λ΄ <br>
<ul>
<li><a href="">κ²μν</a></li>
<li><a href="">λ°©λͺ
λ‘</a></li>
<li><a href="">μΌμ κ΄λ¦¬</a></li>
</ul>
</body>
</html>
γ΄γ΄Main.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Main.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<!-- include μ‘μ
νκ·Έκ° μμ λ§νΌ μ€μλκ° λμ§ μλ€.(iframe μ¬μ©ν¨) -->
<div class="layout">
<table class="table" border="1" style="width: 400px;">
<tr>
<td colspan="2">
<!-- Top -->
<jsp:include page="Top.jsp"></jsp:include>
</td>
</tr>
<tr style="height: 300px;">
<td>
<!-- Left -->
<jsp:include page="Left.jsp"></jsp:include>
</td>
<td>Main(λ©μΈνλ©΄)</td>
</tr>
<tr>
<td colspan="2">
<!-- Bottom -->
<jsp:include page="Bottom.jsp"></jsp:include>
</td>
</tr>
</table>
</div>
</body>
</html>
γ΄γ΄Top.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
μλ¨ λ©λ΄<br>
<a href="">λ‘κ·ΈμΈ</a> |
<a href="">νμκ°μ
</a> |
<a href="">μ 보νμΈ</a> |
</body>
</html>