1. 程式人生 > >轉:jsp與servlet的區別與聯系

轉:jsp與servlet的區別與聯系

發揮 表現 需要 targe news das .org 復雜 數據庫設計

jsp與servlet的區別與聯系 - gsyabc - 博客園
https://www.cnblogs.com/sanyouge/p/7325656.html

jsp和servlet的區別和聯系:
1.jsp經編譯後就變成了Servlet.
(JSP的本質就是Servlet,JVM只能識別java的類,不能識別JSP的代碼,Web容器將JSP的代碼編譯成JVM能夠識別的java類)

2.jsp更擅長表現於頁面顯示,servlet更擅長於邏輯控制.
3.Servlet中沒有內置對象,Jsp中的內置對象都是必須通過HttpServletRequest對象,HttpServletResponse對象以及HttpServlet對象得到.

Jsp是Servlet的一種簡化,使用Jsp只需要完成程序員需要輸出到客戶端的內容,Jsp中的Java腳本如何鑲嵌到一個類中,由Jsp容器完成。
Servlet則是個完整的Java類,這個類的Service方法用於生成對客戶端的響應。


聯系:
JSP是Servlet技術的擴展,本質上就是Servlet的簡易方式。JSP編譯後是“類servlet”。
Servlet和JSP最主要的不同點在於:
Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。
而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。
JSP側重於視圖,Servlet主要用於控制邏輯
Servlet更多的是類似於一個Controller,用來做控制。



理解以下三點即可:


1、不同之處在哪?

  • Servlet在Java代碼中通過HttpServletResponse對象動態輸出HTML內容
  • JSP在靜態HTML內容嵌入Java代碼Java代碼動態執行後生成HTML內容

2、各自的特點

  • Servlet能夠很好地組織業務邏輯代碼,但是在Java源文件中通過字符串拼接的方式生成動態HTML內容會導致代碼維護困難、可讀性差
  • JSP雖然規避了Servlet在生成HTML內容方面的劣勢,但是在HTML中混入大量、復雜的業務邏輯同樣也是不可取的
3、通過MVC雙劍合璧

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

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

  • Controller——負責轉發請求,對請求進行處理
  • View——負責界面顯示
  • Model——業務功能編寫(例如算法實現)、數據庫設計以及數據存取操作實現

在JSP/Servlet開發的軟件系統中,這三個部分的描述如下所示:

技術分享圖片

  1. Web瀏覽器發送HTTP請求到服務端,被Controller(Servlet)獲取並進行處理(例如參數解析、請求轉發
  2. Controller(Servlet)調用核心業務邏輯——Model部分,獲得結果
  3. Controller(Servlet)將邏輯處理結果交給View(JSP),動態輸出HTML內容
  4. 動態生成的HTML內容返回到瀏覽器顯示

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

//================

servlet與jsp的區別 - java - 方幫信
http://www.fangbangxin.com/news/show-3701.html

轉:jsp與servlet的區別與聯系