jsp動態包含於靜態包含

1、靜態包含指令<%@include file=「fileurl」%>

一、兩個jsp頁面的<%@page contentType=「text/html;charset=gbk」%>應該保持一致html

二、不能經過fileurl向被包含的jsp頁面傳遞參數,由於此靜態包含是發生在jsp頁面轉換爲servlet的轉 換期間,此時的參數是服務器端設置的死的參數,徹底沒有通過客戶端,這種參數是沒有意義的,如<%@include  file=「fileurl?user=admin」%>,並且此時會報錯。服務器

三、包含的jsp頁面與被包含的jsp頁面共用一個request內置對象。jsp

      好比說在客戶端訪問包含頁面時地址欄後面直接加上參數後傳遞,這種形式的傳參是客戶端送來的,兩個頁面都可以訪問此參數。咱們能夠經過這兩個頁面合成的servlet中能夠看到有傳遞的參數成爲servlet的成員變量。url

四、包含的jsp頁面與被包含的jsp頁面最好沒有重複的html標籤。不然會發生覆蓋現象。spa

2、動態包含<jsp :include page=「a.jsp」/>與靜態包含<%@include  file=「fileurl」%>的區別

1.動態包含用的元素是page,並且有兩種形式。靜態包含用的是file,只有一種形式。.net

2.生成的文件不一樣,靜態的包含是將兩個jsp文件二合一,生成一個以包含頁面命名的servlet和class文件,動態包含的兩個jsp文件各自生成本身的servlet和class文件。htm

3. 傳參方式一:<jsp:include page=「a.jsp?param=123」/>時被包含的jsp頁面是能夠訪問該參數的。對象

4. 傳參方式二:get

            <jsp:include page=「a.jsp」>servlet

                     <jsp:param name=「」 value=「」>

                    <jsp:param name=「」 value=「」>

           </ jsp:include >

5.在客戶端訪問包含頁面時地址欄後面直接加上參數後傳遞,這種形式的傳參是客戶端送來的,可是這兩個頁面的request對象不是同一個,由於3已經說了包含的頁面能夠向被包含的頁面傳遞參數,因此被包含的request對象含的參數個數應該大於等於包含頁面的參數個數的。因此它們各有各的request對象。並且被包含的jsp頁面能夠訪問傳到包含頁面的參數。

6.動態包含只有在執行到它的時候才加載,因此它才叫動態包含。

相關文章
相關標籤/搜索