JavaWeb之JSP基礎小結,javawebjsp小結

來源:互聯網
上載者:User

JavaWeb之JSP基礎小結,javawebjsp小結
1.概述

  JSP檔案是通過三大指令,九大對象以及JSP運算式等與HTML語句結合形成的一個檔案,其本質為Servlet簡單來說,即Java代碼+HTML語句。

2.運行原理

  每個JSP頁面被訪問時,即被JSP引擎翻譯為一個Servlet來源程式,該來源程式再被編譯成Servlet的class類檔案。之後的執行流程與普通Servlet的執行一致。Servlet引擎將class類檔案裝載並翻譯執行。

3.九大對象

  JSP有9個內建對象,不需要聲明就可以使用。

  (1)request:實際就是HTTPServletRequest。

  (2)response:實際就是HTTPServletResponse。

  (3)pageContext:代表當前JSP頁面,幾乎包含了當前JSP頁面的所以資訊,也可以從該對象中擷取其它八個對象。

  (4)session:代表瀏覽器和伺服器的一次會話,是HttpSession的一個對象。

  (5)out:可以直接通過該對象的方法在頁面輸出文字資訊或者HTML代碼。

  (6)application:代表當前WEB應用,是ServletContext對象。

  (7)exception:在聲明了<%@page isErrorPage="true"%>後可以通過該對象輸出異常資訊。 

  (8)config:當前JSP對應的Servlet的ServletConfig對象,若要訪問當前JSP的配置參數,需要映射訪問才可以。

  (9)page:指向當前Jsp對應的Servlet對象的引用 ,但是為object類型。

   其中最為常用也最為重要的四個對象按範圍範圍如下:

    pageContext:範圍為當前JSP頁面。通過<%@ include file=""%>引入的檔案中的變數等當前頁面也可以訪問。但是通過pageContext.include("file")引入檔案的變數和參數並不能直接在當前頁面使用和修改,該方法的實質是將file中的內容原封不動地添加在當前頁面,可以理解為將HTML頁面直接拼接在該位置。

    request:作用範圍在請求轉寄的過程中一直有效。

    session:範圍為瀏覽器和伺服器的一次會話。直觀表現在瀏覽器的一次開啟與關閉。應用案例如購物網站中購物車的實現。

    application:當前應用裝載在伺服器中時有效。該應用從伺服器卸載或者重新裝載,以及伺服器關閉等都會導致該對象失效。應用案例如網站統計訪問人數。

  和屬性相關的方法:

    Object getAttribute(String name)擷取指定的屬性

    Enumerration getAttributeNames()擷取所有屬性群組成的Enumeration對象

    removeAttribute(String name)移除指定的屬性

    setAttribute(String name, Object o)設定屬性

 4.三大指令

  (1)page:聲明頁面資訊或匯入內容

    ① 匯入檔案所需的jar包。外部添加的jar包一般存放在Web項目下 WEB-INF\lib、

<%@ page import="java.util.*"%>

    ② 關閉session,session預設開啟。

<%@ pagesession="false" %>

    ③ 當前頁面出錯則跳轉到"file"頁面。並且該跳轉方式為請求轉寄。

<%@ page errorPage="file"%>

    ④ 上文的"file"頁面,可以對分頁錯誤做處理或說明,可以配合exception對象使用。

<%@ page isErrorPage="true"%>

    ⑤ 當前JSP頁面的字元編碼(JSP檔案編碼)

<%@ page pageEncoding="utf-8"%>

    ⑥ 當前JSP頁面的響應類型(伺服器發送給瀏覽器的內容編碼)

<%@ page contentType="text/html; charset=utf-8"%>

    ⑦ 是否使用EL運算式,通常為false

<%@ page isELInored="false" %>

    ⑧ 指定JSP頁面的資訊,可以使用getServletInfo()方法擷取到該字串

<%@page info="this JSP info" %>

  (2)include指令:將其它檔案包含進來與當前頁面進行合并。這類檔案通常包括文本、JSP或其他格式的檔案。

    ① 靜態引入:通知JSP引擎在翻譯JSP頁面時,將其他源檔案合并到當前JSP頁面轉換成的Servlet源檔案中。兩個源檔案合并為一個Servlet源檔案。"file"為相對路徑。

<%@ include page="file"%>

    ②動態引入:該句被執行時程式通過請求轉寄跳轉到"file",執行當中的內容之後再返回執行當前頁面的剩餘部分,實際是兩個Servlet源檔案。

<jsp:include page="file"></jsp:include>

  (3) taglib: 能夠讓使用者根據需求自訂新的標籤,便於功能的實現,但因此也導致了代碼易讀性不高。

5.其它

  (1) JSP運算式:可以直接將運算式中的內容顯示在瀏覽器中

<%= "Hello World!" %>

  (2) 聲明函數

<%!     pulic void function(){      out.println("Hello World!");    }%>

  (3)注釋

   

 <!-- 用戶端注釋,用戶端查看源可以看到 -->
  <%-- 服務端注釋,用戶端查看不到 --%>

 

 

 

 

 

  

聯繫我們

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