亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

<jsp:include>和<%@include%>的區別,JSP動態include和靜態include的區別

2024-04-27 15:06:28
字體:
來源:轉載
供稿:網友

http://www.jb51.net/article/43304.htm

動態INCLUDE 

用法:<jsp:include page="included.jsp" flush="true" /> 說明:它總是會檢查所含文件中的變化,適合用于包含動態頁面,并且可以帶參數,先編譯之后再進行處理。 原因:1、靜態include的結果是把其他jsp引入當前jsp,兩者合為一體。 2、靜態include純粹是把代碼寫在外面的一種共享方法,所有的變量都是可以和include它的主文件共享,兩者高度緊密結合,不能有變量同名的沖突.而頁面設置也可以借用主文件的. 靜態INCLUDE 用法:<%@ include file="included.htm" %> 說明:用include偽碼實現,不會檢查所含文件的變化,適用于包含靜態頁面,直接將內容先包含后處理。 原因:1、動態include的結構是兩者獨立,直到輸出時才合并( 看看jsp生成的java文件就可以知道了)。 2、動態include的jsp文件獨立性很強,是一個單獨的jsp文件,需要使用的對象,頁面設置,都必須有自己創建,當然,還好它和include它的頁面的request范圍是一致的。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

http://blog.csdn.net/yangbobo1992/article/details/8085667

<%@include%>:頁面請求之前預編譯,所有代碼包含進來之后,一起進行處理,把所有代碼合在一起,編譯成一個servlet

<jsp:include>:所有代碼分別處理,在頁面被請求的時候才編譯,被編譯成多個servlet,頁面語法相對獨立,處理完成之后再將代碼的顯示結果(處理結果)組合進來。

JSP中的兩種包含頁面的方法第一種:include指令:當JSP轉換成Servlet時引入指定文件

<%@ pagecontentType="text/html;charset=GB2312" language="Java"errorPage=""%><%@ include file="head.jsp"%><%@ include file="body.jsp"%><%@ include file="tail.jsp"%>第二種:<jsp:include>動作元素:當JSP頁面被請求時引入指定文件<%@ page contentType="text/html; charset=GB2312"language="java" errorPage=""%><jsp:include page="head.jsp"/><jsp:include page="body.jsp"/><jsp:include page="tail.jsp"/>第二種方法可以很方便的用<jsp:param>來向所包含頁傳遞參數,方法如下:<%@ page contentType="text/html; charset=GB2312"language="java" errorPage=""%><jsp:include page="head.jsp"/><jsp:includepage="body.jsp"><jsp:param name="uid"value="username"/><jsp:param name="pwd"value="passWord"/></jsp:include><jsp:includepage="tail.jsp"/>

<jsp:include> :動態包含

 

第一種情況(<jsp:include>包含的是html文件):

DynamicInclude.jsp:

<%@pagecontentType="text/html;charset=gb2312"%><html>         <head>                   <title>動態包含</title>         </head>         <bodystyle="background-color:lightblue">                    <jsp:include page="header.html"flush="true"/><!--動態包含-->                    <tableborder="1" align="center">                            <tr>                                     <td>姓名</td><td>性別</td><td>年齡</td><td>愛好</td>                            </tr>                            <tr>                                     <td>a</td><td>b</td><td>c</td><td>d</td>                            </tr>                   </table>         </body></html>

 

Header.html :

<h2style="font-family:arial;color:red;font-size:25px;text-align:center">         動態包含的標題(HTML)</h2>

 

運行之后,只生成一個servlet,和上面的代碼對應如下:

  out.write("/r/n");     out.write("<html>/r/n");     out.write("/t<head>/r/n");     out.write("/t/t<title>動態包含</title>/r/n");     out.write("/t</head>/r/n");     out.write("/t<bodystyle=/"background-color:lightblue/">/r/n");     out.write("/r/n");     out.write("/t/t");     <span style="color:#ff0000;">org.apache.jasper.runtime.JsPRuntimeLibrary.include(request,response, "header.html", out, true);</span>     out.write("<!--動態包含-->/r/n");     out.write("/r/n");     out.write("/t/t<table border=/"1/"align=/"center/">/r/n");     out.write("/t/t/t<tr>/r/n");     out.write("/t/t/t/t<td>姓名</td><td>性別</td><td>年齡</td><td>愛好</td>/r/n");     out.write("/t/t/t</tr>/r/n");     out.write("/t/t/t<tr>/r/n");     out.write("/t/t/t/t<td>a</td><td>b</td><td>c</td><td>d</td>/r/n");     out.write("/t/t/t</tr>/r/n");     out.write("/t/t</table>/r/n");     out.write("/t</body>/r/n");     out.write("</html>");

 

