JSP與Servlet

來源:互聯網
上載者:User
  JSP一般的運行方式為:當伺服器啟動後,當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啟動並執行:

  從這裡我們已經不難看出JSP和Servlet的關係,JSP引擎負責把JSP頁面翻譯成Servlet,因此JSP在底層完全就是Servlet(指原始概念上的Servlet,而不是HttpServlet)。前面我們提到JSP編程對應javax.servlet.jsp,更確切的講,這個包是供JSP引擎使用的,它在做翻譯的時候需要用到這個包,我們在編寫JSP頁面的時候是不需要涉及這個包的使用的。

  為什麼有了Servlet還要在高層實現一個JSP呢?這個問題跟Servlet本身編寫的煩雜程度有關,如果用Servlet來控制頁面外觀的話,將是一件十分頭疼的事情,使用JSP就把煩雜的列印任務交給了JSP引擎,程式員可以把精力集中到邏輯控制上面。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.