*MVC๊ตฌ์กฐ
- Model : class –DB์์
์ฒ๋ฆฌ
DAO, VO๋ฅผ ์ฌ์ฉํ์ฌ DB์์ ์ํ - View : JSP – ์ ๋ฌด๋ก์ง์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ Action์ด ๋ฐํํ๋ฉด ํ๋ฉด์ ๋ง๋ค๊ณ ์๋ตํ๋ ์ผ
- Controller : Servlet- ์ง์
์ , Action์ ์ฌ์ฉํ์ฌ ์
๋ฌด์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ณ JSP๋ก ์ด๋ํ๋ ์ผ
-Actionํด๋์ค ์์ฑ : Web Parameter์ฒ๋ฆฌ, ๊ด๊ณ์ ์ง์ฒ๋ฆฌ, Viewํ์ด์ง์ค์
-Service(Process)ํด๋์ค์์ฑ : ์ ๋ฌด๋ก์ง ์ฒ๋ฆฌ
Controller(์ง์ ์ ) | Model(DB์์ ์ฐ๋) | view |
Servlet -๋ชจ๋ ์์ฒญ์ ๋ฐ๋ ํ๋์ ์ง์ ์ -ํค๊ฐ ์์ -map์ ์จ์ action์ ์คํ -action ์์์ model๋ก ๊ฐ์ db์ ์ฐ๋ํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์์ process๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ฉด action์์ viewํ์ด์ง๋ช ๊ณผ ์ด๋๋ฐฉ์์ ๋ฃ์ด์ค์ ์ด๋ํจ -์ ์์์๊ฒ ์๋ต๋จ |
์
๋ฌด ๋ก์ง ๊ฒฐ๊ณผ๋ฅผ Action์ด ๋ฐํํ๋ฉด (Scope๊ฐ์ฒด์ ๋ฃ์ผ๋ฉด) (Scope์ด ๊ฐ์ ์ ๋ฌํด์ค) ํ๋ฉด(view page)์ ๋ง๋ค์ด ์๋ต |
|
๋จ์ ํ์ด์ง ์ด๋: DB๊ฐ ์ฐ๋๋์ง ์์ ํ์ด์ง ์ ์์ ์์ฒญ > map์ผ๋ก ๊ฐ์ Action ์คํํด์ ์ฐ์ฐ๋ ์ํ๊ณ ํ์ด์ง ์ด๋ํด์ JSP๊ฐ ์๋ต๋จ |
||
DB์ฌ์ฉ ์์ด ์
๋ฌด๋ง ์ฒ๋ฆฌ: ์ ์์ ์์ฒญ > ์ก์ ์ ํ๊ณ ํ๋ก์ธ์ค๋ฅผ ํ๊ณ ์ฐ์ฐํด์ ๊ฒฐ๊ณผ๋ฅผ ์ก์ ์ด ๋ฐ์์ ์๋ธ๋ฆฟํํ ์ฃผ๊ณ ๋ทฐํ jsp, ์ด๋๋ฐฉ์, ์ฐ์ฐ์ ์ฌ์ฉํ๋ ๊ฐ์ด ๋ค์ด๊ฐ๊ณ jsp๋ก ์๋ต๋จ |
||
DB์ฌ์ฉํ๋ ์
๋ฌด ์์ฒญ > ์ง์ ์ > ๋งต > ํ๋ก์ธ์ค > db์ฐ๊ธฐ ์ํด ๋ชจ๋ธ๋ก ๊ฐ > DB์จ์ ๋์จ ๊ฒฐ๊ณผ(int, VO, LIst<VO>)๋ฅผ ๋ฐ์ ํ๋ก์ธ์ค>์ก์ ์ผ๋ก ๊ฐ์ ์ก์ ์์ ์กฐํํ ๊ฒฐ๊ณผ๋ฅผ ๋ฃ์ด์ฃผ๊ณ servlet์ผ๋ก ์ค๋ฉด ์ด๋ํ ํ์ด์ง, ์ด๋๋ฐฉ์์ ๋ฐ์ jsp๋ก ๊ฐ ๋ค ์๋ต๋จ |
*Model2(MVC2)๋ฐฉ์์ ๊ฐ๋ฐ
- MVCํจํด์ Web์ ์ ์ฉํ ๊ฐ๋ฐ pattern
- Model : ๋ฐ์ดํฐ ์ฒ๋ฆฌ(DB์์ ) - ์ผ๋ฐ class
- View : ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ์์ - JSP
- Controller : ์ ๋ฌด๋ก์ง ์ฒ๋ฆฌ. - Servlet
- ์ฅ์ : ์ ์ง๋ณด์๊ฐ ํฅ์๋จ
(์
๋ฌด์ ๋ฐ๋ผ ํ์ผ์ด ๋ถ๋ฆฌ๋์ด ์์ฑ๋จ)
- ๋จ์ : ํ์ผ์ ๊ฐ์๊ฐ ๋ง์์ง (ํ์ผ๊ด๋ฆฌ๊ฐ ์ด๋ ค์)
๊ฐ ๋๊ธฐ๊ธฐ๊ฐ ๋ถํธํจ
์๋ฌ์ก๊ธฐ๊ฐ ๋ถํธํจ => ์ฐ์ถ๋ฌผ์ ๋ง๋๋ ์๋๊ฐ ๋ค์ ๋๋ฆผ
- ๋๊ท๋ชจ ์์คํ
์ ์ ํฉํ ๊ตฌ์กฐ
(์
๋ฌด๋ณ๋ก ๋๋ ์์
ํ๊ธฐ ์ข์)
*Software์ ์๋ช
์ด ๋๋๋ ๋๋ “๋ ์ด์ ์ ์ง๋ณด์๊ฐ ๋์ง ์์ ๋”
๊ฐ๋ฐ ๋น์ฉ์ด ์ ์ง๋ณด์ ๋น์ฉ๋ณด๋ค ์ ์ ๋
*Model1๋ฐฉ์์ ๊ฐ๋ฐ
-JSP : ํ๋ฉด๊ตฌํ, ๋ฐ์ดํฐ์ฒ๋ฆฌ, ์
๋ฌด๋ก์ง์ฒ๋ฆฌ
-JSP+class :
JSP : ํ๋ฉด๊ตฌํ, ์
๋ฌด๋ก์ง์ฒ๋ฆฌ
class : ๋ฐ์ดํฐ์ฒ๋ฆฌ
์ฅ์ : ํ์ผ ๊ฐ์๊ฐ ์ ์ (ํ์ผ๊ด๋ฆฌ๊ฐ ํธํจ)
๊ฐ ๋๊ธฐ๊ธฐ๊ฐ ํธํจ
์๋ฌ์ก๊ธฐ ํธํจ => ์ฐ์ถ๋ฌผ์ ๋ง๋๋ ์๋๊ฐ ๋น ๋ฆ
๋จ์ : ์ ์ง๋ณด์๊ฐ ์ด๋ ค์
(์
๋ฌด๊ฐ ๋ค๋ฅธ ์์
์ด ํ๋์ JSP์ ์ ์ )
1.Controller
-Servlet์ ๋ชจ๋ ์์ฒญ์ ๋ฐ์์ผ ํจ ( ์ง์ ์ ์ค์ )
๋ชจ๋ ์์ฒญ์ ๋ฐ๊ณ
์์ฒญ์ ์ฒ๋ฆฌํ XxxAction์ ์ฐพ์์ ์คํ
XxxAction์ด ๋ฐํํ๋ ํ์ด์ง๋ก ์ด๋
-DD์ค์
์ด๋ฆ์ด ๋ค๋ฅด๋๋ผ๋ ํ์ฅ์๋ฅผ ๊ฐ๊ฒ ํ๋ฉด ๋ชจ๋ ์์ฒญ์ ๋ฐ์ ์ ์์
<servet>
<servlet-name>๊ฐ์ฒด๋ช
</servlet-name>
<servlet-class>ํจํค์ง๋ช
.ํด๋์ค๋ช
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>๊ฐ์ฒด๋ช
</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2. interface์ java.util.Map ์ฌ์ฉ๋ฒ
*๊ฐ์ฒด ๋คํ์ฑ
-๊ฐ์ ์ด๋ฆ์ ๊ฐ์ฒด๋ฅผ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๋ ๊ฒ
*java.util.Map
-ํค์ ๊ฐ์ ์์ผ๋ก ๋์ด์๋ ๋ฐ์ดํฐ ํ
-ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๊ฒ์
3. ์๋ธ๋ฆฟ์์ JSP ๋ก ํ์ด์ง์ด๋์ ํ ์ ์๋๊ฐ?
forward์ redirect๋ฅผ ์ฌ์ฉํ ํ์ด์ง ์ด๋ //response.sendRedirect(“URL”);
1.์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ค๋ฉด scope๊ฐ์ฒด์ ํ ๋น
request.setAttribute(“์ด๋ฆ”,๊ฐ);
2.์ด๋ํ ํ์ด์ง ์ค์
RequestDispatcher rd=request.getRequestDispatcher(“URI”);
3. ํ์ด์ง ์ด๋
rd.forward(request,response);
ํด๋์ค๋ฅผ Map์ ๋ฃ์ด ์ฌ์ฉ
1.Map์์ฑ
Map map=new HashMap();
2.Map ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ํด๋์ค๋ฅผ ํ ๋น
map.put(“a”,new A());
map.put(“b”,new B());
map.put(“c”,new C());
3.์ฌ์ฉ (Key๋ฅผ ๋ฃ์ด ๊ฐ์ ์ป์)
String key=“a”; // || b || c
//๊ฐ์ฒด๋คํ์ฑ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ค๋ณต์ฝ๋๊ฐ ๋ง์ด ๋ฐ์ํจ
if( “a”.equals(key”) ){
A a=(A)map.get( key );
a.execute();
}
if( “b”.equals(key”) ){
B b=(B)map.get( key );
b.execute();
}
if( “c”.equals(key”) ){
C c=(C)map.get( key );
c.execute();
}
ํด๋์ค๋ฅผ Map์ ๋ฃ์ด ์ฌ์ฉ
1.Map์์ฑ
Map<String,SuperInterface> map=new HashMap<String,SuperInterface>();
2.Map ๊ฐ์ฒด ์์ฑํ์ฌ ํ ๋น
map.put(“a”,new A());
map.put(“b”,new B());
map.put(“c”,new C());
3.์ฌ์ฉ (Key๋ฅผ ๋ฃ์ด ๊ฐ์ ์ป์)
๊ฐ์ฒด ๋คํ์ฑ- ๊ฐ์ ๋ฐ์์ ์ฌ์ฉํ๋ ์ฝ๋๊ฐ ์ค์ด๋ ๋ค
String key=“a”; // ||b||c
SuperInterface si=map.get( key );
// ๊ฐ์ ๊บผ๋ผ ๋ ํค๊ฐ ๋ค์ด๊ฐ๋ฉด ์์์ด ๋์ด,
//์์์ด ๋ถ๋ชจ์ ํ ๋น๋ ๋ค ๋ถ๋ชจ์ ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉด ์์์ ๋ฉ์๋๊ฐ ํธ์ถ๋จ
String value=si.execute(); //override ๋ method๊ฐ ์ต์ฐ์ ์ ์ผ๋ก ํธ์ถ๋จ
*์ผ๋ฐ ํด๋์ค์์ Web Parameter ์ฒ๋ฆฌ
- Servlet์ด๋ JSP๊ฐ ์์ฒญ๋๋ฉด HttpServletRequest ์ธํฐํ์ด์ค๊ฐ ๊ฐ์ฒด๋ฅผ WAS๋ก ๋ถํฐ ํ ๋น ๋ฐ์
Servlet์ด๋ JSP์์ ํด๋์ค๋ฅผ ์์ฑํ๊ณ request๋ response๊ฐ์ฒด๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์ผ๋ฐํด๋์ค์์ ์น ํ๋ผ๋ฉํฐ๋ฅผ ๋ฐ์ ์ ์์
*Servlet
- ๋ชจ๋ ์์ฒญ์ ๋ฐ๊ธฐ ( web.xml ์ค์ )
- ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ Map์ ๊ฐ์ง
- Map์์ Action์ ์ฐพ์
- Action์ method๋ฅผ ํธ์ถ ( ์น ํ๋ผ๋ฉํฐ์ฒ๋ฆฌ, ๊ด๊ณ์ ์ง, ํ์ด์ง ์ด๋๋ฐฉ์ ์ค์ , ์ด๋ํ ํ์ด์ง URL์ค์ )
- Action์์ ์ด๋ํ ํ์ด์ง์, ์ด๋๋ฐฉ์์ ๋ฐ์์์ JSP๋ก ์ด๋
*XxxAction : ๊ฐ์ฒด๋คํ์ฑ์ผ๋ก ๊ตฌํ๋์ด์ผ ์ ๋ฆฌ
- ์น ํ๋ผ๋ฉํฐ ๋ฐ๊ธฐ, ๊ด๊ณ์ ์ง์ํ(session,cookie), ํ์ด์ง์ด๋๋ฐฉ์ค์ , ์ด๋ํ ํ์ด์ง URL์ค์
-XxxService๋ฅผ ์ฌ์ฉ
*XxxService
- ์
๋ฌด๋ก์ง์ ๊ตฌํ, DAO๋จ์ ํด๋์ค๋ฅผ ์ฌ์ฉ
*XxxDAO
-DB์์
์ํ
*XxxVO :
-DB์ ๊ฐ์ ์
๋ ฅํ ์ฉ๋๋ก ์ฌ์ฉ
*XxxDomain :
- ์กฐํ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ ์ฅํ๊ณ ๋ฐํํ ์ฉ๋๋ก ์ฌ์ฉ
'๐ฉโ๐ป ๊ตญ๋น ์์ > Servlet' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Servlet 0426 DD์ ์๋ธ๋ฆฟ ์ค์ Servlet Life Cycle redirect forward ๊ด๊ณ์ ์ง(session, cookie) DD๊ฐ ์ฌ์ฉ(init-param, context-param) (0) | 2023.05.01 |
---|