第二種情況(<jsp:include>包含的是jsp文件):

DynamicInclude.jsp:

<%@pagecontentType="text/html;charset=gb2312"%><html>         <head>                   <title>動態包含</title>         </head>         <bodystyle="background-color:lightblue">                    <jsp:include page="header.jsp"flush="true"/><!--動態包含-->                    <tableborder="1" align="center">                            <tr>                                     <td>姓名</td><td>性別</td><td>年齡</td><td>愛好</td>                            </tr>                            <tr>                                     <td>a</td><td>b</td><td>c</td><td>d</td>                            </tr>                   </table>         </body></html>

Header.jsp :

<%@pagecontentType="text/html;charset=gb2312"%><html>         <body>                   <h2style="font-family:arial;color:red;font-size:25px;text-align:center">                            動態包含的標題(JSP)                   </h2>         </body></html>

運行之后,生成了兩個servlet:DynamicInclude_jsp.java和header_jsp.java,這也是為什么 Header.jsp中要寫上<%@page contentType="text/html;charset=gb2312"%>和完整的<html></html>和<body></body>,而Header.html不用寫的原因。因為前者兩個.jsp文件是兩個相互獨立的整體,它們之間的關系是通過request和reponse來發生的,而后者只是簡單的嵌套。兩個servlet對應的代碼如下:

DynamicInclude_jsp.java:

     out.write("/r/n");     out.write("<html>/r/n");     out.write("/t<head>/r/n");     out.write("/t/t<title>動態包含</title>/r/n");     out.write("/t</head>/r/n");     out.write("/t<bodystyle=/"background-color:lightblue/">/r/n");     out.write("/r/n");     out.write("/t/t");     <span style="color:#ff0000;">org.apache.jasper.runtime.JspRuntimeLibrary.include(request,response, "header.jsp", out, true);</span>     out.write("<!--動態包含-->/r/n");     out.write("/r/n");     out.write("/t/t<table border=/"1/"align=/"center/">/r/n");     out.write("/t/t/t<tr>/r/n");     out.write("/t/t/t/t<td>姓名</td><td>性別</td><td>年齡</td><td>愛好</td>/r/n");     out.write("/t/t/t</tr>/r/n");     out.write("/t/t/t<tr>/r/n");     out.write("/t/t/t/t<td>a</td><td>b</td><td>c</td><td>d</td>/r/n");     out.write("/t/t/t</tr>/r/n");     out.write("/t/t</table>/r/n");     out.write("/t</body>/r/n");     out.write("</html>");

header_jsp.java:    

     out.write("/r/n");     out.write("<html>/r/n");     out.write("/t<body>/r/n");     out.write("/t/t<h2 style=/"font-family:arial;color:red;font-size:25px;text-align:center/">/r/n");     out.write("/t/t/t動態包含的標題(JSP)/r/n");     out.write("/t/t</h2>/r/n");     out.write("/t</body>/r/n");     out.write("</html>");

 

<%@include%>:靜態包含

第一種情況:<%@include%>包含的是jsp文件。

StaticInclude.jsp:

<%@pagecontentType="text/html;charset=gb2312"%><html>         <head>                   <title>靜態包含</title>         </head>         <bodystyle="background-color:lightblue">                    <%@include file="header.jsp"%><!--靜態包含-->                   <tableborder="1" align="center">                            <tr>                                     <td>姓名</td><td>性別</td><td>年齡</td><td>愛好</td>                            </tr>                            <tr>                                     <td>a</td><td>b</td><td>c</td><td>d</td>                            </tr>                   </table>         </body></html>

header.jsp:

<%@pagecontentType="text/html;charset=gb2312"%><h2style="font-family:arial;color:red;font-size:25px;text-align:center">         靜態包含的標題(JSP)</h2>

 

