JSP系列一:JSP簡介

來源:互聯網
上載者:User

378
一,JSP簡介
 JSP是建立在Servlet規範提供的功能之上的動態網頁技術。

 1,Servlet和JSP:servlet是含有HTML的Java代碼,JSP是含有Java代碼的HTML.

  Servlet在伺服器上執行和解釋瀏覽器的請求,承擔用戶端和應用程式之間的中介層角色,把動態內容混合到靜態內容中產生HTML.
  JSP在HTML中嵌入Java指令碼代碼和JSP標記,將靜態(HTML)和動態(java代碼)內容分離,實現內容和表示的分離。

 2,Servlet的不足:對錶示(顯示)的處理不足。
  a,Servlet中HTML的編寫和維護都比較困難。
  b,不能使用標準的HTML工具。
  c,非java開發人員難以處理HTML。

 3,JSP的好處:便利性,生產效率和可維護性

  JSP最終會轉換成Servlet,JSP頁面上能夠執行的任務都可以用Servlet完成,但底層的等同性不代表Servlet和JSP頁面對所有的情況都適用。
  問題不在於技術,而在於便利性,生產效率和可維護性的不同。
  a,JSP中的HTML可維護性好。
  b,可以使用網站開發工具。
  c,便於團隊開發,將靜態HTML和動態內容進行弱分離和強分離,提高生產效率。

二,JSP運行機制簡介

 1,JSP的生命週期
   轉換階段
  (1),用戶端發送對JSP頁面的請求,
  (2),JSP容器(WEB容器)檢查JSP頁面的文法,將JSP頁面轉譯為Servlet源檔案(java檔案)。
   該類必須實現javax.servlet.jsp.JspPage介面。
   而HttJspPage是應用於HTTP協議的請求和響應的JspPage擴充介面。
   org.apache.jasper.runtime.HttpJspBase是Tomcat對HttJspPage介面的實作類別。
   源檔案放在Tomcat的/work/Catalina/localhost目錄下的相應的項目目錄下.
    執行階段
  (3),Servlet容器載入(編譯成class檔案)Servlet源檔案,
  (4),建立一個Servlet執行個體,將Servlet載入到伺服器記憶體中來處理請求。
  (5),初始化JSP頁面,調用_jspInit方法。
  (6),由容器自動定義調用_jspService方法,產生響應內容。
  (7),銷毀JSP頁面,_jspDestroy。
 
 2,第一次載入JSP頁面和JSP頁面被修改的情況
 只有在第一次載入JSP頁面和JSP頁面被修改的時候,“JSP容器將JSP頁面轉換為Servlet源檔案”。
 對於以後的請求,JSP容器會檢查JSP頁面是否被修改。該JSP頁面被修改後,JSP容器轉譯該JSP頁面更新Servlet源檔案。
 
 3,之後的請求只會“由容器自動調用_jspService方法,產生響應內容”。

 4,伺服器重啟後,容器從執行階段開始“建立一個Servlet執行個體,將Servlet載入到伺服器記憶體中來處理請求”。

三,JSP文法簡介
 一個JSP頁面由元素和模板資料群組成。
 元素是必須由JSP容器進行處理,而模板資料是JSP容器不處理的,將原封不動直接傳遞給用戶端。

 1,模板資料的構成:
  靜態內容:一般由HTML構成。
  注釋:

 2,元素的構成:
  指令(directive): page指令,include指令,tiglib指令。

  指令碼: 運算式,Scriptlet,聲明;

  動作:
   * <jsp:userBean>,<jsp:setProperty>和<jsp:getProperty>以及<jsp:param>
   * <jsp:include>和<jsp:forward>
   * 其他與定義jsp文檔有關動作。 

四,JSP隱含對象

 1,輸入輸出對象 : HttpServletRequest的request, HttpServletResponse的response, JspWriter的out;
 2,範圍通訊對象 : HttpSession的session, ServletContext的application, PageContext的pageContext;
 3,servlet對象 : Object的page, ServletConfig的config;
 4,錯誤對象 : Throwable的exception;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.