精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

深入淺出Java三大框架SSH與MVC的設計模式

開發(fā) 后端
現(xiàn)在許許多多的初學者和程序員,都在趨之若鶩地學習Web開發(fā)的寶典級框架:Struts2,Spring,Hibernate。似乎這些框架成為了一個人是否精通Java,是否會寫J2EE程序的唯一事實標準和找工作的必備基礎。

現(xiàn)在許許多多的初學者和程序員,都在趨之若鶩地學習Web開發(fā)的寶典級框架:Struts2,
Spring,Hibernate。似乎這些框架成為了一個人是否精通Java,是否會寫J2EE程序的***事實標準和找工作的必備基礎。

然而,如果在面試的時候問這些程序員,你們?yōu)槭裁匆獙W習這些框架?這些框架的本質(zhì)到底是什么?似乎很少很少有人能夠給我非常滿意的答復。因為他們都在為了學習而學習,為了工作而學習,而不是在真正去深入了解一個框架。其實所有的人都應該思考這樣的問題:為什么要學習框架?框架到底給我?guī)砹耸裁矗拷酉聛恚覀円缘卿涀鳛橐粋€最簡單的例子,來看看不同的年代,我們是怎么寫Web程序的。

后來,我們放棄了在頁面上寫邏輯。

后來,程序?qū)懙迷絹碓蕉啵覀儼l(fā)現(xiàn),這種在HTML代碼中編寫Java代碼來完成邏輯的方式存在著不少問題:

1. Java代碼由于混雜在一個HTML環(huán)境中而顯得混亂不堪,可讀性非常差。一個JSP文件有時候會變成幾十K,甚至上百K。要找一段邏輯,經(jīng)常無法定位。

2. 編寫代碼時非常困惑,不知道代碼到底應該寫在哪里,也不知道別人是不是已經(jīng)曾經(jīng)實現(xiàn)過類似的功能,到哪里去引用。

3. 突然之間,某個需求發(fā)生了變化。于是,每個人蒙頭開始全程替換,還要小心翼翼的,生怕把別人的邏輯改了。

4. 邏輯處理程序需要自己來維護生命周期,對于類似數(shù)據(jù)庫事務、日志等眾多模塊無法統(tǒng)一支持。

在這個時候,如果有一個產(chǎn)品,它能夠?qū)㈨撁嫔系哪切㎎ava代碼抽取出來,讓頁面上盡量少出現(xiàn)Java代碼,該有多好。于是許多人開始使用servlet來處理那些業(yè)務邏輯。

  1. public class LoginServlet extends HttpServlet {    
  2.     
  3.     /* (non-Javadoc)   
  4.      * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)   
  5.      */    
  6.     @Override    
  7.     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {    
  8.         String message = null;    
  9.         RequestDispatcher dispatcher = req.getRequestDispatcher("/result.jsp");    
  10.         String name = req.getParameter("name");    
  11.         String password = req.getParameter("password");    
  12.             
  13.         UserHandler userHandler = new UserHandler();    
  14.         if(userHandler.authenticate(name, password)) {    
  15.             message = "恭喜你,登錄成功";    
  16.         } else {    
  17.             message = "對不起,登錄失敗";    
  18.         }    
  19.             
  20.         req.setAttribute("message", message);    
  21.         dispatcher.forward(req, resp);    
  22.     }    
  23. }    

在這里,我們需要在web.xml中為這個servlet配置url的請求關系。

  1. <servlet>    
  2.   <servlet-name>Login</servlet-name>    
  3.     <servlet-class>    
  4.       com.demo2do.servlet.LoginServlet    
  5.   </servlet-class>    
  6. </servlet>    
  7. <servlet-mapping>    
  8.   <servlet-name>Login</servlet-name>    
  9.   <url-pattern>    
  10.     /Login    
  11.   </url-pattern>    
  12. </servlet-mapping>    

代碼重構(gòu)到這里,我們發(fā)現(xiàn),其實我們的工作量本身并沒有減少,只是代碼從JSP移動到了Servlet,使得整個流程看上去稍微清楚了一些。然而,為了這么點干凈,我們付出的代價是什么?為每個servlet都在web.xml里面去做一個url的請求配置!     