運行之后,只生成一個servlet,和上面的代碼對應如下:

 out.write("/r/n");     out.write("<html>/r/n");     out.write("/t<head>/r/n");     out.write("/t/t<title>靜態包含</title>/r/n");     out.write("/t</head>/r/n");     out.write("/t<body style=/"background-color:lightblue/">/r/n");     out.write("/r/n");     out.write("/t/t");     out.write("/r/n");     <span style="color:#ff0000;">out.write("<h2style=/"font-family:arial;color:red;font-size:25px;text-align:center/">/r/n");     out.write("/t靜態包含的標題(JSP)/r/n");     out.write("</h2>");</span>     out.write("<!--靜態包含-->/r/n");     out.write("/t/t<table border=/"1/"align=/"center/">/r/n");     out.write("/t/t/t<tr>/r/n");     out.write("/t/t/t/t<td>姓名</td><td>性別</td><td>年齡</td><td>愛好</td>/r/n");     out.write("/t/t/t</tr>/r/n");      out.write("/t/t/t<tr>/r/n");     out.write("/t/t/t/t<td>a</td><td>b</td><td>c</td><td>d</td>/r/n");     out.write("/t/t/t</tr>/r/n");     out.write("/t/t</table>/r/n");     out.write("/t</body>/r/n");     out.write("</html>");

 

第二種情況:<%@include%>包含的是html文件。

StaticInclude.jsp:

<%@pagecontentType="text/html;charset=gb2312"%><html>         <head>                   <title>靜態包含</title>         </head>         <bodystyle="background-color:lightblue">                    <%@include file="header.html"%><!--靜態包含-->                   <tableborder="1" align="center">                            <tr>                                     <td>姓名</td><td>性別</td><td>年齡</td><td>愛好</td>                            </tr>                            <tr>                                     <td>a</td><td>b</td><td>c</td><td>d</td>                            </tr>                   </table>         </body></html>

header.html:

<%@pagecontentType="text/html;charset=gb2312"%><h2style="font-family:arial;color:red;font-size:25px;text-align:center">         靜態包含的標題(HTML)</h2>

運行之后,也是只生成一個servlet,和上面的代碼對應如下:

 out.write("/r/n");     out.write("<html>/r/n");     out.write("/t<head>/r/n");     out.write("/t/t<title>靜態包含</title>/r/n");     out.write("/t</head>/r/n");     out.write("/t<bodystyle=/"background-color:lightblue/">/r/n");     out.write("/r/n");     out.write("/t/t");     out.write("/r/n");     <span style="color:#ff0000;">out.write("<h2style=/"font-family:arial;color:red;font-size:25px;text-align:center/">/r/n");     out.write("/t靜態包含的標題(HTML)/r/n");     out.write("</h2>");</span>     out.write("<!--靜態包含-->/r/n");     out.write("/t/t<table border=/"1/"align=/"center/">/r/n");     out.write("/t/t/t<tr>/r/n");     out.write("/t/t/t/t<td>姓名</td><td>性別</td><td>年齡</td><td>愛好</td>/r/n");     out.write("/t/t/t</tr>/r/n");     out.write("/t/t/t<tr>/r/n");     out.write("/t/t/t/t<td>a</td><td>b</td><td>c</td><td>d</td>/r/n");     out.write("/t/t/t</tr>/r/n");     out.write("/t/t</table>/r/n");     out.write("/t</body>/r/n");     out.write("</html>");

 

由上可以總結出:

對于靜態包含,<%@include%>,中包含的文件,只是簡單的嵌入到主文件中,就是在jsp頁面轉化成Servlet時才嵌入到主文件中,因為運行的結果是只生成了一個Servlet。

