欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂JavaEE培訓(xùn)之JSP動(dòng)態(tài)網(wǎng)頁編程技術(shù)原理詳解

2018-03-20 10:47:44 1352瀏覽

一、jsp概述

1、關(guān)于jsp

JavaServerPages簡稱jsp,從“server”這個(gè)詞可以看出,這其實(shí)也是一門java服務(wù)端技術(shù),其實(shí)可以簡單的把jsp認(rèn)為是servlet,一點(diǎn)錯(cuò)也沒有。Jsp的實(shí)質(zhì),就是客戶端需要的資源是通過jsp技術(shù)動(dòng)態(tài)生成的。

2、jsp的技術(shù)原理

1)當(dāng)客戶端在訪問一個(gè)jsp資源時(shí),服務(wù)器上有相應(yīng)的servlet來負(fù)責(zé)jsp資源,那么該servlet將會把jsp頁面翻譯成一個(gè)servlet,然后執(zhí)行該servlet的service方法。

2)服務(wù)器將jsp翻譯成java程序(就是一個(gè)Servlet),然后執(zhí)行該Servlet的service方法,在方法內(nèi)部動(dòng)態(tài)地向客戶端寫html代碼。

因此jsp就是一個(gè)servlet,也就是jsp頁面將被翻譯成servlet

3、jsp與servlet的選擇

jsp就是servlet,那么如果碰到需要寫繁多的html代碼,建議使用jsp,如果需要寫繁多的java代碼,建議使用servlet。



二、JSP技術(shù)詳解

1、JSP腳本

?就是怎樣在jsp頁面中使用java代碼,使用了腳本的地方,就不會作為輸出流的內(nèi)容,而是作為java代碼來執(zhí)行。使用方式有三種:

1)jav代碼會被作為程序的一部分來執(zhí)行,而不會被翻譯成out.write(),這是常用的。

2)會被翻譯成out.print(java代碼)

3)聲明成員變量。

4)jsp的注釋方式

html的注釋:

用戶看得到,程序員也看得到

java的注釋://單行注釋/多行注釋/

?用戶看不到,但是會被翻譯

jsp的注釋:用戶看不到,不會被翻譯,只有程序員在寫jsp頁面時(shí)才看得到。

2、三大指令

1)page指令

page指令是用于告訴服務(wù)器該如何翻譯此jsp頁面。通過page指令的屬性來指明翻譯的效果。

language:指的是jsp頁面支持哪種語言,只支持java,所以該屬性可以省略

pageEncoding和contentType寫一個(gè)就行,建議使用pageEncoding,更加簡單

session:默認(rèn)值是true,默認(rèn)情況下服務(wù)器會為該頁面開辟一個(gè)session空間

import:用于導(dǎo)入該頁面中的java類需要用到的包

errorPage:當(dāng)發(fā)生錯(cuò)誤時(shí)跳轉(zhuǎn)到的資源,注意,該地址是一個(gè)服務(wù)器地址。

isErrorPage:默認(rèn)值是false。當(dāng)在web.xml中配置錯(cuò)誤頁面時(shí),需要將該jsp頁面的isErrorPage設(shè)為true.

404/error.jsp?

總結(jié):一般情況下,page指令就這么寫即可:

2)include指令:靜態(tài)包含,file屬性使用的是服務(wù)器地址。

include指令是用于在一個(gè)jsp頁面中包含另一個(gè)jsp頁面,兩個(gè)頁面組合成一個(gè)頁面發(fā)送給客戶端。

所謂的靜態(tài)包含,在翻譯時(shí)是把被包含的jsp頁面寫給客戶端。那么此時(shí)客戶端拿到的是兩套html標(biāo)簽。

3)taglib指令:標(biāo)簽庫

taglib指令用于引入第三方標(biāo)簽庫,通過taglib指令中的prefix指明前綴,通過前綴來使用第三方標(biāo)簽庫中的標(biāo)簽

3、四大域?qū)ο?jsp有四個(gè),servlet有三個(gè)(request,session,servletContext))

1)pageContext

(1)pageContext作為域?qū)ο?br />
描述當(dāng)前page的上下文。那么pageContext對象是一個(gè)域?qū)ο螅^域?qū)ο?,就是提供了一個(gè)區(qū)域,用來存儲數(shù)據(jù)。因此當(dāng)前的page就能向pageContext對象中存儲數(shù)據(jù).

