c標簽判斷true false jsp_Java學習知識點:小白如何掌握JSP技術?

今天千鋒廣州小編就給大家分享零基礎如何掌握JSP技術,下面一起來看看吧!

一、Java初級開發之jsp概述

1.關于jsp

JavaServer Pages簡稱jsp,從“server”這個詞可以看出,這其實也是一門java服務端技術,其實可以簡單的把jsp認為是servlet,一點錯也沒有。Jsp的實質,就是客戶端需要的資源是通過jsp技術動態生成的。

2.jsp的技術原理

1)當客戶端在訪問一個jsp資源時,服務器上有相應的servlet來負責jsp資源,那么該servlet將會把jsp頁面翻譯成一個servlet,然后執行該servlet的service方法。

2)服務器將jsp翻譯成java程序(就是一個Servlet),然后執行該Servlet的service方法,在方法內部動態地向客戶端寫html代碼。

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

3.jsp與servlet的選擇

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

219d28b9fadee0dc34eb8dd41bac505b.png

?二、JSP技術詳解

1.JSP腳本

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

1)

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

2)

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

3)

聲明成員變量。

4)jsp的注釋方式

· html的注釋:

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

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

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

· jsp的注釋:

用戶看不到,不會被翻譯,只有程序員在寫jsp頁面時才看得到。

2.三大指令

1)page指令

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

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

· pageEncoding和contentType寫一個就行,建議使用pageEncoding,更加簡單

· session:默認值是true,默認情況下服務器會為該頁面開辟一個session空間

· import:用于導入該頁面中的java類需要用到的包

· errorPage:當發生錯誤時跳轉到的資源,注意,該地址是一個服務器地址。

· isErrorPage:默認值是false。當在web.xml中配置錯誤頁面時,需要將該jsp頁面的isErrorPage設為true.

404

/error.jsp

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

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

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

所謂的靜態包含,在翻譯時是把被包含的jsp頁面寫給客戶端。那么此時客戶端拿到的是兩套html標簽。

3)taglib指令:標簽庫

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

3.四大域對象 (jsp有四個,servlet有三個(request,session,servletContext))

1) pageContext

(1)pageContext作為域對象

· 描述當前page的上下文。那么pageContext對象是一個域對象,所謂域對象,就是提供了一個區域,用來存儲數據。因此當前的page就能向pageContext對象中存儲數據.

pageContext域對象的作用范圍:當前page(頁面)

setAttribute(String key,Object value);

getAttribute(String key);

removeAttribute(String key);

· 向其他域對象中操作數據.

pageContext.setAttribute(String key,Object value, int scope);向其他域對象中存值

pageContext.getAttribute(String key, int scope);向其他域對象中取值

pageContext.removeAttribute(String key, int scope);向其他域對象中移除值

int scope來自于PageContext類的常量

REQUEST_SCOPE: 表示request域

SESSION_SCOPE: 表示session域

APPLICATION_SCOPE: 表示application域

· findAttribute(String key):Object :這是通過鍵,向所有域中搜索數據。

搜索的順序:

pageContext->request->session->application

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

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

2)request

作用范圍:一次請求

3)session

作用范圍:一次會話

4)application

作用范圍:當前web應用

4.九大內置對象

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

· out: 輸出流

當通過out的write()寫內容時,實際是往out的緩沖區(默認大小是8kb)中去寫,有兩種情況導致緩沖區的內容會沖刷進底層的輸出流中

1)out對象被銷毀

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

· page:this,表示當前的Servlet對象

· pageContext:重點,表示當前page的上下文對象,也是一個域對象

· session:當jsp頁面的page指令的session屬性為true時,才會有session對象

· request:

· response

· exception 當jsp頁面的page指令的isErrorPage屬性為true時,才會有exception對象

· application: 實際就是ServletContext對象

· config:實際就是ServletConfig對象

5.Jsp標簽

1) jsp:include

動態包含:在一個頁面中包含另一個頁面的內容

和靜態的區別:

靜態包含會在翻譯的過程中直接翻譯被包含的頁面,被包含的頁面不會產生java文件。

而動態包含會在翻譯的過程中只翻譯自己頁面的內容,被包含的頁面的翻譯交給相應的類來完成,被包含的頁面會產生java文件,實際開發中更加常用動態包含。

2)jsp:forward

請求轉發,與servlet中的請求轉發的效果一致。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535028.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535028.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535028.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python語言保留字的特點_python保留字及其說明

原博文 2019-07-14 22:05 ? 保留字 說 明 and 用于表達式運算,邏輯與操作 as 用于類型轉換 assert 斷言,用于判斷變量或條件表達式的值是否為真 break 中斷循環語句的執行 class 用于定義類 continue 繼續執行下一次循環 ...011647 相關推薦 2019-12-19…

使用Java操作Redis的兩種方式Jedis、RedisTemplate

各位小伙伴們大家好,歡迎來到這個小扎扎的Redis 6專欄,在這個系列專欄中我對B站黑馬的Redis教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Redis知識點速覽&#…

python提取數據庫數據_Python如何讀取MySQL數據庫表數據

本文實例為大家分享了Python讀取MySQL數據庫表數據的具體代碼,供大家參考,具體內容如下 環境:Python 3.6 ,Window 64bit 目的:從MySQL數據庫讀取目標表數據,并處理 代碼: # -*- coding: utf-8 -*- import p…

【項目實戰】基于Redis實現短信驗證碼登錄 (附源碼、思路)