在很多年前,我們這么寫程序的。

很多年前,那是一個貧苦的年代,如果我們要使用Java在網(wǎng)頁上做一些動態(tài)的交互功能。很多人會告訴你一個技術(shù),叫做JSP。在我還對Java非常困惑的時候,就有人告訴我,JSP是個好東西,它可以在HTML代碼里面寫Java代碼來完成邏輯。

  1. <%    
  2.      String name = request.getParameter("name");    
  3.      String password = request.getParameter("password");    
  4.     
  5.      UserHandler userHandler = new UserHandler();    
  6.      if(userHandler.authenticate(name, password)) {    
  7. %>    
  8. <p>恭喜你,登錄成功</p>    
  9. <%    
  10.       } else {    
  11. %>    
  12. <p>對不起,登錄失敗</p>    
  13. <%    
  14.       }    
  15. %>  

作為一張JSP,它可以接收從別的JSP發(fā)送過來的登錄請求,并進行處理。這樣,我們不需要任何額外的配置文件,也不需要任何框架的幫忙,就能完成邏輯。

再后來,出現(xiàn)框架。

時代進一步發(fā)展,人們發(fā)現(xiàn)簡單的JSP和Servlet已經(jīng)很難滿足人們懶惰的要求了。于是,人們開始試圖總結(jié)一些公用的Java類,來解決Web開發(fā)過程中碰到的問題。這時,橫空出世了一個框架,叫做struts。它非常先進地實現(xiàn)了MVC模式,成為了廣大程序員的福音。

struts的代碼示例我就不貼了,網(wǎng)上隨便搜搜你可以發(fā)現(xiàn)一堆一堆的。在一定程度上,struts能夠解決web開發(fā)中的職責分配問題,使得顯示與邏輯分開。不過在很長一段時間內(nèi),使用struts的程序員往往無法分別我們到底需要web框架幫我們做什么,我們到底需要它完成點什么功能?

我們到底要什么?

在回顧了我們寫代碼的歷史之后,我們回過頭來看看,我們到底要什么?

無論是使用JSP,還是使用Struts1,或是Struts2,我們至少都需要一些必須的元素(如果沒有這些元素,或許我還真不知道這個程序會寫成什么樣子):

1. 數(shù)據(jù)

在這個例子中,就是name和password。他們共同構(gòu)成了程序的核心載體。事實上,我們往往會有一個User類來封裝name和password,這樣會使得我們的程序更加OO。無論怎么說,數(shù)據(jù)會穿插在這個程序的各處,成為程序運行的核心。

2.頁面展示

在這個例子中,就是login.jsp。沒有這個頁面,一切的請求、驗證和錯誤展示也無從談起。在頁面上,我們需要利用HTML,把我們需要展現(xiàn)的數(shù)據(jù)都呈現(xiàn)出來。同時我們也需要完成一定的頁面邏輯,例如,錯誤展示,分支判斷等等。

3.處理具體業(yè)務的場所

在這里,不同階段,處理具體業(yè)務的場所就不太一樣。原來用JSP和Servlet,后來用Struts1或者Struts2的Action。

上面的這些必須出現(xiàn)的元素,在不同的年代,被賦予了不同的表現(xiàn)形式,有的受到時代的束縛,其表現(xiàn)形式非常落后,有的已經(jīng)不再使用。但是撥開這些外在的表現(xiàn)形式,我們就可以發(fā)現(xiàn),這不就是我們已經(jīng)熟門熟路的MVC嘛?

數(shù)據(jù) —— Model

頁面展示 —— View

處理具體業(yè)務的場所 —— Control

所以,框架不重要,概念是王道。只要能夠深刻理解MVC的概念,框架對你來說,只是一個jar包而已。

MVC的概念其實就那么簡單,這些概念其實早已深入我們的內(nèi)心,而我們所缺乏的是將其本質(zhì)挖掘出來。我們來看看下面這幅圖,這是一副流行了很多年的講述MVC模型的圖:

