java jsp总结
一、jsp簡介
JSP(全稱Java Server Pages)是由 Sun Microsystems 公司倡導和許多公司參與共同創(chuàng)建的一種使軟件開發(fā)者可以響應(yīng)客戶端請求,而動態(tài)生成 HTML、XML 或其他格式文檔的Web網(wǎng)頁的技術(shù)標準。
JSP 技術(shù)是以 Java 語言作為腳本語言的,JSP 網(wǎng)頁為整個服務(wù)器端的 Java 庫單元提供了一個接口來服務(wù)于HTTP的應(yīng)用程序。
二、JSP?生命周期
理解JSP底層功能的關(guān)鍵就是去理解它們所遵守的生命周期。
JSP生命周期就是從創(chuàng)建到銷毀的整個過程,類似于servlet生命周期,區(qū)別在于JSP生命周期還包括將JSP文件編譯成servlet。
以下是JSP生命周期中所走過的幾個階段:
編譯階段:加載與JSP對應(yīng)的servlet類,創(chuàng)建其實例,并調(diào)用它的初始化方法
初始化階段:調(diào)用與JSP對應(yīng)的servlet實例的服務(wù)方法
執(zhí)行階段:調(diào)用與JSP對應(yīng)的servlet實例的銷毀方法,然后銷毀servlet實例
銷毀階段:servlet容器編譯servlet源文件,生成servlet類
三、jsp語法
(1)腳本程序語法
? ?<% ? ? ?%>
? ?或
? <jsp:scriptlet>
? </jsp:scriptlet>
(2)聲明語法
? ? <%! ? ? %>(3)表達式語法
? ?<%= ? %>
(4)注釋語法
? ?<%-- ? --%>?
四、指令
(1)page
A、屬性
buffer 指定out對象使用緩沖區(qū)的大小
autoFlush 控制out對象的 緩存區(qū)
contentType 指定當前JSP頁面的MIME類型和字符編碼
errorPage 指定當JSP頁面發(fā)生異常時需要轉(zhuǎn)向的錯誤處理頁面
isErrorPage 指定當前頁面是否可以作為另一個JSP頁面的錯誤處理頁面
extends 指定servlet從哪一個類繼承
import 導入要使用的Java類
info 定義JSP頁面的描述信息
isThreadSafe 指定對JSP頁面的訪問是否為線程安全
language 定義JSP頁面所用的腳本語言,默認是Java
session 指定JSP頁面是否使用session
isELIgnored 指定是否執(zhí)行EL表達式
isScriptingEnabled 確定腳本元素能否被使用
B、Page指令的語法格式:
<%@ page attribute="value" %>
等價的XML格式:
<jsp:directive.page attribute="value" />
(2)include
<%@ include file="文件相對 url 地址" %>
include 指令中的文件名實際上是一個相對的 URL 地址。如果您沒有給文件關(guān)聯(lián)一個路徑,JSP編譯器默認在當前路徑下尋找。
等價的XML語法:
<jsp:directive.include file="文件相對 url 地址" />
(3)taglib
JSP API允許用戶自定義標簽,一個自定義標簽庫就是自定義標簽的集合。
Taglib指令引入一個自定義標簽集合的定義,包括庫路徑、自定義標簽。
Taglib指令的語法:
<%@ taglib uri="uri" prefix="prefixOfTag" %>
uri屬性確定標簽庫的位置,prefix屬性指定標簽庫的前綴。
等價的XML語法:
<jsp:directive.taglib uri="uri" prefix="prefixOfTag" />
五、動作元素
jsp:include 在頁面被請求的時候引入一個文件。
jsp:useBean 尋找或者實例化一個JavaBean。
jsp:setProperty 設(shè)置JavaBean的屬性。
jsp:getProperty 輸出某個JavaBean的屬性。
jsp:forward 把請求轉(zhuǎn)到一個新的頁面。
jsp:plugin 根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標記。
jsp:element 定義動態(tài)XML元素
jsp:attribute 設(shè)置動態(tài)定義的XML元素屬性。
jsp:body 設(shè)置動態(tài)定義的XML元素內(nèi)容。
jsp:text 在JSP頁面和文檔中使用寫入文本的模板
六、九大隱式對象
request HttpServletRequest類的實例
response HttpServletResponse類的實例
out JspWriter類的實例,用于把結(jié)果輸出至網(wǎng)頁上
session HttpSession類的實例
application ServletContext類的實例,與應(yīng)用上下文有關(guān)
config ServletConfig類的實例
pageContext PageContext類的實例,提供對JSP頁面所有對象以及命名空間的訪問
page 類似于Java類中的this關(guān)鍵字
Exception Exception類的對象,代表發(fā)生錯誤的JSP頁面中對應(yīng)的異常對象
七、?標準標簽庫(JSTL)
(1)根據(jù)JSTL標簽所提供的功能,可以將其分為5個類別
核心標簽
格式化標簽
SQL 標簽
XML 標簽
JSTL 函數(shù)
(2)配置jstl
a.web.xml聲明
?<jsp-config><taglib><taglib-uri>http://java.sun.com/jstl/xxx</taglib-uri><taglib-location>/WEB-INF/xxx.tld</taglib-location></taglib></jsp-config>
b.jsp頁面引用
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xxx" %>
八、表達式語言
(1)el表達式語法
${expr}
(2)el表達式配置
在jsp頁面聲明是否啟用el表達式
<%@ page isELIgnored ="true|false" %>
(3)el表達式操作符
. 訪問一個Bean屬性或者一個映射條目
[] 訪問一個數(shù)組或者鏈表的元素
( ) 組織一個子表達式以改變優(yōu)先級
+ 加
- 減或負
* 乘
/ or div 除
% or mod 取模
== or eq 測試是否相等
!= or ne 測試是否不等
< or lt 測試是否小于
> or gt 測試是否大于
<= or le 測試是否小于等于
>= or ge 測試是否大于等于
&& or and 測試邏輯與
|| or or 測試邏輯或
! or not 測試取反
empty 測試是否空值
(4)EL的函數(shù)
EL函數(shù)語法
${ns:func(param1, param2, ...)} ? ? ? ?
ns指的是命名空間(namespace),func指的是函數(shù)的名稱,param1指的是第一個參數(shù),param2指的是第二個參數(shù),以此類推。
要使用任何標簽庫中的函數(shù),您需要將這些庫安裝在服務(wù)器中,然后使用<taglib>標簽在JSP文件中包含這些庫。
(5)EL隱含對象
pageScope page 作用域
requestScope request 作用域
sessionScope session 作用域
applicationScope application 作用域
param Request 對象的參數(shù),字符串
paramValues Request對象的參數(shù),字符串集合
header HTTP 信息頭,字符串
headerValues HTTP 信息頭,字符串集合
initParam 上下文初始化參數(shù)
cookie Cookie值
pageContext 當前頁面的pageContext
九、?異常處理
(1)Exception對象
exception對象是Throwable子類的一個實例,只在錯誤頁面中可用。下表列出了Throwable類中一些重要的方法:
- public String getMessage() ? ?返回異常的信息。這個信息在Throwable構(gòu)造函數(shù)中被初始化
- public ThrowablegetCause() ? 返回引起異常的原因,類型為Throwable對象
- public String toString() ? 返回類名
- public void printStackTrace() ? 將異常棧軌跡輸出至System.err
- public StackTraceElement [] getStackTrace() ? 以棧軌跡元素數(shù)組的形式返回異常棧軌跡
- public ThrowablefillInStackTrace() ? ?使用當前棧軌跡填充Throwable對象
(2)jsp頁面聲明異常頁
<%@ page isErrorPage="true" %>
(3)jsp頁面設(shè)置異常頁
<%@ page errorPage="ShowError.jsp" %>
總結(jié)
以上是生活随笔為你收集整理的java jsp总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 佰维推出 LPDDR5 + UFS3.1
- 下一篇: Spring的IoC与DI差异