免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Java工程師關(guān)于JSP的必會(huì)面試題你知道嗎?

什么是Java Server Pages?

JSP全稱Java Server Pages,是一種動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。它使用JSP標(biāo)簽在HTML網(wǎng)頁(yè)中插入Java代碼。標(biāo)簽通常以<%開(kāi)頭以%>結(jié)束。

JSP是一種Java servlet,主要用于實(shí)現(xiàn)Java web應(yīng)用程序的用戶界面部分。網(wǎng)頁(yè)開(kāi)發(fā)者們通過(guò)結(jié)合HTML代碼、XHTML代碼、XML元素以及嵌入JSP操作和命令來(lái)編寫(xiě)JSP。

JSP通過(guò)網(wǎng)頁(yè)表單獲取用戶輸入數(shù)據(jù)、訪問(wèn)數(shù)據(jù)庫(kù)及其他數(shù)據(jù)源,然后動(dòng)態(tài)地創(chuàng)建網(wǎng)頁(yè)。

JSP標(biāo)簽有多種功能,比如訪問(wèn)數(shù)據(jù)庫(kù)、記錄用戶選擇信息、訪問(wèn)JavaBeans組件等,還可以在不同的網(wǎng)頁(yè)中傳遞控制信息和共享信息。

JSP的優(yōu)勢(shì)

與純 Servlet 相比:JSP可以很方便的編寫(xiě)或者修改HTML網(wǎng)頁(yè)而不用去面對(duì)大量的println語(yǔ)句。

JSP的處理過(guò)程

就像其他普通的網(wǎng)頁(yè)一樣,您的瀏覽器發(fā)送一個(gè) HTTP 請(qǐng)求給服務(wù)器。

Web 服務(wù)器識(shí)別出這是一個(gè)對(duì) JSP 網(wǎng)頁(yè)的請(qǐng)求,并且將該請(qǐng)求傳遞給 JSP 引擎。通過(guò)使用 URL或者 .jsp 文件來(lái)完成。

JSP 引擎從磁盤(pán)中載入 JSP 文件,然后將它們轉(zhuǎn)化為 Servlet。這種轉(zhuǎn)化只是簡(jiǎn)單地將所有模板文本改用 println 語(yǔ)句,并且將所有的 JSP 元素轉(zhuǎn)化成 Java 代碼。

JSP 引擎將 Servlet 編譯成可執(zhí)行類,并且將原始請(qǐng)求傳遞給 Servlet 引擎。

Web 服務(wù)器的某組件將會(huì)調(diào)用 Servlet 引擎,然后載入并執(zhí)行 Servlet 類。在執(zhí)行過(guò)程中,Servlet 產(chǎn)生 HTML 格式的輸出并將其內(nèi)嵌于 HTTP response 中上交給 Web 服務(wù)器。

Web 服務(wù)器以靜態(tài) HTML 網(wǎng)頁(yè)的形式將 HTTP response 返回到您的瀏覽器中。

最終,Web 瀏覽器處理 HTTP response 中動(dòng)態(tài)產(chǎn)生的HTML網(wǎng)頁(yè),就好像在處理靜態(tài)網(wǎng)頁(yè)一樣。

一般情況下,JSP 引擎會(huì)檢查 JSP 文件對(duì)應(yīng)的 Servlet 是否已經(jīng)存在,并且檢查 JSP 文件的修改日期是否早于 Servlet。如果 JSP 文件的修改日期早于對(duì)應(yīng)的 Servlet,那么容器就可以確定 JSP 文件沒(méi)有被修改過(guò)并且 Servlet 有效。這使得整個(gè)流程與其他腳本語(yǔ)言(比如 PHP)相比要高效快捷一些。

JSP 生命周期

編譯階段

當(dāng)瀏覽器請(qǐng)求JSP頁(yè)面時(shí),JSP引擎會(huì)首先去檢查是否需要編譯這個(gè)文件。如果這個(gè)文件沒(méi)有被編譯過(guò),或者在上次編譯后被更改過(guò),則編譯這個(gè)JSP文件。

編譯的過(guò)程包括三個(gè)步驟:

解析JSP文件。

將JSP文件轉(zhuǎn)為servlet。

編譯servlet。

初始化階段

容器載入JSP文件后,它會(huì)在為請(qǐng)求提供任何服務(wù)前調(diào)用jspInit方法。如果您需要執(zhí)行自定義的JSP初始化任務(wù),復(fù)寫(xiě)jspInit方法就行了

JSP執(zhí)行

這一階段描述了JSP生命周期中一切與請(qǐng)求相關(guān)的交互行為,直到被銷毀。當(dāng)JSP網(wǎng)頁(yè)完成初始化后,JSP引擎將會(huì)調(diào)用_jspService方法。_jspService方法需要一個(gè)HttpServletRequest對(duì)象和一個(gè)HttpServletResponse對(duì)象作為它的參數(shù) , _jspService方法在每個(gè)request中被調(diào)用一次并且負(fù)責(zé)產(chǎn)生與之相對(duì)應(yīng)的response,并且它還負(fù)責(zé)產(chǎn)生所有7個(gè)HTTP方法的回應(yīng),比如GET、POST、DELETE等等。

JSP銷毀