在這幅圖中,MVC三個框框各司其職,結(jié)構(gòu)清晰明朗。不過我覺得這幅圖忽略了一個問題,就是數(shù)據(jù)是動的,數(shù)據(jù)在View和Control層一旦動起來,就會產(chǎn)生許多的問題:

1. 數(shù)據(jù)從View層傳遞到Control層,如何使得一個個扁平的字符串,轉(zhuǎn)化成一個個生龍活虎的Java對象。

2. 數(shù)據(jù)從View層傳遞到Control層,如何方便的進行數(shù)據(jù)格式和內(nèi)容的校驗?

3. 數(shù)據(jù)從Control層傳遞到View層,一個個生龍活虎的Java對象,又如何在頁面上以各種各樣的形式展現(xiàn)出來。

4. 如果你試圖將數(shù)據(jù)請求從View層發(fā)送到Control層,你如何才能知道你要調(diào)用的究竟是哪個類,哪個方法?一個Http的請求,又如何與Control層的Java代碼建立起關系來?

除此之外,Control層似乎也沒有想象中的那么簡單,因為它作為一個控制器,至少還需要處理以下的問題:

1. 作為調(diào)用邏輯處理程序的facade門面,如果邏輯處理程序發(fā)生了異常,我們該如何處理?

2. 對于邏輯處理的結(jié)果,我們需要做怎么樣的處理才能滿足豐富的前臺展示需要?

這一個又一個問題的提出,都基于對MVC的基本概念的挖掘。所以,這些問題都需要我們在寫程序的時候去一一解決。說到這里,這篇文章開頭所提的問題應該可以有答案了:框架是為了解決一個又一個在Web開發(fā)中所遇到的問題而誕生的。不同的框架,都是為了解決不同的問題,但是對于程序員而言,他們只是jar包而已。框架的優(yōu)缺點的評論,也完全取決于其對問題解決程度和解決方式的優(yōu)雅性的評論。所以,千萬不要為了學習框架而學習框架,而是要為了解決問題而學習框架,這才是一個程序員的正確學習之道。

原文鏈接:http://www.cnblogs.com/itao/archive/2011/08/22/2148844.html

【編輯推薦】

  1. 商業(yè)計算中Java高精度計算BigDecimal類
  2. Spring MVC攔截器實現(xiàn)分析
  3. 不需要Web應用服務器Java實現(xiàn)WebServices
  4. JAVA設計模式:工廠模式之簡單工廠
  5. 調(diào)用Java NIO提高文件讀寫速度
責任編輯:林師授 來源: itao_o的博客
相關推薦

2024-01-09 12:05:24

SSH協(xié)議端口

2022-12-02 09:13:28

SeataAT模式

2012-02-21 13:55:45

JavaScript

2009-03-16 15:55:21

Java責任鏈模式

2009-06-22 15:34:00

Javascript

2021-03-16 08:54:35

AQSAbstractQueJava

2011-07-04 10:39:57

Web

2022-01-12 08:54:52

Spring編程架構(gòu)設計

2012-05-21 09:51:25

對象Cocoa

2009-06-18 10:23:03

Javascript 基本框架

2009-06-29 15:25:00

Java多線程

2019-11-11 14:51:19

Java數(shù)據(jù)結(jié)構(gòu)Properties

2009-11-30 16:46:29

學習Linux

2017-07-02 18:04:53

塊加密算法AES算法

2019-01-07 15:29:07

HadoopYarn架構(gòu)調(diào)度器

2021-07-20 15:20:02

FlatBuffers阿里云Java

2012-05-21 10:06:26

FrameworkCocoa

2022-09-26 09:01:15

語言數(shù)據(jù)JavaScript

2011-11-11 10:32:52

Java

2022-01-13 09:38:25

