JSP的學習一(基礎知識)

來源:互聯網
上載者:User

標籤:本質   null   move   應用程式   字元   java   web   out   ext   

一:介紹

  1). WHY:

    JSP 是簡 Servlet 編寫的一種技術, 它將 Java 代碼和 HTML 語句混合在同一個檔案中編寫,
    只對網頁中的要動態產生的內容採用 Java 代碼來編寫,而對固定不變的靜態內容採用普通靜態 HTML 頁面的方式編寫。

  2). Java Server Page: Java 伺服器端網頁. 在 HTML 頁面中編寫 Java 代碼的頁面.

  2). helloworld:

    建立一個 JSP 頁面, 在 body 節點內的 <% %> 即可編寫 Java 代碼.

    <body>

      <%
      Date date = new Date();
      System.out.print(date);
      %>

    </body>

  3). JSP 可以放置在 WEB 應用程式中的除了 WEB-INF 及其子目錄外的其他任何目錄中,
    JSP 頁面的訪問路徑與普通 HTML 頁面的訪問路徑形式也完全一樣。

  4). JSP的運行原理: JSP 本質上是一個 Servlet.

    每個JSP 頁面在第一次被訪問時, JSP 引擎將它翻譯成一個 Servlet 來源程式, 接著再把這個 Servlet 來源程式編譯成 Servlet 的 class 類檔案.
    然後再由WEB容器(Servlet引擎)像調用普通Servlet程式一樣的方式來裝載和解釋執行這個由JSP頁面翻譯成的Servlet程式。

 

 

二:九個影藏對象

1.隱含對象

  public void _jspService(HttpServletRequest request, HttpServletResponse response)throws java.io.IOException, ServletException {

    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;

    //...
    //使用 <% %> 編寫的代碼在此位置. 可以用到 request, response, pageContext, session
    //application, config, out, page 這 8 個隱含對象. (實際上還可以使用一個叫 exception 的隱含對象)
}

 

2.對九個隱含對象做詳細解釋

  ①. request: HttpServletRequest 的一個對象. *
  ②. response: HttpServletResponse 的一個對象(在 JSP 頁面中幾乎不會調用 response 的任何方法.)

  ③. pageContext: 頁面的上下文, 是 PageContext 的一個對象. 可以從該對象中擷取到其他 8 個隱含對象. 也可以從中擷取到當前
頁面的其他資訊. (學習自訂標籤時使用它) *
  ④. session: 代表瀏覽器和伺服器的一次會話, 是 HttpSession 的一個對象. 後面詳細學習. *

  ⑤. application: 代表當前 WEB 應用. 是 ServletContext 對象. *
  ⑥. config: 當前 JSP 對應的 Servlet 的 ServletConfig 對象(幾乎不使用). 若需要訪問當前 JSP 配置的初始化參數,
    需要通過映射的地址才可以.

    映射 JSP:

    <servlet>
      <servlet-name>hellojsp</servlet-name>
      <jsp-file>/hello.jsp</jsp-file>
      <init-param>
        <param-name>test</param-name>
        <param-value>testValue</param-value>
      </init-param>
    </servlet>

    <servlet-mapping>
      <servlet-name>hellojsp</servlet-name>
      <url-pattern>/hellojsp</url-pattern>
    </servlet-mapping>

  ⑦. out: JspWriter 對象. 調用 out.println() 可以直接把字串列印到瀏覽器上. *
  ⑧. page: 指向當前 JSP 對應的 Servlet 對象的引用, 但為 Object 類型, 只能調用 Object 類的方法(幾乎不使用)

  ⑨. exception: 在聲明了 page 指令的 isErrorPage="true" 時, 才可以使用. *

    <%@ page isErrorPage="true" %>

    pageContext, request, session, application(對屬性的範圍的範圍從小到大)
    out, response, config, page
    exception

 

三:JSP文法

1.JSP模版元素

  JSP頁面中的靜態HTML內容

 

2.JSP運算式

  提供了將一個 java 變數或運算式的計算結果輸出到用戶端的簡化方式,它將要輸出的變數或運算式直接封裝在<%= 和 %>之中。

 

3.JSP指令碼片斷

  是指嵌套在<% 和 %>之中的一條或多條Java程式碼。 多個指令碼片斷中的代碼可以相互訪問

 

4.JSP 聲明(很少使用)

  JSP 聲明將 Java 代碼封裝在<%!和 %>之中,它裡面的代碼將被插入進 Servle t的 _jspService

  

5.JSP注釋的格式

  <%-- JSP 注釋 --%> <!-- HTML 注釋 -->

 

四:域對象的屬性操作

1.屬性方法

  void setAttribute(String name, Object o): 設定屬性
  Object getAttribute(String name): 擷取指定的屬性

  Enumeration getAttributeNames(): 擷取所有的屬性的名字組成的 Enumeration 對象
  removeAttribute(String name): 移除指定的屬性

 

2.域對象

  pageContext, request, session, application 對象都有這些方法!這四個對象也稱之為域對象

 

3.域對象的解釋

  pageContext: 屬性的作用範圍僅限於當前 JSP 頁面
  request: 屬性的作用範圍僅限於同一個請求.
  session: 屬性的作用範圍限於一次會話: 瀏覽器開啟直到關閉稱之為一次會話(在此期間會話不失效)
  application: 屬性的作用範圍限於當前 WEB 應用. 是範圍最大的屬性作用範圍, 只要在一處設定屬性, 在其他各處的 JSP 或 Servlet 中
都可以擷取到.

 

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.