JSP: Java伺服器頁面
阿新 • • 發佈:2020-08-13
JSP
概念:Java Server Pages,Java伺服器端頁面。
伺服器解析過程:
- 伺服器解析瀏覽器請求,找到
xx.jsp
頁面 - 將
xx.jsp
轉換成xx.java
檔案 - 生成
xx.class
位元組碼檔案 - 由位元組碼檔案響應。(只有servlet才可以被外界訪問)
- 因此jsp本質上是一個servlet
- 該位元組碼檔案(servlet)將頁面內容響應給瀏覽器
jsp指令碼
jsp的指令碼:jsp定義Java程式碼的方式
<% 程式碼 %>
定義的Java程式碼,在jsp轉換後的Java類的service方法中;<%! 程式碼 %>
定義的Java程式碼,在jsp轉換後的Java類的成員位置;<%= 程式碼 %>
定義的Java程式碼,會輸出到頁面。
jsp指令
作用:用於配置jsp頁面,匯入資原始檔
格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
分類:
-
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物件
-
include:頁面包含,如一樣的頁面頭,頁面尾
<%@ include file="top.jsp" %>
-
taglib 匯入資源
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
jsp註釋
- html註釋:
<!--註釋-->
,只能註釋html程式碼 - jsp註釋:
<%--註釋--%>
, 可以註釋所有
jsp內建物件
jsp本質是一個servlet,因此許多物件如 requst, response不需要定義,可以直接使用。
jsp一共有9個內建物件:
- request:和servlet使用一樣
- response
- out:JspWriter型別,字元輸出流物件,可以將資料輸出到頁面上
- pageContext:PageContent型別,當前頁面共享資料
- session:HttpServletRequest型別
- application:ServletContext型別,所有使用者共享資料
- page:Object型別,當前頁面(Servlet)的物件 this
- config:ServletConfig型別,Servlet的配置物件
- exception:Throwable型別,異常物件
out
和resp.getWriter().write()
類似。
區別:resp.getWriter().write(String)
不管定義在什麼位置,都會優先於out輸出。
建議:多使用out.write(String)
pageContext
可以獲取其他8個物件,如pageContext.getOut()
exception
需要宣告<%@ page iserrorPage="true" %>