各位小伙伴們大家好,歡迎來到這個小扎扎的Redis 6專欄,在這個系列專欄中我對B站黑馬的Redis教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Redis知識點速覽&#…

加工中心刻字宏程序_FANUC OI系列圖書——車床、銑床及加工中心編程

? 這是金屬加工(mw1950pub)發布的第10035篇文章導讀今天跟大家分享FANUC OI系列圖書,包括車床、銑床及加工中心編程,快來看看吧!《FANUC 0i數控車床/加工中心編程技巧與實例》選擇在企業里應用*廣泛、編程*具代表性的日本FANUCSeries0i-TC/T…

Redis 的緩存策略

各位小伙伴們大家好,歡迎來到這個小扎扎的Redis 6專欄,在這個系列專欄中我對B站黑馬的Redis教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Redis知識點速覽&#…

python顯示數據長度_python – 獲取CSV的長度以顯示進度

我正在處理大量CSV文件,每個文件都包含大量行.我的目標是逐行獲取數據并使用 Python將其寫入數據庫.但是,由于存在大量數據,我希望能夠跟蹤已寫入的數據量.為此,我計算了排隊的文件數量,并在每次文件完成時繼續添加一個文件. 我想為CSV文件做類似的事情并顯示我在哪一行,以及總…

關閉后天 樹莓派_陪你一起玩樹莓派-系統安裝

從今天就開始我們的樹莓派之旅,心情是不是有點小激動?我們拿到一個樹莓派是一個裸機。我們要準備一張16G的高速TF閃存卡,一個5V/2A的USB電源和一根micro B的 usb線。裝機步驟:一、下載樹莓派系統1、瀏覽器打開樹莓派官方網站 http…

簡單的簽到代碼_PHP實現一個小小的簽到功能,到底用MySQL還是Redis?

來源 | http://suo.im/5EWN3k今天,看下簽到功能怎么選擇?現在的網站和app開發中,簽到是一個很常見的功能,如微博簽到送積分,簽到排行榜~微博簽到如移動app ,簽到送流量等活動,移動app簽到用戶簽…

【Redis 6】緩存穿透、緩存雪崩、緩存擊穿(附解決方案、代碼)

各位小伙伴們大家好,歡迎來到這個小扎扎的Redis 6專欄,在這個系列專欄中我對B站黑馬的Redis教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Redis知識點速覽&#…

8軟件遇到的問題及解決方法_Excel工作表中的8個常見問題,你一定遇到過,附解決方法...

在Excel工作表中,最常用的還是一些技巧,如果能夠熟練掌握,對于工作效率的提高絕對不是一點點哦,結合工作實際,小編對工作中常見的問題進行了總結,一共有8類,你一定也遇到過……一、Excel工作表常…

unity著色器和屏幕特效開發秘笈_Oculus研發分享:開發移動VR內容時應避免的PC渲染技術...

查看引用/信息源請點擊:映維網開發移動VR內容時應避免的PC渲染技術(映維網 2019年11月25日)有不少開發者都是以與PC相同的方式來開發Quest游戲,但這可能會導致優化性能方面出現大量困難。Oculus軟件工程師特雷弗達什(T…

Java包裝類、java中的方法傳參機制:按值調用

各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺 💡涉及的知識點速通🛫 方法…

尤克里里怎么樣_尤克里里和吉他區別?尤克里里與吉他相比有什么不可替代的優勢...

尤克里里和吉他有什么區別?想必大家都見過尤克里里吧,就是類似吉他形狀的一種小型弦撥樂器。我們可以簡單的認為:尤克里里是簡化版本的吉他,更加簡單,更加便宜。小編彈的就是尤克里里2.從外觀上:吉他很大&a…

餓漢懶漢單例設計模式的使用及區別、java中的import關鍵字

各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺 💡涉及的知識點速通🛫 關于…

廣電運通不好進嗎_我可以說鄭州新風的安裝大部分都是垃圾嗎?

說鄭州的新風安裝都是垃圾,這話很無禮,很自大,很傲慢,但是我能說確實是這樣嘛?其實包括我以前安裝的也不合格——雖然我不是故意的。這幾年見過許多家同行安裝的新風,可以說目前見到的很多家都不合格&#…

Java迭代器和Collection接口

各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺 💡涉及的知識點速通🛫 關于…

atlas安裝需要kafka嗎_Atlas 2.1.0 實踐(2)—— 安裝Atlas

在完成Atlas編譯以后,就可以進行Atlas的安裝了。Atlas的安裝主要是安裝Atlas的Server端,也就Atlas的管理頁面,并確保Atlas與Kafka Hbase Solr等組件的集成。Atlas的系統架構如下,在確保 底層在完成Atlas編譯以后,就可以…

ue4中隱藏燈光和相機圖標_[HDRP]物理燈光是什么?科普向

HDRP拋棄了Bulitin的燈光,改用物理單位以及物理屬性。那么物理燈光到底是什么?請點贊評論來支持作者,提前祝大家新年快樂。https://connect.unity.com/p/hdrp-wu-li-deng-guang-shi-shi-yao-ke-pu-xiang?connect.unity.com同步更新unity con…

私鑰經過哈希計算可以產生公鑰_「區塊鏈基礎概念100」:公鑰和私鑰 | 027

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。小編:記得關注哦投資區塊鏈,猛戳:火星財經App下載來源:學習區塊鏈原文標題:「…