SP生命周期的銷毀階段描述了當(dāng)一個(gè)JSP網(wǎng)頁(yè)從容器中被移除時(shí)所發(fā)生的一切。jspDestroy方法在JSP中等價(jià)于servlet中的銷毀方法。當(dāng)您需要執(zhí)行任何清理工作時(shí)復(fù)寫(xiě)jspDestroy方法,比如釋放數(shù)據(jù)庫(kù)連接或者關(guān)閉文件夾等等。

JSP語(yǔ)法

腳本程序

<% 代碼片段 %>

JSP聲明

一個(gè)聲明語(yǔ)句可以聲明一個(gè)或多個(gè)變量、方法,供后面的Java代碼使用。在JSP文件中,您必須先聲明這些變量和方法然后才能使用它們。

<%! int i = 0; %>

<%! int a, b, c; %>

<%! Circle a = new Circle(2.0); %>

JSP表達(dá)式

一個(gè)JSP表達(dá)式中包含的腳本語(yǔ)言表達(dá)式,先被轉(zhuǎn)化成String,然后插入到表達(dá)式出現(xiàn)的地方。由于表達(dá)式的值會(huì)被轉(zhuǎn)化成String,所以您可以在一個(gè)文本行中使用表達(dá)式而不用去管它是否是HTML標(biāo)簽。表達(dá)式元素中可以包含任何符合Java語(yǔ)言規(guī)范的表達(dá)式,但是不能使用分號(hào)來(lái)結(jié)束表達(dá)式。

今天的日期是: <%= (new java.util.Date).toLocaleString%>

JSP注釋

JSP注釋主要有兩個(gè)作用:為代碼作注釋以及將某段代碼注釋掉。

<%-- 注釋 --%> JSP注釋,注釋內(nèi)容不會(huì)被發(fā)送至瀏覽器甚至不會(huì)被編譯

JSP指令

JSP指令用來(lái)設(shè)置與整個(gè)JSP頁(yè)面相關(guān)的屬性。

<%@ page ... %> 定義頁(yè)面的依賴屬性,比如腳本語(yǔ)言、error頁(yè)面、緩存需求等等

<%@ include ... %> 包含其他文件

<%@ taglib ... %> 引入標(biāo)簽庫(kù)的定義,可以是自定義標(biāo)簽

JSP隱含對(duì)象

request HttpServletRequest類的實(shí)例

response HttpServletResponse類的實(shí)例

out PrintWriter類的實(shí)例,用于把結(jié)果輸出至網(wǎng)頁(yè)上

session HttpSession類的實(shí)例

application ServletContext類的實(shí)例,與應(yīng)用上下文有關(guān)

config ServletConfig類的實(shí)例

pageContext PageContext類的實(shí)例,提供對(duì)JSP頁(yè)面所有對(duì)象以及命名空間的訪問(wèn)

page 類似于Java類中的this關(guān)鍵字

Exception Exception類的對(duì)象,代表發(fā)生錯(cuò)誤的JSP頁(yè)面中對(duì)應(yīng)的異常對(duì)象

JSTL和EL表達(dá)式的關(guān)系

JSTL是一個(gè)JSP標(biāo)簽集合,它封裝了JSP應(yīng)用的通用核心功能。

EL主要用于查找作用域中的數(shù)據(jù),然后對(duì)它們執(zhí)行簡(jiǎn)單操作;它不是編程語(yǔ)言,甚至不是腳本編制語(yǔ)言。通常與 JSTL 標(biāo)記一起作用,能用簡(jiǎn)單而又方便的符號(hào)來(lái)表示復(fù)雜的行為。示例 : ${expr}

EL表達(dá)式能從哪些域?qū)ο笾腥≈?/h1>

常用的域?qū)ο笥邢旅孢@些

pageScope page 作用域

requestScope request 作用域

sessionScope session 作用域

applicationScope application 作用域

JSP異常怎么處理

在JSP頁(yè)面指定錯(cuò)誤頁(yè)面

<%@ page errorPage='ShowError.jsp' %>

編寫(xiě)錯(cuò)誤頁(yè)面ShowError.jsp

<%@ page isErrorPage='true' %>

什么是JSTL

JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL)是一個(gè)JSP標(biāo)簽集合,它封裝了JSP應(yīng)用的通用核心功能。

1. 核心標(biāo)簽

2.格式化標(biāo)簽

3.SQL 標(biāo)簽

4.XML 標(biāo)簽

5.JSTL 函數(shù)

使用步驟

第一步 : 導(dǎo)入JSTLjar依賴

第二步 : 在jsp頁(yè)面引入JSTL標(biāo)簽庫(kù) (對(duì)應(yīng)上面5個(gè)功能,選擇引入)

<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %> <%@ taglib prefix='fmt' uri='http://java.sun.com/jsp/jstl/fmt' %> <%@ taglib prefix='sql' uri='http://java.sun.com/jsp/jstl/sql' %> <%@ taglib prefix='x' uri='http://java.sun.com/jsp/jstl/xml' %> <%@ taglib prefix='fn' uri='http://java.sun.com/jsp/jstl/functions' %>

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JSTL標(biāo)簽EL表達(dá)式學(xué)習(xí) -- 含學(xué)習(xí)結(jié)構(gòu)圖
JSP--JSTL標(biāo)簽庫(kù)舉例 詳解
推薦一篇關(guān)于JSTL的好文章
Java學(xué)習(xí)——JSTL標(biāo)簽與EL表達(dá)式之間的微妙關(guān)系
el表達(dá)式
Jsp和Servlet的聯(lián)系與區(qū)別
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服