1. 程式人生 > 實用技巧 >JSP: Java伺服器頁面

JSP: Java伺服器頁面

JSP

概念:Java Server Pages,Java伺服器端頁面。

伺服器解析過程:

  1. 伺服器解析瀏覽器請求,找到xx.jsp頁面
  2. xx.jsp轉換成xx.java檔案
  3. 生成xx.class位元組碼檔案
  4. 由位元組碼檔案響應。(只有servlet才可以被外界訪問)
    • 因此jsp本質上是一個servlet
    • 該位元組碼檔案(servlet)將頁面內容響應給瀏覽器

jsp指令碼

jsp的指令碼:jsp定義Java程式碼的方式

  1. <% 程式碼 %> 定義的Java程式碼,在jsp轉換後的Java類的service方法中;
  2. <%! 程式碼 %> 定義的Java程式碼,在jsp轉換後的Java類的成員位置;
  3. <%= 程式碼 %> 定義的Java程式碼,會輸出到頁面。

jsp指令

作用:用於配置jsp頁面,匯入資原始檔

格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>

分類:

  1. page:配置jsp頁面

    • contentType="text/html;charset=UTF-8":設定響應體的mime型別;設定當前頁面的編碼
    • language="java" 語言,雖然只能使用java語言
    • buffer="16kb" 字元輸出流 緩衝區,預設8kb
    • <%@ page import="java.util.ArrayList" %>
      導包
    • errorPage="xxx.jsp" 當前頁面發生異常後,會自動跳轉到指定的錯誤頁面
    • iserrorPage="true" 預設是false,在錯誤頁面設定為true,可以使用exception物件
  2. include:頁面包含,如一樣的頁面頭,頁面尾

    <%@ include file="top.jsp" %>

  3. taglib 匯入資源

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

jsp註釋

  1. html註釋:<!--註釋--> ,只能註釋html程式碼
  2. jsp註釋:<%--註釋--%>, 可以註釋所有

jsp內建物件

jsp本質是一個servlet,因此許多物件如 requst, response不需要定義,可以直接使用。

jsp一共有9個內建物件:

  1. request:和servlet使用一樣
  2. response
  3. out:JspWriter型別,字元輸出流物件,可以將資料輸出到頁面上
  4. pageContext:PageContent型別,當前頁面共享資料
  5. session:HttpServletRequest型別
  6. application:ServletContext型別,所有使用者共享資料
  7. page:Object型別,當前頁面(Servlet)的物件 this
  8. config:ServletConfig型別,Servlet的配置物件
  9. exception:Throwable型別,異常物件

out

resp.getWriter().write()類似。

區別:resp.getWriter().write(String)不管定義在什麼位置,都會優先於out輸出。

建議:多使用out.write(String)

pageContext

可以獲取其他8個物件,如pageContext.getOut()

exception

需要宣告<%@ page iserrorPage="true" %>