Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 激情小说网站,亚洲一区二区在线,自拍偷在线精品自拍偷无码专区

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          你知道的不一定是最好的,Java學(xué)習(xí)JSP知識點總結(jié)

          、JSP的本質(zhì)就是servlet.

          JSP運行規(guī)則:先轉(zhuǎn)化成Java文件,然后編譯成class文件,最后才可以執(zhí)行。

          了解了servlet之后,好多JSP的知識可以從JSP翻譯后的Java文件中看出。

          JSP頁面轉(zhuǎn)化為Java文件后所在的位置:

          Eclipse的工作目錄下的

          .metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Demo0808\org\apache\jsp

          二、JSP中的Java代碼段

          介紹下我自己的Java學(xué)習(xí)群:548511899,不管你是小白還是大牛,小編我都挺歡迎,不定期分享干貨,包括我自己整理的一份2017最新的Java資料和零基礎(chǔ)到學(xué)成出山的全套教程,歡迎所有喜歡Java的小伙伴。

          JSP中的代碼片段,翻譯到Servlet的方法中,所以可以寫Java方法中允許的代碼,

          不能寫訪問標識符等在方法中都不允許的代碼。

          腳本中的代碼要保持結(jié)構(gòu)完整,可以分開寫到兩個腳本中,比如:

          <% for(int I = 0; I < 10; I ++){ %> hello <% } %>

          Java片段翻譯為Servlet的時候是按照從上向下的順序的。

          三、JSP注釋

          JSP注釋:在JSP源碼界面可見,Java文件中不可見,頁面源碼中不可見。

          HTML注釋:在各個界面都可見。

          Java注釋,只有在頁面源碼中不可見

          四、JSP指令

          1.page指令

          • language屬性:指示當前的JSP頁面會被翻譯成何種語言。

          • ContentType:指定瀏覽器的編碼方式,瀏覽器使用。

          • pageEncoding:指定當前頁面的編碼方式,供瀏覽器使用。

          • autoFlush:是否自動刷新,默認true.

          • errorPage:當前頁面發(fā)生錯誤后,轉(zhuǎn)發(fā)到的頁面,地址欄不變化。

          • buffer:緩沖的大小

          • isErrorPage:指定當前頁面是否為錯誤頁面,默認是false,此時內(nèi)置對象Exception不可用。true的時候才可以使用。

          • isELIgnored:是否忽略El表達式,默認不忽略。

          2.include靜態(tài)加載。

          被包含頁面的代碼完全加到目標頁面中,轉(zhuǎn)化為Java文件的時候只轉(zhuǎn)化目標頁面,被包含頁面在Java文件中也有輸出。

          file屬性

          五、JSP動作標簽

          最終會被翻譯成Java代碼執(zhí)行。(Java學(xué)習(xí)交流群 548511899)

          1.forword標簽:

          只有page屬性。此時路徑是相對于服務(wù)器端的。轉(zhuǎn)發(fā)。 這個標簽可以訪問WEB-INF目錄下的文件 不帶參數(shù)其實標簽和結(jié)束標簽不可以分開。 可以通過param傳遞參數(shù)。

          2.include標簽:

          和指令相比,為動態(tài)包含,被包含界面和杰界面都生成Java文件和class文件

          3.tablib標簽

          引入jstl時使用

          六、web的四大域?qū)ο螅?/h1>

          pageContext(page域):作用范圍是整個JSP頁面,是四大作用域中最小的一個;生命周期是當對JSP的請求時開始,當響應(yīng)結(jié)束時銷毀。

          Request:作用范圍是整個請求鏈(請求轉(zhuǎn)發(fā)也存在);生命周期是在service方法調(diào)用前由服務(wù)器創(chuàng)建,傳入service方法。整個請求結(jié)束,request生命結(jié)束。

          Session:作用范圍是一次會話。

          servletContext(application域):作用范圍是整個Web應(yīng)用。當Web應(yīng)用被加載進容器時創(chuàng)建代表整個web應(yīng)用的ServletContext對象,當服務(wù)器關(guān)閉或Web應(yīng)用被移除時,ServletContext對象跟著銷毀。

          四個域的作用域范圍大小:PageContext (page域) < request < session < servletContext(application域)

          sp

          1 什么是JSP

          Java Server Pages : Java服務(wù)器端頁面,也和Servlet一樣,用于動態(tài)web技術(shù)!

          最大的特點:

          寫Jsp就像寫HTML

          區(qū)別:

          HTML只給用戶提供靜態(tài)的數(shù)據(jù)

          JSP頁面中可以嵌套Java代碼,為用戶提供動態(tài)數(shù)據(jù)

          2 jSP原理

          思路: JSP到底怎么執(zhí)行的!

          代碼層面沒有任何問題

          服務(wù)器內(nèi)部 工作

          tomcat 中有一個work目錄

          idea中使用tomcat會在idea中產(chǎn)生一個work目錄

          這個是 idea tomcat的工作空間

          路徑:

          瀏覽器向服務(wù)器發(fā)送請求,不管訪問什么資源,起始都是在訪問Servlet

          JSP最終也會被轉(zhuǎn)換成為一個Java類

          JSP本質(zhì)上就是一個Servlet

          1.判斷請求

          2.內(nèi)置對象

          3.輸出頁面前增加的代碼

          以上的這些個對象我們可以在JSP頁面中直接使用

          jsp原理圖

          在JSP頁面中;

          只要是Java代碼就會原封不動的輸出

          如果是HTML代碼,就會被轉(zhuǎn)換

          這樣的格式,輸出到前端

          3 JSP基礎(chǔ)語法

          任何語言都有自己的語法,Java中有,JSP作為Java技術(shù)的一種應(yīng)用,它擁有一些自己的擴容的語法,Java所有語法都支持

          JSP表達式

          述(最多18字

          jsp 腳本片段

          腳本片段的實現(xiàn)

          JSP聲明

          JSP聲明: 會被編譯到JSP生成Java類中! 其他的,就會被生成到 _jspService 方法中

          在JSP中嵌入Java代碼即可

          jsp的注釋,不會在客戶端顯示,HTML就會

          4 JSP指令

          總結(jié):

          在實際開發(fā)中建議使用 下面 jsp:include/的方式

          如果使用上面那一種的話 如果在header.jsp或者在footer.jsp中聲明了 int a=1; 又在當前jsp中聲明了相同的變量 在jsp頁面不會報錯,去了瀏覽器里面 就報錯了。

          所以建議使用 jsp標簽 進行頁面拼接

          5 九大內(nèi)置對象

          >PageContext 存東西

          >Request 存東西

          >Response

          >Session 存東西

          >Application 【ServletContext 】 存東西

          >config 【ServletConfig】

          >out

          >page

          >exception

          equest:客戶端向服務(wù)器發(fā)送請求,產(chǎn)生的數(shù)據(jù),用戶看完了就沒作用了,比如:新聞 用戶看完了沒作用了。

          session:客戶端向服務(wù)器發(fā)送請求,產(chǎn)生的數(shù)據(jù),用戶用完了一會還有用,比如:購物車;

          application:客戶端向服務(wù)器發(fā)送請求,產(chǎn)生的數(shù)據(jù),一個用戶用完了,其他用戶還可能使用:比如:聊天數(shù)據(jù)

          6 JSP標簽 JSTL標簽 EL表達式

          開始之前導(dǎo)入所學(xué)的依賴

          EL表達式: ${ }

          >獲取數(shù)據(jù)

          >執(zhí)行運算

          >獲取web開發(fā)的常用對象

          JSP 標簽

          發(fā)送:

          接收:

          JSTL 表達式

          JSTL表達式的使用就是為了彌補HTML標簽的不足;它自定義許多標簽,供我們使用,標簽的功能和Java代碼一樣

          核心標簽

          JSTL 標簽庫使用步驟

          引入對應(yīng)的taglib

          使用其中的方法

          在Tomcat也需要引入jstl的包,否則會報錯

          c:if

          c:choose c:when

          c:forEach

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

          一、Java初級開發(fā)之jsp概述

          1.關(guān)于jsp

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

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

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

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

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

          3.jsp與servlet的選擇

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

          ?二、JSP技術(shù)詳解

          1.JSP腳本

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

          1) <% java代碼 %>

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

          2) <% java代碼 %>

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

          3) <% java代碼 %>

          聲明成員變量。

          4)jsp的注釋方式

          · html的注釋:

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

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

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

          · jsp的注釋:

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

          2.三大指令

          1)page指令

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

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

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

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

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

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

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

          404

          /error.jsp

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

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

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

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

          3)taglib指令:標簽庫

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

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

          1) pageContext

          (1)pageContext作為域?qū)ο?/p>

          · 描述當前page的上下文。那么pageContext對象是一個域?qū)ο螅^域?qū)ο螅褪翘峁┝艘粋€區(qū)域,用來存儲數(shù)據(jù)。因此當前的page就能向pageContext對象中存儲數(shù)據(jù).

          pageContext域?qū)ο蟮淖饔梅秶寒斍皃age(頁面)

          setAttribute(String key,Object value);

          getAttribute(String key);

          removeAttribute(String key);

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

          pageContext.setAttribute(String key,Object value, int scope);向其他域?qū)ο笾写嬷?/p>

          pageContext.getAttribute(String key, int scope);向其他域?qū)ο笾腥≈?/p>

          pageContext.removeAttribute(String key, int scope);向其他域?qū)ο笾幸瞥?/p>

          int scope來自于PageContext類的常量

          REQUEST_SCOPE: 表示request域

          SESSION_SCOPE: 表示session域

          APPLICATION_SCOPE: 表示application域

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

          搜索的順序:

          pageContext->request->session->application

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

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

          2)request

          作用范圍:一次請求

          3)session

          作用范圍:一次會話

          4)application

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

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

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

          · out: 輸出流

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

          1)out對象被銷毀

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

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

          · pageContext:重點,表示當前page的上下文對象,也是一個域?qū)ο?/p>

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

          · request:

          · response

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

          · application: 實際就是ServletContext對象

          · config:實際就是ServletConfig對象

          5.Jsp標簽

          1) jsp:include

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

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

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

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

          2)jsp:forward

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


          主站蜘蛛池模板: 五月婷婷一区二区| 韩国一区二区三区| 日本福利一区二区| 久久国产精品视频一区| 日本美女一区二区三区| 日本一区免费电影| 精品亚洲A∨无码一区二区三区| 中文字幕在线精品视频入口一区| 久久国产高清一区二区三区 | 久久国产精品一区| 国产日韩精品一区二区在线观看播放 | 麻豆AV无码精品一区二区 | 蜜芽亚洲av无码一区二区三区| 精品视频一区二区三区免费 | 午夜一区二区免费视频| 欧美日韩精品一区二区在线观看| 亚洲AV成人一区二区三区观看| 免费无码VA一区二区三区| 韩国一区二区视频| 国产三级一区二区三区| 国产综合无码一区二区三区| 无遮挡免费一区二区三区| 精品少妇一区二区三区视频| 最美女人体内射精一区二区| 亚洲日韩激情无码一区| 中日韩精品无码一区二区三区| 国产日韩综合一区二区性色AV| 久久精品国产一区二区| 久久精品一区二区三区AV| 国产成人精品日本亚洲专一区| 日韩在线一区二区三区视频| 岛国精品一区免费视频在线观看 | 精品人妻AV一区二区三区| 亲子乱av一区区三区40岁| 国模极品一区二区三区| 美女视频一区二区| AV无码精品一区二区三区| 久久国产香蕉一区精品| 女同一区二区在线观看| 国产精品无码一区二区三级| 无码人妻久久久一区二区三区|