久久久久久AV无码免费看大片,亚洲一区精品人人爽人人躁,国产成人片无码免费爱线观看,亚洲AV成人无码精品网站,为什么晚上搞的时候要盖被子

jsp與servlet的區(qū)別與聯(lián)系

時(shí)間:2019-11-13 09:08:31 類型:JAVA
字號:    

  jsp和servlet的區(qū)別和聯(lián)系:

        1.jsp經(jīng)編譯后就變成了Servlet.(JSP的本質(zhì)就是Servlet,JVM只能識別java的類,不能識別JSP的代碼,Web容器將JSP的代碼編譯成JVM能夠識別的java類)

        2.jsp更擅長表現(xiàn)于頁面顯示,servlet更擅長于邏輯控制.

       3.Servlet中沒有內(nèi)置對象,Jsp中的內(nèi)置對象都是必須通過HttpServletRequest對象,HttpServletResponse對象以及HttpServlet對象得到.Jsp是Servlet的一種簡化,使用Jsp只需要完成程序員需要輸出到客戶端的內(nèi)容,Jsp中的Java腳本如何鑲嵌到一個(gè)類中,由Jsp容器完成。而Servlet則是個(gè)完整的Java類,這個(gè)類的Service方法用于生成對客戶端的響應(yīng)。聯(lián)系:  JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上就是Servlet的簡易方式。JSP編譯后是“類servlet”。Servlet和JSP最主要的不同點(diǎn)在于:Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個(gè)擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯Servlet更多的是類似于一個(gè)Controller,用來做控制。

  理解以下三點(diǎn)即可:

  1、不同之處在哪?

  Servlet在Java代碼中通過HttpServletResponse對象動態(tài)輸出HTML內(nèi)容

  JSP在靜態(tài)HTML內(nèi)容中嵌入Java代碼,Java代碼被動態(tài)執(zhí)行后生成HTML內(nèi)容

  2、各自的特點(diǎn)

  Servlet能夠很好地組織業(yè)務(wù)邏輯代碼,但是在Java源文件中通過字符串拼接的方式生成動態(tài)HTML內(nèi)容會導(dǎo)致代碼維護(hù)困難、可讀性差

  JSP雖然規(guī)避了Servlet在生成HTML內(nèi)容方面的劣勢,但是在HTML中混入大量、復(fù)雜的業(yè)務(wù)邏輯同樣也是不可取的

  3、通過MVC雙劍合璧

  既然JSP和Servlet都有自身的適用環(huán)境,那么能否揚(yáng)長避短,讓它們發(fā)揮各自的優(yōu)勢呢?答案是肯定的——MVC(Model-View-Controller)模式非常適合解決這一問題。

  MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)、視圖(View)和控制器(Controller):

  Controller——負(fù)責(zé)轉(zhuǎn)發(fā)請求,對請求進(jìn)行處理

  View——負(fù)責(zé)界面顯示

  Model——業(yè)務(wù)功能編寫(例如算法實(shí)現(xiàn))、數(shù)據(jù)庫設(shè)計(jì)以及數(shù)據(jù)存取操作實(shí)現(xiàn)

  在JSP/Servlet開發(fā)的軟件系統(tǒng)中,這三個(gè)部分的描述如下所示:

229cf9ff5b1729eaf408fac56238eeb3_b.png

  Web瀏覽器發(fā)送HTTP請求到服務(wù)端,被Controller(Servlet)獲取并進(jìn)行處理(例如參數(shù)解析、請求轉(zhuǎn)發(fā))

  Controller(Servlet)調(diào)用核心業(yè)務(wù)邏輯——Model部分,獲得結(jié)果

  Controller(Servlet)將邏輯處理結(jié)果交給View(JSP),動態(tài)輸出HTML內(nèi)容

  動態(tài)生成的HTML內(nèi)容返回到瀏覽器顯示

  MVC模式在Web開發(fā)中的好處是非常明顯,它規(guī)避了JSP與Servlet各自的短板,Servlet只負(fù)責(zé)業(yè)務(wù)邏輯而不會通過out.append()動態(tài)生成HTML代碼;JSP中也不會充斥著大量的業(yè)務(wù)代碼。這大大提高了代碼的可讀性和可維護(hù)性。


<