天天看點

JSP:簡單入門學習xxxxxx

  1. 概念:

    Java Server Pages: java伺服器端頁面

    可以了解為:一個特殊的頁面,其中既可以指定定義html标簽,又可以定義java代碼

    用于簡化書寫!!!

    2.圖解:

    JSP:簡單入門學習xxxxxx
    這是一個圖解,上面的代碼是需要通過java代碼進行編寫的動态資源,而下面的網頁是靜态資源,如果就用html頁面是無法達到該效果的,但是,如果在java代碼上,通過resp.getWriter().write(“

    xxx

    ”);這種形式的話,很顯然代碼量太大。故可以使用jsp頁面來進行解決這個問題,因為它可以寫java代碼。
  2. 原理

    JSP本質上就是一個Servlet。

    圖解:

    JSP:簡單入門學習xxxxxx

    如果找到了index.jsp則假設給它轉換為-index.java檔案,然後再編譯生成.class檔案。然後,給他傳回浏覽器,因為能給浏覽器通路的.class檔案的話,就是一個Servlet的繼承或實作類,是以,jsp檔案其實是一個Servlet。

    實際測試:

    一通路jsp就會生成work目錄,這個目錄下面放着jsp對應的java檔案和class檔案;

    JSP:簡單入門學習xxxxxx
    JSP:簡單入門學習xxxxxx
    找到class類
    JSP:簡單入門學習xxxxxx
    打開java檔案:
    JSP:簡單入門學習xxxxxx
    對于,HttpJspBase這個類,可以這麼了解,因為tomcat是由apache公司寫的,由于我們運作了tomcat。是以,這個類是實作的,通過檢視tomcat的源代碼 會發現他是繼承了HttpServlet的。
    JSP:簡單入門學習xxxxxx
    是以它也算是一個Servlet的,其實jsp是apache公司為我們寫的一個servlet ,原理也是通過resp.getWriter().write(“

    xxx

    ”);這種形式。隻是apache公司給我們做了這種體力活(輸出頁面标簽);是以,jsp可以用來簡化代碼的書寫。
  3. JSP的腳本:JSP定義Java代碼的方式(apache要求java寫的格式)
    1. <% 代碼 %>:定義的java代碼,在service方法中。service方法中可以定義什麼,該腳本中就可以定義什麼。
    2. <%! 代碼 %>:定義的java代碼,在jsp轉換後的java類的成員位置。(定義成員變量和方法,用的少,因為多線程安全問題)
    3. <%= 代碼 %>:定義的java代碼,會輸出到頁面上。輸出語句中可以定義什麼,該腳本中就可以定義什麼。

      測試如下:

      JSP:簡單入門學習xxxxxx
      JSP:簡單入門學習xxxxxx
  4. JSP的内置對象:

    在jsp頁面中不需要擷取和建立,可以直接使用的對象

    jsp一共有9個内置對象(因為tomcat已經聲明過了)

    今天學三個:

    1.request

    2.response

    3.out:字元輸出流對象,可以将資料輸出到頁面上。和response.getWriter()類似

    response.getWriter()和out.write()的差別:

    在tomcat伺服器真正給用戶端做出響應之前,會先找response緩沖區資料,再找out緩沖區資料。

    response.getWriter()資料輸出永遠在out.write()之前

    測試如下:

    JSP:簡單入門學習xxxxxx
    JSP:簡單入門學習xxxxxx
    結論:response先輸出,out則按照定義順序輸出。