ゴ
Struts 2 ὖ䗄
ᴀゴ㽕⚍
y Web ᑨ⫼ⱘথሩ
y Model 1 Model 2
y MVC ᗱᛇ
y MVC ᓣⱘӬ
y ᐌ⫼ MVC Ḛᶊঞ݊⡍ᕕ
y Struts 1 ⱘᴀ㒧ᵘঞ݊ᄬⱘ䯂乬
y WebWork ⱘᴀ㒧ᵘ
y Struts 2 ⱘ䍋⑤
y Struts 2 ⱘḚᶊᶊᵘ
y Struts 2 ⱘㅒᑧ
y Struts 2 ⱘࠊ఼㒘ӊ
y Struts 1 Struts 2 ⱘᇍ↨
Struts 1 ᰃܼϪ⬠ϔϾথᏗⱘ MVC Ḛᶊˈᅗ⬅ Craig McClanahan 2001 ᑈথᏗˈ
䆹Ḛᶊϔ㒣ߎˈህᕫࠄњϪ⬠Ϟ Java Web ᓔথ㗙ⱘᢹᡸˈ㒣䖛䭓䖒 6 ᑈᯊ䯈ⱘ䫸⚐ˈStruts
1 Ḛᶊࡴ៤❳ǃ〇ᅮˈᗻ㛑г᳝њᕜདⱘֱ䆕DŽℸˈࠄⳂࠡЎℶˈStruts 1 ձ✊ᰃϪ⬠
ϞՓ⫼᳔ᑓ⊯ⱘ MVC ḚᶊDŽ
ⳂࠡˈѢ Web ⱘ MVC Ḛᶊ䴲ᐌˈথሩгᕜᖿˈ↣䱨ϔ↉ᯊ䯈ህ᳝ϔϾᮄⱘ MVC
ḚᶊথᏗˈ՟བڣ JSFǃTapestry Spring MVC ㄝDŽ䰸њ䖭ѯ᳝ৡⱘ MVC Ḛᶊˈ䖬᳝
ϔѯ䖍㓬ಶ䯳ⱘ MVC Ḛᶊгᕜ᳝׳䡈ᛣНDŽ
ᇍѢӕϮᅲ䰙Փ⫼ MVC Ḛᶊ㗠㿔ˈḚᶊⱘ〇ᅮᗻ߭ᑨ䆹ᰃ᳔ؐᕫ㗗㰥ⱘ䯂乬DŽϔϾ
߮߮䍋ℹⱘḚᶊˈৃ㛑ᴀ䑿ህᄬϔѯ䱤㮣ⱘ䯂乬ˈӮᇚ㞾䑿ⱘ BUG ᓩܹ㞾Ꮕⱘᑨ⫼DŽ
䖭гᰃヨ㗙ϡ㤤ᓔথ㗙㞾Ꮕᅲ⦄ḚᶊⱘDŽ
㱑✊ Struts 2 ো⿄ᰃϔϾܼᮄⱘḚᶊˈԚ䖭ҙҙᰃⳌᇍ Struts 1 㗠㿔DŽStruts 2 Ϣ Struts
1 Ⳍ↨ˈ⹂ᅲ᳝ᕜ䴽ᗻⱘᬍ䖯ˈԚᅗᑊϡᰃᮄথᏗⱘᮄḚᶊˈ㗠ᰃϔϾ䌿䌿᳝ৡ
ⱘḚᶊ˖WebWork
⸔Ϟথሩ䍋ᴹⱘDŽҢᶤ⾡ᑺϞᴹ䆆ˈStrut2 ≵᳝㒻ᡓ Struts 1 ⱘ㸔
㒳ˈ㗠ᰃ㒻ᡓњ WebWork ⱘ㸔㒳DŽ㗙䇈ˈWebWork 㸡⫳ߎњ Struts 2ˈ㗠ϡᰃ Struts 1
㸡⫳њ Struts 2DŽЎ Struts 2 ᰃ WebWork ⱘ㑻ˈ㗠ϡᰃϔϾܼᮄⱘḚᶊˈℸ〇ᅮᗻǃ
Struts 2 ᴗ࿕ᣛüüѢ WebWork Ḍᖗⱘ MVC ᓔথ
ᗻ㛑ㄝᮍ䴶䛑᳝ᕜདⱘֱ䆕˗㗠Ϩᬊњ Struts 1 WebWork ϸ㗙ⱘӬˈℸˈᰃϔ
Ͼ䴲ᐌؐᕫᳳᕙⱘḚᶊDŽ
1.1 MVC ᗱᛇὖ䗄
Ҟˈ៥Ӏ㾕ࠄⱘ㒱䚼ߚᑨ⫼ˈ䛑ᰃѢ B/S˄⌣㾜఼/᳡ࡵ఼˅ᶊᵘⱘˈ݊Ёⱘ᳡
ࡵ఼ህᰃ Web ᳡ࡵ఼DŽৃ㾕ˈWeb ᑨ⫼ᰃⳂࠡᑓ⊯Փ⫼ⱘᑨ⫼ᓣˈ㗠 Struts 2 ᰃϔϾ
᳝ᕜདⱘᅲ⫼Ӌؐⱘ Web MVC ḚᶊDŽҟ㒡 Struts MVC ḚᶊПࠡˈ៥Ӏ佪ܜҟ㒡 Web ᑨ
⫼ⱘথሩ MVC ᗱᛇDŽ
1.1.1 Web ᡔᴃⱘথሩ
䱣ⴔ Internet ᡔᴃⱘᑓ⊯Փ⫼ˈWeb ᡔᴃᏆ㒣ᑓ⊯ᑨ⫼Ѣ Internet ϞˈԚᮽᳳⱘ Web
ᑨ⫼ܼ䚼ᰃ䴭ᗕⱘ HTML 义䴶ˈ⫼Ѣᇚϔѯ᭛ᴀֵᙃ⦄㒭⌣㾜㗙ˈԚ䖭ѯֵᙃᰃᅮݭ
HTML 义䴶䞠ⱘˈ䆹义䴶ϡϢ⫼᠋ѸѦⱘ㛑ˈ≵᳝ࡼᗕᰒ⼎ⱘࡳ㛑DŽ
ᕜ㞾✊ഄˈҎӀᏠᳯ Web ᑨ⫼䞠ᑨ䆹ࣙϔѯ㛑ࡼᗕᠻ㸠ⱘ义䴶ˈ᳔ᮽⱘ CGI˄䗮⫼
㔥݇ষ˅ᡔᴃ⒵䎇њ䆹㽕∖ˈCGI ᡔᴃՓᕫ Web ᑨ⫼ৃҹϢᅶ᠋ッ⌣㾜఼ѸѦˈϡݡ䳔
㽕Փ⫼䴭ᗕⱘ HTML 义䴶DŽCGI ᡔᴃৃҹҢ᭄ᑧ䇏পֵᙃˈᇚ䖭ѯֵᙃ⦄㒭⫼᠋˗䖬
ৃҹ㦋প⫼᠋ⱘ䇋∖খ᭄ˈᑊᇚ䖭ѯখ᭄ֱᄬࠄ᭄ᑧ䞠DŽ
CGI ᡔᴃᓔњࡼᗕ Web ᑨ⫼ⱘᯊҷˈ㒭њ䖭⾡ᡔᴃ᮴䰤ⱘৃ㛑ᗻDŽԚ CGI ᡔᴃᄬ
ᕜ㔎⚍ˈ݊Ё᳔ⱘ㔎⚍ህᰃᓔথࡼᗕ Web ᑨ⫼䲒ᑺ䴲ᐌˈ㗠Ϩᗻ㛑ㄝᮍ䴶г
ᄬ䰤ࠊDŽࠄ 1997 ᑈᯊˈ䱣ⴔ Java 䇁㿔ⱘᑓ⊯Փ⫼ˈServlet ᡔᴃ䖙䗳៤Ўࡼᗕ Web ᑨ⫼
ⱘЏ㽕ᓔথᡔᴃDŽⳌ↨Ӵ㒳ⱘ CGI ᑨ⫼㗠㿔ˈServlet ᳝䞣ⱘӬ˖
y Servlet ᰃѢ Java 䇁㿔߯ᓎⱘˈ㗠 Java 䇁㿔߭ݙᓎњ㒓ᬃᣕˈ䖭ϔ⚍ᦤ
催њࡼᗕ Web ᑨ⫼ⱘᗻ㛑DŽ
y Servlet ᑨ⫼ৃҹܙߚ߽⫼ Java 䇁㿔ⱘӬˈ՟བ JDBC˄Java DataBase Connection˅
ㄝDŽৠᯊˈJava 䇁㿔ᦤկњЄᆠⱘ㉏ᑧˈ䖭ѯ䛑ㅔ࣪њ Servlet ⱘᓔথDŽ
y 䰸ℸПˈServlet 䖤㸠 Web ᳡ࡵ఼Ёˈ⬅ Web ᳡ࡵ఼এ䋳䋷ㅵ⧚ Servlet ⱘᅲ՟
࣪ˈᑊᇍᅶ᠋ッᦤկ㒓ǃ㔥㒰䗮ֵㄝࡳ㛑ˈ䖭䛑ֱ䆕 Servlet ᳝དⱘ〇ᅮᗻ
ᗻ㛑DŽ
Servlet Web ᑨ⫼Ё㹿ᇘ៤ϔϾ URL˄㒳ϔ䌘⑤ᅮԡ˅ˈ䆹 URL ৃҹ㹿ᅶ᠋ッ⌣
㾜఼䇋∖ˈᔧ⫼᠋ᣛᅮ
URL ᇍᑨⱘ Servlet থ䗕䇋∖ᯊˈ䆹䇋∖㹿 Web ᳡ࡵ఼ᬊࠄˈ
䆹 Web ᳡ࡵ఼䋳䋷໘⧚㒓ǃ㔥㒰䗮ֵㄝࡳ㛑ˈ㗠 Servlet ⱘݙᆍ߭އᅮњ᳡ࡵ఼ᇍᅶ
᠋ッⱘડᑨݙᆍDŽ
1.1 ᰒ⼎њ Servlet ⱘડᑨ⌕DŽ
ℷབ 1.1 ᠔ᰒ⼎ⱘˈ⌣㾜఼ Web ᳡ࡵ఼ݙᣛᅮⱘ Servlet থ䗕䇋∖ˈWeb ᳡ࡵ఼
ḍ Servlet ⫳៤ᇍᅶ᠋ッⱘડᑨDŽ
ᅲ䰙Ϟˈ䖭ᰃৢᴹ᠔᳝ⱘࡼᗕ Web 㓪ᡔᴃ᠔Փ⫼ⱘൟˈ䖭⾡ൟ䛑䳔㽕ϔϾࡼᗕ
ⱘᑣˈ㗙ϔϾࡼᗕ义䴶ˈᔧᅶ᠋ッ䆹ࡼᗕᑣࡼᗕ义䴶থ䗕䇋∖ᯊˈWeb ᳡ࡵ఼
ḍ䆹ࡼᗕᑣᴹ⫳៤ᇍᅶ᠋ッⱘડᑨDŽ
2
1 ゴ Struts 2 ὖ䗄
1.1 Servlet ⱘડᑨ⌕
ࠄњ 1998 ᑈˈᖂ䕃থᏗњ ASP 2.0DŽᅗᰃ Windows NT 4 Option Pack ⱘϔ䚼ߚˈЎ
IIS 4.0 ⱘᓣ䰘ӊDŽᅗϢ ASP 1.0 ⱘЏ㽕߿Ѣᅗⱘ䚼㒘ӊᰃৃҹ߱ྟ࣪ⱘˈ䖭ḋˈ
ASP ᑣݙ䚼ⱘ᠔᳝㒘ӊ䛑᳝њ⣀ゟⱘݙᄬぎ䯈ˈᑊৃҹ䖯㸠џࡵ໘⧚DŽᖫⴔ ASP
ᡔᴃᓔྟⳳℷЎࡼᗕ Web 㓪ᡔᴃDŽ
ᔧ ASP ᡔᴃϪ⬠Ϟᑓ⊯⌕㸠ᯊˈҎӀᕜᖿᛳফࠄ䖭⾡ㅔⱘᡔᴃⱘ儙˖ASP Փ
⫼ VBScript Ў㛮ᴀ䇁㿔ˈᅗⱘ䇁⊩ㅔǃᓔথᬜ⥛䴲ᐌ催DŽ㗠ϨˈϪ⬠ϞᏆ㒣᳝њ䴲ᐌ
ⱘ VB ᑣˈ䖭ѯ VB ᑣৃҹᕜ䕏ᯧഄ䖛⏵៤ ASP ᑣüüℸˈASP ᡔᴃ偀
Ϟ៤Ўᑨ⫼᳔ᑓ⊯ⱘࡼᗕ Web ᓔথᡔᴃDŽ
䱣ৢˈ⬅ Sun ᏺ乚ⱘ Java 䰉㧹ˈゟথᏗњ JSP ޚˈҢᶤ⾡ᑺϞᴹⳟˈJSP ᰃ Java
䰉㧹Ўњᇍᡫ ASP ߎⱘϔ⾡ࡼᗕ Web 㓪ᡔᴃDŽ
ASP JSP Ңৡ⿄ϞབℸⳌԐˈԚᅗӀⱘ䖤㸠ᴎࠊᄬϔѯᏂ߿ˈ䖭Џ㽕ᰃЎ
VBScript ᰃϔ⾡㛮ᴀ䇁㿔ˈ᮴䳔㓪䆥ˈ㗠 JSP Փ⫼ Java Ў㛮ᴀ䇁হüüԚ Java Ңᴹህ
ϡᰃ㾷䞞ൟⱘ㛮ᴀ䇁㿔ˈℸ JSP 义䴶ᑊϡ㛑ゟᠻ㸠DŽℸˈJSP ᖙ乏㓪䆥៤ Servletˈ
䖭ህᰃ䇈˖JSP ⱘᅲ䋼䖬ᰃ ServletDŽϡ䖛ˈкݭ JSP ↨кݭ Servlet ㅔᕫDŽ
JSP ⱘ䖤㸠ᴎ⧚བ 1.2 ᠔⼎DŽ
1.2 JSP ⱘ䖤㸠ᴎ⧚
ᇍ↨ 1.1 1.2ˈথ⦄ϡ䆎ᰃ Servlet ࡼᗕ Web ᡔᴃˈ䖬ᰃ JSP ࡼᗕ Web ᡔᴃˈᅗ
Ӏⱘᅲ䋼ᅠܼϔḋDŽৃҹ䖭ḋ⧚㾷˖JSP ᰃϔ⾡ㅔⱘ Servlet ᡔᴃˈ䖭гᰃ JSP ᡔᴃߎ
⦄ⱘᛣНüüЎϔϾ ASP ᇍᡫⱘᡔᴃˈㅔህᰃ JSP ⱘ᳔ӬDŽ
䱣ⴔᅲ䰙 Web ᑨ⫼ⱘՓ⫼䍞ᴹ䍞ᑓ⊯ˈWeb ᑨ⫼ⱘ㾘г䍞ᴹ䍞ˈᓔথҎথ⦄ࡼ
ᗕ Web ᑨ⫼ⱘ㓈ᡸ៤ᴀ䍞ᴹ䍞ˈՓা䳔㽕ׂᬍ䆹义䴶ⱘϔϾㅔᣝ䪂᭛ᴀˈ㗙ϔ↉
䴭ᗕⱘ᭛ᴀݙᆍˈгϡᕫϡᠧᓔ⏋ᴖⱘࡼᗕ㛮ᴀⱘ义䴶⑤᭛ӊ䖯㸠ׂᬍüü䖭ᰃϔ⾡ᕜ
ⱘ亢䰽ˈᅠܼ᳝ৃ㛑ᓩܹᮄⱘ䫭䇃DŽ
3
Struts 2 ᴗ࿕ᣛüüѢ WebWork Ḍᖗⱘ MVC ᓔথ
䖭ϾᯊˈҎӀᛣ䆚ࠄ˖Փ⫼㒃ⱘ ASPˈ 㗙 JSP 义䴶ܙᔧ䖛㾦㡆ᰃⳌᔧ༅䋹
ⱘ䗝ᢽˈ䖭ᇍѢৢᳳⱘ㓈ᡸⳌᔧϡ߽DŽ᜶᜶ഄᓔথҎᓔྟ Web ᓔথЁՓ⫼ MVC
ᓣDŽ
䱣ৢህᰃ Java 䰉㧹থᏗњϔ༫ᅠᭈⱘӕϮᓔথ㾘㣗˖J2EE˄⦄Ꮖ㒣ৡЎ Java EE˅ˈ
㋻䎳ⴔᖂ䕃гথᏗњ ASP.NET ᡔᴃˈᅗӀ䛑䞛⫼ϔ⾡Ӭ⾔ⱘߚሖᗱᛇˈ㾷އ Web ᑨ
⫼㓈ᡸೄ䲒ⱘ䯂乬DŽ
ࡼᗕ Web 㓪ᡔᴃ㟈᳝བ 1.3 ᠔⼎ⱘ䏃㒓DŽ
1.1.2 Model 1 Model 2
ᇍѢ Java 䰉㧹ⱘࡼᗕ Web 㓪ᡔᴃ㗠㿔ˈ߭㒣њ᠔䇧ⱘ Model 1 Model 2 ᯊҷDŽ
1.3 ࡼᗕ Web 㓪ᡔᴃⱘথሩ
᠔䇧 Model 1 ህᰃ JSP 㸠݊䘧ⱘᯊҷˈ Model 1 ᓣϟˈᭈϾ Web ᑨ⫼Тܼ䚼
⬅ JSP 义䴶㒘៤ˈJSP 义䴶ᬊ໘⧚ᅶ᠋ッ䇋∖ˈᇍ䇋∖໘⧚ৢⳈخߎડᑨDŽ⫼ᇥ䞣ⱘ
JavaBean ᴹ໘⧚᭄ᑧ䖲ǃ᭄ᑧ䆓䯂ㄝ᪡DŽ
1.4 ᰒ⼎њ Model 1 ⱘᑣ⌕DŽ
Model 1 ᓣⱘᅲ⦄↨䕗ㅔˈ䗖⫼Ѣᖿ䗳ᓔথᇣ㾘乍ⳂDŽԚҢᎹ࣪ⱘ㾦ᑺⳟˈ
ᅗⱘሔ䰤ᗻ䴲ᐌᯢᰒ˖JSP 义䴶䑿ݐ View Controller ϸ⾡㾦㡆ˈᇚࠊ䘏䕥㸼⦄䘏䕥
⏋ᴖϔ䍋ˈҢ㗠ᇐ㟈ҷⷕⱘ䞡⫼ᗻ䴲ᐌԢˈࡴњᑨ⫼ⱘᠽሩᗻ㓈ᡸⱘ䲒ᑺDŽ
ᮽᳳ᳝䞣 ASP JSP ᡔᴃᓔথߎᴹⱘ Web ᑨ⫼ˈ䖭ѯ Web ᑨ⫼䛑䞛⫼њ Model 1
ᶊᵘDŽ
Model 2 Ꮖ㒣ᰃѢ MVC ᶊᵘⱘ䆒䅵ᓣDŽ Model 2 ᶊᵘЁˈServlet Ўࠡッࠊ
఼ˈ䋳䋷ᬊᅶ᠋ッথ䗕ⱘ䇋∖ˈ Servlet Ёাࣙࠊ䘏䕥ㅔⱘࠡッ໘⧚˗✊ৢˈ
䇗⫼ৢッ JavaBean ᴹᅠ៤ᅲ䰙ⱘ䘏䕥໘⧚˗᳔ৢˈ䕀থࠄⳌᑨⱘ JSP 义䴶໘⧚ᰒ⼎䘏䕥DŽ
݊ԧⱘᅲ⦄ᮍᓣབ 1.5 ᠔⼎DŽ
4
评论1
最新资源