Jsp 和 Servlet 有什么不同?
為什么80%的碼農都做不了架構師?>>> ??
面試中被問到了 Jsp 和 Servlet 有什么不同?在這里總結分享下。
回答思路先分別進行基本介紹,然后分析說明兩者相同點和不同點。
基本介紹
Servlet:
Servlet 是一種服務器端的Java應用程序,具有獨立于平臺和協議的特性,可以生成動態的Web頁面。它擔當客戶請求(Web瀏覽器或其他HTTP客戶程序)與服務器響應(HTTP服務器上的數據庫或應用程序)的中間層。 Servlet是位于Web服務器內部的服務器端的Java應用程序,與傳統的從命令行啟動的Java應用程序不同,Servlet由Web服務器進行加載,該Web服務器必須包含支持Servlet的Java虛擬機。
Jsp:
JSP 全名為Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計。JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計的顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發變得迅速和容易。 JSP(JavaServer Pages)是一種動態頁面技術,它的主要目的是將表示邏輯從Servlet中分離出來。
相同點
jsp經編譯后就變成了servlet,jsp本質就是servlet,jvm只能識別java的類,不能識別jsp代碼,web容器將jsp的代碼編譯成jvm能夠識別的java類。
分析
其實就是當你通過 http 請求一個 JSP 頁面是,首先 Tomcat 會調用 service()方法將JSP編譯成為 Servlet,然后執行 Servlet。
詳細理解:當服務器啟動后,當Web瀏覽器端發送過來一個頁面請求時,Web服務器先判斷是否是JSP頁面請求。如果該頁面只是一般的HTML/XML頁面請求,則直接將HTML/XML頁面代碼傳給Web瀏覽器端。如果請求的頁面是JSP頁面,則由JSP引擎檢查該JSP頁面,如果該頁面是第一次被請求、或不是第一次被請求但已被修改,則JSP引擎將此JSP頁面代碼轉換成Servlet代碼,然后JSP引擎調用服務器端的Java編譯器javac.exe對Servlet代碼進行編譯,把它變成字節碼(.class)文件,然后再調用JAVA虛擬機執行該字節碼文件,然后將執行結果傳給Web瀏覽器端。如果該JSP頁面不是第一次被請求,且沒有被修改過,則直接由JSP引擎調用JAVA虛擬機執行已編譯過的字節碼.class文件,然后將結果傳送Web瀏覽器端。
不同點
JSP側重視圖,Sevlet主要用于控制邏輯。
Servlet中沒有內置對象 。
JSP中的內置對象都是必須通過HttpServletRequest對象,HttpServletResponse對象以及HttpServlet對象得到。
關于 JSP 中的內置對象看這篇博客:JSP 九大內置對象及其作用域
?
水平有限,若有問題請留言交流!
互相學習,共同進步 :) 轉載請注明出處謝謝!
轉載于:https://my.oschina.net/hp2017/blog/1932021
總結
以上是生活随笔為你收集整理的Jsp 和 Servlet 有什么不同?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fermat
- 下一篇: 大数据之路Week10_day05 (R