pageContext域?qū)ο蟮淖饔梅秶寒?dāng)前page(頁面)

setAttribute(Stringkey,Objectvalue);

getAttribute(Stringkey);

removeAttribute(Stringkey);

向其他域?qū)ο笾胁僮鲾?shù)據(jù).

pageContext.setAttribute(Stringkey,Objectvalue,intscope);向其他域?qū)ο笾写嬷?br />
pageContext.getAttribute(Stringkey,intscope);向其他域?qū)ο笾腥≈?br />
pageContext.removeAttribute(Stringkey,intscope);向其他域?qū)ο笾幸瞥?br />
intscope來自于PageContext類的常量

REQUEST_SCOPE:表示request域

SESSION_SCOPE:表示session域

APPLICATION_SCOPE:表示application域

findAttribute(Stringkey):Object:這是通過鍵,向所有域中搜索數(shù)據(jù)。

搜索的順序:

pageContext->request->session->application

(2)可以通過pageContext對象來獲取其他八個(gè)內(nèi)置對象

通過pageContext的get*()來獲得。

2)request

作用范圍:一次請求

3)session

作用范圍:一次會話

4)application

作用范圍:當(dāng)前web應(yīng)用

4、九大內(nèi)置對象

所謂的內(nèi)置對象,即在jsp頁面的腳本中能直接使用的java對象。

out:輸出流

當(dāng)通過out的write()寫內(nèi)容時(shí),實(shí)際是往out的緩沖區(qū)(默認(rèn)大小是8kb)中去寫,有兩種情況導(dǎo)致緩沖區(qū)的內(nèi)容會沖刷進(jìn)底層的輸出流中

1)out對象被銷毀

2)out的緩沖區(qū)不夠用了。其實(shí)我們可以設(shè)置out緩沖區(qū)的大小。如果緩沖區(qū)是0kb,那么out就把內(nèi)容直接寫到response緩沖區(qū)中。

page:this,表示當(dāng)前的Servlet對象

pageContext:重點(diǎn),表示當(dāng)前page的上下文對象,也是一個(gè)域?qū)ο?br />
session:當(dāng)jsp頁面的page指令的session屬性為true時(shí),才會有session對象

request:

response

exception當(dāng)jsp頁面的page指令的isErrorPage屬性為true時(shí),才會有exception對象

application:實(shí)際就是ServletContext對象

config:實(shí)際就是ServletConfig對象

5、Jsp標(biāo)簽

1)jsp:include

動(dòng)態(tài)包含:在一個(gè)頁面中包含另一個(gè)頁面的內(nèi)容

和靜態(tài)的區(qū)別:

?靜態(tài)包含會在翻譯的過程中直接翻譯被包含的頁面,被包含的頁面不會產(chǎn)生java文件。

?而動(dòng)態(tài)包含會在翻譯的過程中只翻譯自己頁面的內(nèi)容,被包含的頁面的翻譯交給相應(yīng)的類來完成,被包含的頁面會產(chǎn)生java文件,實(shí)際開發(fā)中更加常用動(dòng)態(tài)包含。

2)jsp:forward

請求轉(zhuǎn)發(fā),與servlet中的請求轉(zhuǎn)發(fā)的效果一致。

最后想要了解更多Java信息的同學(xué)可以前往扣丁學(xué)堂官網(wǎng)咨詢,扣丁學(xué)堂JavaEE培訓(xùn)深受學(xué)員的喜愛??鄱W(xué)堂不僅有專業(yè)的老師和與時(shí)俱進(jìn)的課程體系,還有大量的Java視頻教程供學(xué)員觀看學(xué)習(xí)哦。Java技術(shù)交流群:670348138。


關(guān)注微信公眾號獲取更多學(xué)習(xí)資料



關(guān)注微信公眾號獲取更多學(xué)習(xí)資料



查看更多關(guān)于“Java開發(fā)資訊的相關(guān)文章>>

標(biāo)簽: JavaEE視頻教程 JavaEE培訓(xùn) JavaEE開發(fā)工程師 Java培訓(xùn) Java開發(fā)程序員 JSP動(dòng)態(tài)網(wǎng)頁編程技術(shù)

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部