Android架構(gòu)設計
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲91精品在线| 日韩一区二区在线看| 久久国产精品-国产精品| 成人免费a视频| 精品美女久久久| 911精品产国品一二三产区| 最新视频 - x88av| 午夜视频www| 久久精品国产第一区二区三区| 欧美成人精品在线播放| 色婷婷免费视频| 日本免费一区二区三区等视频| 亚洲线精品一区二区三区| 蜜桃av噜噜一区二区三| 国产精品欧美激情在线| 一本久久综合| 久久在线视频在线| 黄色正能量网站| 麻豆精品在线| 欧美在线免费观看视频| 欧美在线观看视频免费| 高清毛片在线看| 成人av免费在线播放| 国产精品一区电影| 99精品视频99| 欧美日韩一卡| xxav国产精品美女主播| 日韩网站在线播放| 99久久婷婷国产综合精品青牛牛| 欧美图片一区二区三区| 亚洲不卡中文字幕无码| 中文在线观看免费| 国产精品拍天天在线| 久久国产精品一区二区三区| www精品国产| 精品一区二区免费看| 日本国产高清不卡| 天堂资源在线播放| 综合激情一区| 日韩在线观看精品| 日韩 中文字幕| 99re6热只有精品免费观看| 在线一区二区三区| 国产成人精品视频免费看| 欧美xxxx免费虐| 亚洲久本草在线中文字幕| 亚洲午夜在线观看| 好男人免费精品视频| 97久久精品人人澡人人爽| 97久草视频| 国产免费叼嘿网站免费| 精品无人区卡一卡二卡三乱码免费卡| 国产精品国语对白| 免费黄色片视频| 日韩成人精品视频| 国产福利成人在线| 男人天堂av在线播放| 99成人在线| 91成品人片a无限观看| 日韩特黄一级片| 国产一区二区你懂的| 91成人精品网站| 久久久久久久久久久影院| 国产农村妇女精品一二区| 国外色69视频在线观看| 国产成人无码精品亚洲| 在线欧美三区| 51精品在线观看| 青青青国产在线| 欧美aaaaaa午夜精品| 国产精品日韩在线播放| 中文字幕激情视频| 麻豆国产91在线播放| 91久久精品日日躁夜夜躁国产| 国产伦精品一区二区三区免.费 | 这里只有精品免费视频| 久久aⅴ国产紧身牛仔裤| 日韩美女中文字幕| 国产美女www爽爽爽| 精品一区二区三区免费毛片爱| 亚洲bt天天射| 无码国产色欲xxxx视频| 久久日一线二线三线suv| 亚洲v国产v| 国产黄a三级三级三级av在线看 | 国产亚洲精品美女久久久| 特黄一区二区三区| 在线精品福利| 国产精品久久久久久亚洲调教| 国产又色又爽又黄又免费| 国产成a人亚洲精品| 精品午夜一区二区三区| av每日在线更新| 亚洲二区在线观看| 99草草国产熟女视频在线| 精品国产三级| 亚洲欧洲日本专区| 精品一区在线观看视频| 国产精品毛片| 成人av资源在线播放| 人妻中文字幕一区| 国产精品久久久久久久浪潮网站| av在线免费观看国产| 亚洲伦乱视频| 亚洲第一页在线| 亚洲aaa视频| 99在线热播精品免费99热| 国产精品普通话| 四虎在线视频免费观看| 亚洲欧洲日产国码二区| 97超碰青青草| 伊色综合久久之综合久久| 亚洲天堂av在线播放| 欧美毛片在线观看| 免费一区二区视频| 久久国产精品 国产精品| 羞羞视频在线观看免费| 在线免费观看一区| 亚洲欧美日韩色| 亚洲乱码在线| 国产精品普通话| 久久精品色图| 精品国产31久久久久久| 99热这里只有精品2| 欧美一级本道电影免费专区| 992tv成人免费影院| 精品国产黄色片| 中文字幕欧美一| 亚洲 欧美 日韩系列| 在线日韩网站| 欧美一级高清免费播放| 蜜桃av中文字幕| 一区二区三区中文在线| 91日韩精品视频| 日韩.com| 国产精品视频永久免费播放| 加勒比一区二区三区在线| 五月婷婷久久丁香| 深田咏美中文字幕| 亚洲天堂久久| 不卡一区二区三区视频| 二区三区在线观看| 欧美一区二区三区四区高清| 永久免费看片直接| 久久99精品国产麻豆婷婷洗澡| 午夜精品短视频| 周于希免费高清在线观看 | 国产精品久久中文| 蜜桃视频在线观看网站| 好吊成人免视频| 国产福利短视频| 亚洲专区一区二区三区| 精品欧美一区二区在线观看视频| jizz一区二区三区| 亚洲国产中文字幕久久网| 日韩xxx高潮hd| 成人av电影免费在线播放| 国产一二三在线视频| 成人免费直播在线| 97免费在线视频| 亚州男人的天堂| 在线观看亚洲精品视频| 欧洲av一区二区三区| 日韩一区精品字幕| 亚洲在线欧美| 亚洲超碰在线观看| 久久久视频免费观看| 香蕉视频免费在线看| 色一情一伦一子一伦一区| 免费网站在线高清观看| 美腿丝袜在线亚洲一区| 欧美一级黄色录像片| 一区二区免费| 日本一本a高清免费不卡| 高清日韩av电影| 欧美一级高清片在线观看| 国产一级特黄视频| 91色porny| 激情五月俺来也| 欧美日本国产| 美女一区视频| 国产一区二区三区国产精品| 久久久久久久久久久久久久久久久久av| 特黄视频在线观看| 欧美羞羞免费网站| 国产av 一区二区三区| www.亚洲色图| 色婷婷成人在线| 亚洲网站啪啪| 日韩一区二区三区资源| 亚洲国产aⅴ精品一区二区| 91成人福利在线| 国产美女av在线| 亚洲精选中文字幕| 国产情侣在线播放| 欧美日韩亚洲国产一区| 69夜色精品国产69乱| av电影在线观看完整版一区二区| 久久精品免费网站| 狠狠入ady亚洲精品经典电影| 久久久久久亚洲精品不卡4k岛国| 色999久久久精品人人澡69| 国内精品久久影院| 18免费在线视频| 亚洲国产精品人久久电影| 一本一道精品欧美中文字幕| 欧美色欧美亚洲高清在线视频| 成人在线观看免费完整| 久久女同精品一区二区| 91精品国产高清91久久久久久| 久久精选视频| 日韩日韩日韩日韩日韩| 国产精品99一区二区三区| 欧美亚洲另类在线一区二区三区| 亚洲日本视频在线| 成人高清视频观看www| 深夜成人福利| 91精品国产高清| 免费不卡av| 米奇精品一区二区三区在线观看| 国产片在线观看| 精品亚洲一区二区三区四区五区| 亚洲av无码国产精品久久不卡| 欧美天堂一区二区三区| 亚洲GV成人无码久久精品 | 中文字幕亚洲天堂| 外国精品视频在线观看| 日韩美女一区二区三区| 国产精品一区二区黑人巨大| 欧美三级一区二区| 无码人妻精品一区二| 欧美日韩国产影院| 日操夜操天天操| 亚洲在线视频网站| 青娱乐在线视频免费观看| 国产精品久久久久久久久图文区 | 青青久久aⅴ北条麻妃| jizz一区二区三区| 欧美极品第一页| 欧美黑人猛交| 欧美激情久久久久| 视频在线这里都是精品| 另类色图亚洲色图| 国产高清一区二区三区视频| 久久国产视频网站| wwwav在线| 欧美日韩国产成人| 肉肉视频在线观看| 久久久久久久网站| 24小时免费看片在线观看| 午夜精品久久久99热福利| 波多野结衣在线播放| 欧美黑人一级爽快片淫片高清| 少女频道在线观看免费播放电视剧| 欧美日韩国产91| 九九色在线视频| 久久久久中文字幕| 精品三级久久| 国产精品久久av| 亚洲精品一区二区在线播放∴| 亚洲aⅴ男人的天堂在线观看| 国产精品成人**免费视频| 91青青草免费观看| 国产96在线亚洲| 看欧美日韩国产| 久久精品国产大片免费观看| 肉大捧一出免费观看网站在线播放 | 高h视频免费观看| 亚洲成在人线在线播放| 久久免费激情视频| 欧美综合视频在线观看| 97在线视频人妻无码| 精品国产91洋老外米糕| 免费福利在线视频| 深夜成人在线观看| 欧美日韩在线视频免费观看| 2021久久精品国产99国产精品| 日本成人片在线| 亚洲va码欧洲m码| 秋霞影视一区二区三区| 亚洲高清在线播放| 欧美fxxxxxx另类| 国产精品宾馆在线精品酒店| 老司机一区二区| 理论片大全免费理伦片| 日本一区二区三区国色天香 | 国产精品视频99| 日韩一区二区三区精品视频第3页| 国精产品99永久一区一区| 精品国产乱码久久久久久果冻传媒| 曰韩不卡视频| 亚久久调教视频| 国产999免费视频| 久久久九九九九| 久草网在线观看| 欧美性欧美巨大黑白大战| 亚洲第一免费视频| 亚洲亚裔videos黑人hd| 色婷婷视频在线观看| 国产精品老女人精品视频| 一区中文字幕电影| 亚洲激情一区二区| 国产偷自视频区视频一区二区| 国产永久免费网站| 久久久久久久综合色一本| 欧美日韩中文字幕在线观看| 在线视频一区二区三| 丰满少妇高潮在线观看| 最近2019好看的中文字幕免费| а√在线天堂官网| 亚洲最大激情中文字幕| 成人一级毛片| 免费无码av片在线观看| 成人午夜在线视频| 尤物在线免费视频| 欧美影院一区二区三区| 午夜视频在线播放| 久久国产精品影片| 99er精品视频| 亚洲成人av动漫| 水野朝阳av一区二区三区| 在线免费看黄色片| 亚洲综合免费观看高清完整版在线| 在线不卡免费视频| 亚洲视频在线观看视频| 嗯啊主人调教在线播放视频| 99re国产| 国内激情久久| 性一交一黄一片| 亚洲乱码国产乱码精品精可以看 | 精品福利在线导航| 黄色片免费在线观看| 国产女同一区二区| 成人羞羞网站| 99热这里只有精品在线播放| 久久精品人人爽人人爽| 日韩综合在线观看| 日韩av中文字幕在线| 成人免费观看在线观看| 国产乱码精品一区二区三区卡| 亚洲大胆视频| 四季av综合网站| 亚洲成人精品影院| 天天操天天插天天射| 国内精品美女av在线播放| 99热这里只有精品首页| 色欲色香天天天综合网www| 成人h版在线观看| 日韩手机在线观看| 国产偷亚洲偷欧美偷精品| 精品三级久久| 日本高清久久一区二区三区| 日韩电影在线观看电影| 国产又粗又黄又猛| 欧美高清视频www夜色资源网| 久草免费在线| 91免费在线观看网站| 精品999日本| 欧美深性狂猛ⅹxxx深喉| 日韩欧美主播在线| 国产小视频在线观看| 国产综合福利在线| 欧美国产高潮xxxx1819| 国产国语老龄妇女a片| 亚洲女女做受ⅹxx高潮| 蜜桃av噜噜一区二区三区麻豆| 91禁国产网站| 日韩欧美一区二区三区在线视频| 九九九九九九九九| 一区二区三区美女视频| 日本加勒比一区| 国产成人jvid在线播放| 香蕉国产精品| 波多野结衣有码| 在线观看亚洲精品| 黄色免费在线看| 狠狠爱一区二区三区| 性欧美精品高清| 国产天堂av在线| 亚洲国产精品女人久久久| 日本在线中文字幕一区二区三区| 7777在线视频| 91蜜桃传媒精品久久久一区二区| 中文字幕一区二区在线视频| 欧美极品欧美精品欧美视频| 亚洲宅男一区| 日本黄色一级网站| 欧美视频在线观看免费| 国产区在线观看| 欧美二区三区| 国产精品一区久久久久| 日本韩国欧美中文字幕| 日韩中文字幕国产精品| 久久男人av| 中文字幕12页| 色综合久久88色综合天天| 超碰在线免费公开| 欧美一区二区三区在线播放| 国产成人免费视频一区| wwwwww在线观看|