而對于動態包含<jsp:incude>,如果被包含文件是動態的,那么就會生成兩個Servlet,也就是被包含文件也要經過jsp引擎編譯執行生成一個Servlet,兩個Servlet通過request和reponse進行通信。如果被包含的文件是靜態的,那么這種情況和<%@include>就很相似,只生成了一個Servlet,但是他們之間沒有進行簡單的嵌入,而依然是通過request和reponse進行的通信。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品av电影| 欧洲亚洲妇女av| 国产成人免费av| 亚洲女人天堂视频| 国产精品久久久久免费a∨| 亚洲一区二区三区在线免费观看| 美日韩精品免费观看视频| 欧美性高跟鞋xxxxhd| 久久久亚洲精选| 精品丝袜一区二区三区| 亚洲一区二区三区视频播放| 亚洲国产精品高清久久久| 91精品美女在线| 亚洲一区二区三区乱码aⅴ| 欧美乱大交xxxxx| 国产精品自拍小视频| 亚洲国产成人精品久久久国产成人一区| 中文字幕欧美精品在线| 国产精品中文字幕久久久| 欧美精品videos| 136fldh精品导航福利| 国产一区二区三区直播精品电影| 欧美人与性动交| 国产+人+亚洲| 亚洲精品丝袜日韩| 26uuu日韩精品一区二区| 亚洲精品国产精品国产自| 欧美亚洲视频在线看网址| 国产69精品久久久久99| 精品一区精品二区| 欧美中文字幕在线| 神马国产精品影院av| 中文字幕亚洲天堂| 成人国产精品一区| 97国产精品视频| 一区二区在线视频播放| 精品一区二区亚洲| 亚洲国内高清视频| 欧美一级视频在线观看| 91精品国产九九九久久久亚洲| 国外视频精品毛片| 国产精品极品美女粉嫩高清在线| 欧美日韩国产丝袜美女| 亚洲人成电影在线播放| 欧美高跟鞋交xxxxhd| 亚洲国产欧美一区| 国产成人精品电影| 久久91超碰青草是什么| 国产福利精品在线| 欧美成人精品在线观看| 久久久久中文字幕2018| 中文字幕日韩精品在线观看| 中文字幕欧美专区| 国产精品一区二区性色av| 欧美怡春院一区二区三区| 亚洲欧美成人一区二区在线电影| 欧美二区在线播放| 一本色道久久88亚洲综合88| 亚洲白虎美女被爆操| 69精品小视频| 国产91色在线| 欧美性猛交xxxx乱大交| 欧美成人在线免费视频| 国产精品91久久| 欧美乱大交做爰xxxⅹ性3| 亚洲国产美女久久久久| 成人国产精品色哟哟| 欧美日韩免费网站| 中文字幕日韩在线视频| 91久久精品国产| 久久国产精品久久久久| 亚洲第一区在线| 欧美高清自拍一区| 国产精品久久久久aaaa九色| 久久免费在线观看| 欧美黑人一级爽快片淫片高清| 欧洲精品毛片网站| 蜜月aⅴ免费一区二区三区| 国产视频在线观看一区二区| 欧美激情免费在线| 亚洲日本欧美中文幕| 日韩av在线不卡| 欧美日韩在线影院| 国产999精品久久久影片官网| 日韩欧美aaa| 欧美性少妇18aaaa视频| 国产日本欧美一区二区三区在线| 久久久久久噜噜噜久久久精品| 亚洲精品自拍第一页| 成人免费看片视频| 欧美裸身视频免费观看| 国产精品视频专区| 美女久久久久久久久久久| 久久综合国产精品台湾中文娱乐网| 色综合伊人色综合网| 亚洲欧洲一区二区三区久久| 日韩亚洲国产中文字幕| 欧美xxxx18国产| 国产福利视频一区二区| 久久久久久com| 久久久国产精品视频| 亚洲精品国精品久久99热一| 欧美日韩午夜激情| 日韩在线观看免费全集电视剧网站| 亚洲系列中文字幕| 国产精品欧美一区二区三区奶水| 亚洲天堂精品在线| 黄色精品一区二区| 国产精品男人爽免费视频1| 色先锋久久影院av| 成人免费大片黄在线播放| 亚洲欧美制服第一页| 亚洲专区在线视频| 高清欧美一区二区三区| 海角国产乱辈乱精品视频| 欧美自拍视频在线观看| 国产成人福利网站| 欧美激情一二区| 综合av色偷偷网| 91欧美日韩一区| 欧美午夜www高清视频| 亚洲视频一区二区| 国产成人精品亚洲精品| 国产成人高潮免费观看精品| 大量国产精品视频| 日本精品久久久久久久| 欧美丝袜美女中出在线| 最近2019中文字幕在线高清| 欧美在线播放视频| 欧美成人在线网站| 2024亚洲男人天堂| 精品免费在线观看| 欧美亚洲第一区| 久久99久久99精品免观看粉嫩| 中文字幕在线视频日韩| 成人精品视频99在线观看免费| 欧美在线国产精品| 成人性生交大片免费观看嘿嘿视频| 国内精品国产三级国产在线专| 秋霞成人午夜鲁丝一区二区三区| 亚洲欧美中文字幕| 久久久国产精彩视频美女艺术照福利| 91欧美精品成人综合在线观看| 国产精品黄色影片导航在线观看| 国产欧美一区二区三区久久人妖| 日韩大片免费观看视频播放| 欧美激情一区二区久久久| 成人免费直播live| 夜夜躁日日躁狠狠久久88av| 疯狂做受xxxx高潮欧美日本| 一本色道久久综合狠狠躁篇的优点| 国产精品专区h在线观看| 91理论片午午论夜理片久久| 国产亚洲精品综合一区91| 欧美日韩午夜激情| 日韩av中文字幕在线免费观看| 欧美裸体xxxx极品少妇软件| 91牛牛免费视频| 久久久噜久噜久久综合| 欧美日韩xxx| 777午夜精品福利在线观看| 欧美裸身视频免费观看| 欧美大片网站在线观看| 欧美一区在线直播|