動態頁面Jsp技術:html
Jsp腳本:java
<%Java代碼%>:內部的Java代碼翻譯到Service方法的內部!服務器
<%=java變量或表達式%>:會被翻譯成service方法內部out.print(),用於頁面上輸出!session
<%!Java代碼%>:會被翻譯成servlet的成員的內容!app
Jsp註釋:不一樣的註釋可見範圍是不一樣!jsp
html註釋:<!--註釋內容-->:可見範圍 Jsp源碼,翻譯後的Servlet,頁面 顯示html源碼(Fn+F12)!this
Java註釋://單行註釋 /*多行註釋*/:可見範圍 Jsp源碼 翻譯後的Servlet!編碼
Jsp註釋:<%--註釋內容--%>:可見範圍Jsp源碼可見!spa
//推薦使用Jsp註釋!翻譯
Jsp運行原理:
Jsp本質就是Servlet!
Jsp在第一次被訪問時會被Web容器翻譯成Servlet而後再執行(第一次訪問會產生.java和.class文件,放入TomCat下的Work文件夾,可是本來的Jsp仍是放在WebApps中)!
Jsp的指令是指導Jsp翻譯和運行的命令,Jsp包括三大指令:
page指令:屬性最多的指令,根據不一樣的屬性,指導整個頁面特性
(實際開發中page指令默認)!
格式:<%@ page 屬性名1= "屬性值1" 屬性名2= "屬性值2" ...%>
經常使用屬性以下:
language:Jsp腳本中能夠嵌入的語言種類(默認設置好)!
pageEncoding:當前Jsp文件的自己編碼,內部能夠包含contentType
contentType:response.setContentType(text/html;charset=UTF-8)
Session:是否Jsp在翻譯時自動建立Session(默認設置爲session="true")!
import:導入Java的包(能夠寫多個<%@ page %>來設置import導包)!
errorPage:噹噹前頁面出錯後跳轉到哪一個頁面!
isErrorPage:當前頁面是一個處理錯誤的頁面!
include指令:頁面包含(靜態包含)指令,能夠將一個Jsp頁面包含到另外一個Jsp頁面中
格式:<%@ include file="被包含的文件地址"%>
taglib指令:在jsp頁面中引入標籤庫(JSTL標籤庫,Struts2標籤庫)!
格式:<%@ taglib uri="標籤庫地址" prefix="前綴"%>
Jsp的9個內置/隱式對象:
Jsp被翻譯成Servlet以後,Service方法中有9個對象定義並初始化完畢,咱們在Jsp腳本中能夠直接使用這9個對象:
名稱 |
類型 |
描述 |
out |
javax.servlet.jsp.JspWriter |
用於頁面輸出 |
request |
javax.servlet.http.HttpServletRequest |
獲得用戶請求信息, |
response |
javax.servlet.http.HttpServletResponse |
服務器向客戶端的迴應信息 |
config |
javax.servlet.ServletConfig |
服務器配置,能夠取得初始化參數 |
session |
javax.servlet.http.HttpSession |
用來保存用戶的信息 |
application |
javax.servlet.ServletContext |
全部用戶的共享信息 |
page |
java.lang.Object |
指當前頁面轉換後的Servlet類的實例(在普通類中的this) |
pageContext |
javax.servlet.jsp.PageContext |
JSP的頁面容器 |
exception |
java.lang.Throwable |
表示JSP頁面所發生的異常,在錯誤頁中才起做用 |
只有聲明isErrorPage的頁面纔有Exception對象!