亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

              4. JSP常用標(biāo)簽 | 常用標(biāo)簽 常用 常用 常用!
              2022-05-31 17:18:27

              什么是JSP標(biāo)簽

              JSP標(biāo)簽,有的地方也叫做JSP動(dòng)作,在JSP中編寫(xiě)大量的java代碼會(huì)使JSP頁(yè)面顯得雜亂無(wú)章,看起來(lái)非常不舒服,因此JSP提供了一些類似html的標(biāo)簽,通過(guò)這些標(biāo)簽?zāi)軌蛱娲糠謏ava代碼實(shí)現(xiàn)功能。
              語(yǔ)法格式如下:

              <jsp:標(biāo)簽名稱?屬性名=屬性值?...?></jsp:標(biāo)簽名稱>

              ?

              <jsp:標(biāo)簽名稱?屬性名=屬性值?...?/>

              ?

              那么常用的JSP標(biāo)簽有哪兒些:

              在JSP中有很多JSP標(biāo)簽,但是常用的主要有下面兩個(gè):

              ?

              < jsp:forward>

              forward 是前進(jìn)的意思? 我們轉(zhuǎn)發(fā)的時(shí)候已經(jīng)見(jiàn)過(guò)了??!
              該標(biāo)簽的作用是把請(qǐng)求轉(zhuǎn)發(fā)給另外一個(gè)資源,頁(yè)面中使用該指令之后,當(dāng)前頁(yè)面中的所有要顯示的內(nèi)容都將無(wú)法顯示,因?yàn)闀?huì)直接轉(zhuǎn)發(fā)到了另一個(gè)頁(yè)面。

              創(chuàng)建一個(gè)index.jsp文件

               

              <%@?page?language="java"?contentType="text/html;?charset=UTF-8"
              ????pageEncoding="UTF-8"%>
              ????
              ?

              <!DOCTYPE?html>
              <html>
              <head>
              <meta?charset="UTF-8">
              <title>Insert?title?here</title>
              </head>
              <body>

              <%--?普通P標(biāo)簽?不會(huì)顯示!?因?yàn)橄旅嬗洲D(zhuǎn)發(fā)語(yǔ)句?只轉(zhuǎn)發(fā)請(qǐng)求頭喲~~?--%>
              <p>我是index中的p標(biāo)簽~~</p>

              <%--?請(qǐng)求頭設(shè)置屬性?--%>
              <%?request.setAttribute("name",?"Bi-Hu");?%>

              ????
              ????<%--?實(shí)現(xiàn)轉(zhuǎn)發(fā)功能!?--%>
              <jsp:forward?page="/jsp2.jsp"></jsp:forward>
              ????????
              </body>
              </html>

              jsp2.jsp:

              <%@?page?language="java"?contentType="text/html;?charset=UTF-8"
              ????pageEncoding="UTF-8"%>
              <!DOCTYPE?html>
              <html>
              <head>
              <meta?charset="UTF-8">
              <title>Insert?title?here</title>
              </head>
              <body>


              ????<p>
              ????我是?j?s?p?2?的?p?標(biāo)?簽?!?是的?這里沒(méi)有index頁(yè)面的內(nèi)容?除了我獲取的請(qǐng)求頭的name:
              ????</p>

              ????
              ????

              ????????<%--?獲取請(qǐng)求頭的Attribute?和?打印出來(lái)?~~?--%>
              ?????<%?String?attribute?=?(String)request.getAttribute("name");?%>
              ?????<%=?attribute?%>


              </body>
              </html>

              ?

              在代碼可以看到! 其實(shí)和轉(zhuǎn)發(fā)差不多沒(méi)兩樣~~~ JSP 聽(tīng)說(shuō)只有 轉(zhuǎn)發(fā) 沒(méi)有 重定向~

              接下來(lái)看第二個(gè):

              < jsp:include>

              這就是動(dòng)態(tài)包含了! 之前學(xué)了靜態(tài)的 靜態(tài)會(huì)何為一個(gè)java文件 而!動(dòng)態(tài)不會(huì)! 所以他會(huì)有這些特性:

              該標(biāo)簽用于把另外一個(gè)文件引入到當(dāng)前JSP里面,這種引入方式叫做動(dòng)態(tài)引入:

              我們寫(xiě)一個(gè)s1.jsp? 和? s2.jsp ,然后都在里面寫(xiě):

              s1.jsp:

              ?

              <%@?page?language="java"?contentType="text/html;?charset=UTF-8"
              ????pageEncoding="UTF-8"%>
              <!DOCTYPE?html>
              <html>
              <head>
              <meta?charset="UTF-8">
              <title>Insert?title?here</title>
              </head>
              <body>

              <%--?我們?cè)谶@里動(dòng)態(tài)包含s2.jsp:?然后分別打印s1?和?s2?中的?打印sum:
              ?????還是那句話?,引入和調(diào)用的內(nèi)個(gè)順序別弄混?最好就在頭部就包含好!【動(dòng)態(tài)無(wú)關(guān)緊要?靜態(tài)包含就要注意!】
              ?--%>
              ????
              ????<jsp:include?page="/s2.jsp"></jsp:include>
              ????
              ????<%--?打印sum?--%>
              ????
              ????<%?int?sum?=?100;?%>
              ????
              ????<%=?"第一次打印?s1?的?SUM:?"?+?sum?%>
              ????<br>
              ????<%=?"第二次打印?s1?的?SUM:"?+?sum?%>
              </body>
              </html>

              ?

              ?

              ?

              s2.jsp:

              ?

              <%@?page?language="java"?contentType="text/html;?charset=UTF-8"
              ????pageEncoding="UTF-8"%>
              <!DOCTYPE?html>
              <html>
              <head>
              <meta?charset="UTF-8">
              <title>Insert?title?here</title>
              </head>
              <body>
              ????
              ????<%?int?sum?=?200;?%>
              ????<br>
              ????<%="s2的sum:"?+??sum?%>
              ????<br>
              </body>
              </html>

              ?

              ?

              所以呢: 總結(jié)出: 動(dòng)態(tài)應(yīng)用 他的文件是分開(kāi)的 不合體了 ,即就是說(shuō) 變量是獨(dú)立的了 自己文件的變量只能自己文件使用!

              打開(kāi)生成java文件的目錄可以看到,生成了兩個(gè)jsp文件,分別是s1.java和s2.java
              可以得出結(jié)論,該指令的引入是在運(yùn)行期完成的,而非在編譯期。這個(gè)引入指令,是在程序運(yùn)行過(guò)程中,由 index_jsp 文件中的_jspService()方法通過(guò) JspRuntimeLibrary 類的 include()方法調(diào)用了 left_jsp 文件中的_jspService()方法。在運(yùn)行期所執(zhí)行的這種引入,稱為動(dòng)態(tài)引入。

              ?

              ? ? ?org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/s2.jsp", out, false);

              就是這句了 ↑↑↑↑↑↑↑↑↑↑↑↑

              ?

              動(dòng)態(tài)引用和靜態(tài)引用的區(qū)別:

              動(dòng)態(tài)引入和靜態(tài)引入的區(qū)別

              靜態(tài)引入:

              <%@?include?file="/xxx.jsp"?%>

              ?

              靜態(tài)引入會(huì)生成一個(gè)java文件,兩個(gè)jsp文件中可以共享同一個(gè)變量,但不能定義重名的變量。

              動(dòng)態(tài)引入:

              <jsp:include?page="/xxx.jsp"/>

              動(dòng)態(tài)引入會(huì)生成兩個(gè)java文件,兩個(gè)jsp文件中不可以共享同一個(gè)變量,可以定義重名的變量。

              在靜態(tài)引入與動(dòng)態(tài)引入均可使用時(shí),一般使用靜態(tài)引入。因?yàn)樵诔绦蜻\(yùn)行時(shí)只存在一個(gè)Servlet,對(duì)資源的消耗較少,且不存在調(diào)用問(wèn)題,執(zhí)行效率較高。

              ?


              作者:??咸瑜??


              本文摘自 :https://blog.51cto.com/u

              開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >