日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

静态Include和动态Include测试并总结

發(fā)布時(shí)間:2023/12/31 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 静态Include和动态Include测试并总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

v主要代碼

vhjzgg.css

.center-div{width:auto;margin-left: 40%;margin-right: 40%;display: block;position: absolute;top:0px;left:0px; }.text-div{margin-top: 80px; }.hjzgg-div{color:transparent;font-size:20px;font-weight: bold;letter-spacing:2px;-webkit-animation-duration: 3s;-webkit-animation-fill-mode: forwards;-webkit-animation-name: hjzgg-move;float:left; }.hjzgg-div-delay-1{-webkit-animation-delay: 1s; }.hjzgg-div-delay-2{-webkit-animation-delay: 2s; }.hjzgg-div-delay-3{-webkit-animation-delay: 3s; }.hjzgg-div-delay-4{-webkit-animation-delay: 4s; }.hjzgg-div-delay-5{-webkit-animation-delay: 5s; }.hjzgg-div-delay-6{-webkit-animation-delay: 6s; }@-webkit-keyframes hjzgg-move{from{margin-top: -35px;}to{margin-top: 10px;color:#000000;text-shadow: 2px 2px 3px #222222;} }

?

vcssTestOne.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>頁(yè)面包含</title> <link rel="stylesheet" type="text/css" href="css/hjzgg.css" /> <script>var x = "hjzgg_one"; </script> <style type="text/css">.my-p{color:red;font-size:40px;text-shadow: 2px 2px 3px #222222;text-align: center;} </style> </head> <%String x = "hjzgg_one"; %> <body><div class="center-div"><div class="hjzgg-div">CSS</div><div class="hjzgg-div hjzgg-div-delay-1"></div><div class="hjzgg-div hjzgg-div-delay-2"></div><div class="hjzgg-div hjzgg-div-delay-3"></div><div class="hjzgg-div hjzgg-div-delay-4"></div><div class="hjzgg-div hjzgg-div-delay-5">測(cè)</div><div class="hjzgg-div hjzgg-div-delay-6"></div></div><div class="text-div"><p class="my-p">大家好,我是HJZGG</p></div><%@include file="cssTestTwo.jsp" %><%-- 測(cè)試css樣式覆蓋<jsp:include page="cssTestTwo.jsp" flush="true"/><iframe src="cssTestTwo.jsp" style="width:100%;"></iframe> --%><script>alert("<%=x%>");</script> </body> </html>

?

效果圖:

vcssTestTwo.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>頁(yè)面包含</title> <script>var x = "hjzgg_two"; </script> <style type="text/css">/* .my-p{color:green;font-size:20px;text-align: center;} */ </style> </head> <%//測(cè)試java同名變量//String x = "hjzgg_one"; %> <body><div class="text-div"><p class="my-p">大家好,我是HJZGG</p></div><script>alert("<%=request.getParameter("hjzgg")%>");</script> </body> </html>

?

效果圖:

  

vcss覆蓋測(cè)試:

  執(zhí)行cssTestOne.jsp中的<%@include file="cssTestTwo.jsp" %> 或者?<jsp:include page="cssTestTwo.jsp" flush="true"/>,由于cssTestOne.jsp和cssTestTwo.jsp中都定義了.my-p的樣式,被包含進(jìn)來(lái)的頁(yè)面中定義的樣式會(huì)覆蓋主頁(yè)面的樣式。
如果不想造成樣式的混亂,最好還是將每個(gè)頁(yè)面的樣式區(qū)分開(kāi)來(lái)?;蛘咄ㄟ^(guò)執(zhí)行<iframe src="cssTestTwo.jsp" style="width:100%;"></iframe>,不會(huì)導(dǎo)致頁(yè)面的樣式的覆蓋。

?

vjs中同名變量問(wèn)題:

  首先在兩個(gè)文件<head></head>之間加入同名js變量x,例如:分別加入<script>var x = "hjzgg_one";</script>和<script>var x = "hjzgg_tow";</script>,?然后在主頁(yè)面中進(jìn)行如下操作:include前調(diào)用js的alert(x) 以及 include調(diào)用后的alert(x)。

  發(fā)現(xiàn)是可以允許有同名的js變量的,無(wú)論是<jsp:include page="cssTestTwo.jsp" flush="true"/>,還是<%@include file="cssTestTwo.jsp" %>。如果在include之前訪(fǎng)問(wèn)同名變量,則訪(fǎng)問(wèn)的主頁(yè)面的變量,否則訪(fǎng)問(wèn)的被包含頁(yè)面的變量。

?

vjava同名變量問(wèn)題:

  首先在兩個(gè)文件<head>和<body>之間加入同名java變量x,例如:分別加入<%String x =?"hjzgg_one";%>和<%String x =?"hjzgg_two";%>,然后分別調(diào)用<jsp:include page="cssTestTwo.jsp" flush="true"/>和<%@include file="cssTestTwo.jsp" %>。然后在include之后執(zhí)行alert("<%=x%>");

  發(fā)現(xiàn)在加入<%@include file="cssTestTwo.jsp" %>(靜態(tài)包含),編譯器就已經(jīng)通知有“變量重名的錯(cuò)誤”。而通過(guò)<jsp:include page="cssTestTwo.jsp" flush="true"/>(動(dòng)態(tài)包含)不僅不會(huì),而且正常運(yùn)行。

  分析一下:<%@include file="cssTestTwo.jsp" %>引入靜態(tài)文本,在JSP頁(yè)面被轉(zhuǎn)化成servlet之前和它融和到一起.先包含,后編譯,不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁(yè)面,可以理解為純粹是把代碼寫(xiě)在外面的一種共享方法,所有的變量都是可以和include它的主文件共享, 兩者高度緊密結(jié)合,不能有變量同名的沖突。而頁(yè)面設(shè)置也可以借用主文件的。 <jsp:include page="cssTestTwo.jsp" flush="true"/>引入執(zhí)行頁(yè)面或servlet所生成的應(yīng)答文本.?被包含的文件先編譯,后包含進(jìn)來(lái),然后顯示。

  為了驗(yàn)證上面的分析,首先找到這樣的一個(gè)目錄(即Tomcat jsp生成的java文件位置),先找到你的eclipse workspace,然后會(huì)有子目錄:.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost,在這個(gè)目錄里會(huì)看見(jiàn)你的項(xiàng)目目錄,例如我的項(xiàng)目目錄名是“cssTest”,然后一路的找下去,最終有一個(gè)名稱(chēng)為"jsp"的目錄(最終目錄:F:\eclipseEE_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\cssTest\org\apache\jsp),這里就是存放jsp轉(zhuǎn)成servlet(java文件)的地方。

?

v測(cè)試1

   將之前添加的各種變量語(yǔ)句統(tǒng)統(tǒng)去掉,?include語(yǔ)句也去掉, 并將剛才找到的目錄的文件刪除,接著在瀏覽器中訪(fǎng)問(wèn)cssTestOne.jsp這個(gè)頁(yè)面。目錄里多了兩個(gè)文件,如下圖所示:

?

  

v測(cè)試2

   再將目錄中的文件刪除,并在主頁(yè)面中加入<%@include file="cssTestTwo.jsp" %>,接著在瀏覽器中訪(fǎng)問(wèn)cssTestOne.jsp這個(gè)頁(yè)面。目錄中的內(nèi)容如下圖所示,注意,對(duì)應(yīng)文件的大小發(fā)生了變化。

?

v測(cè)試3

   再將目錄中的文件刪除,刪除<%@include file="cssTestTwo.jsp" %>,并在主頁(yè)面中加入<jsp:include page="cssTestTwo.jsp" flush="true"/>,接著在瀏覽器中訪(fǎng)問(wèn)cssTestOne.jsp這個(gè)頁(yè)面。目錄中的內(nèi)容如下圖所示,注意,目錄中多了被包含jsp的.class文件和.java文件。

?

v總結(jié):

  1.動(dòng)態(tài)include和靜態(tài)include都和include它的頁(yè)面的request范圍是一致。而<iframe>范圍不一致。

  2.動(dòng)態(tài)include和靜態(tài)include都允許有同名的js變量

  3.動(dòng)態(tài)include中允許有java的同名變量,而靜態(tài)include中不允許有java的同名變量。

v動(dòng)態(tài)INCLUDE

  說(shuō)明:它總是會(huì)檢查所含文件中的變化,適合用于包含動(dòng)態(tài)頁(yè)面,并且可以帶參數(shù),先編譯之后再進(jìn)行處理。?

原因:1、靜態(tài)include的結(jié)果是把其他jsp引入當(dāng)前jsp,兩者合為一體。?

2、靜態(tài)include純粹是把代碼寫(xiě)在外面的一種共享方法,所有的變量都是可以和include它的主文件共享,兩者高度緊密結(jié)合,不能有變量同名的沖突.而頁(yè)面設(shè)置也可以借用主文件的.

v靜態(tài)INCLUDE

  說(shuō)明:用include偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁(yè)面,直接將內(nèi)容先包含后處理。?

原因:1、動(dòng)態(tài)include的結(jié)構(gòu)是兩者獨(dú)立,直到輸出時(shí)才合并。?

2、動(dòng)態(tài)include的jsp文件獨(dú)立性很強(qiáng),是一個(gè)單獨(dú)的jsp文件,需要使用的對(duì)象,頁(yè)面設(shè)置,都必須有自己創(chuàng)建,當(dāng)然,還好它和include它的頁(yè)面的request范圍是一致的。?

?

v測(cè)試項(xiàng)目地址

  https://github.com/hjzgg/jspIncludeTest?(最好自己親手試一下,別怪我誤導(dǎo)了你哦!)










本文轉(zhuǎn)自 小眼兒 博客園博客,原文鏈接:http://www.cnblogs.com/hujunzheng/p/5051070.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的静态Include和动态Include测试并总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。