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,用來作控制。
理解如下三點便可:java
一、不一樣之處在哪?程序員
二、各自的特色算法
既然JSP和Servlet都有自身的適用環境,那麼可否揚長避短,讓它們發揮各自的優點呢?答案是確定的——MVC(Model-View-Controller)模式很是適合解決這一問題。數據庫
MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構模式,把軟件系統分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller):瀏覽器
在JSP/Servlet開發的軟件系統中,這三個部分的描述以下所示:架構
MVC模式在Web開發中的好處是很是明顯,它規避了JSP與Servlet各自的短板,Servlet只負責業務邏輯而不會經過out.append()動態生成HTML代碼;JSP中也不會充斥着大量的業務代碼。這大大提升了代碼的可讀性和可維護性。app