JSP靜態導入與動態導入

JSP靜態導入(JSP指令標記include)

??????? JSP頁面第一次被請求時,會被JSP引擎轉譯成Servlet的Java文件,然后再被編譯成字節碼文件執行。JSP指令標記為JSP頁面轉譯提供整個頁面的相關信息。

??????? include指令用于在JSP頁面靜態插入一個文件,被插入的文件可以是JSP頁面、HTML頁面、文本文件或一段Java代碼。使用了include指令的JSP頁面在轉換成Java文件時,將被插入的文件在當前JSP頁面出來該指令的位置做整體的插入,合并成一個新的JSP頁面,然后JSP引擎再將這個新的JSP頁面轉譯成Java文件。因此,必須保證插入文件后形成的新的JSP頁面符合JSP語法和邏輯規則。include指令的使用格式為:

<%@ include file="文件的URL" %>

?????? 插入文件可以使用絕對路徑和相對路徑,一般要使用相對路徑。相對路徑是相對于當前頁面所在目錄的路徑,例如,當前網頁所在目錄是Web服務根目錄,被插入的文件在根目錄下的text文件中,文件名為head.txt,相對路徑的使用格式如下:

<%@ include file="text/head.txt" %>

?????? 當被插入的文件被修改后,JSP引擎會重新將當前的JSP頁面和修改后的被嵌入的文件合并成一個新的JSP頁面,然后轉譯、編譯成新的Java字節文件供客戶訪問。

????? 使用include指令可以實現代碼的復用,提高代碼的使用效率。例如,頁面一般都需要一個標題欄、導航欄、頁腳等,用戶可以將標題欄等寫成單獨的文件,每個JSP頁面都可以在適當的位置用include指令插入標題欄、導航欄、頁腳等文件,這樣就極大地提高了代碼的復用和效率,使代碼更便于修改。

????? 值得注意的是,被插入的文件是文本文件時需注意在文件的開始部分指明文件的相關信息,這樣方便JSP頁面和被嵌入的文件合并生成一個新的JSP頁面不至于出現亂碼等問題。例如(head.txt):

<%@ page contentType="text/html;charset=GB2312"%>
<h1> ..頭部信息..</h1>
<div> ... </div>

?

?

JSP動態導入(jsp:include動作標記)

???? include動作標記用來在JSP頁面中動態包含一個文件,如果被包含的頁面是JSP頁面,則先處理之后再將結果包含,而如果包含的是非*.jsp文件,則只是把文件內容靜態包含進來。包含頁面程序與被包含頁面程序是彼此獨立的,互補影響。jsp:include標記的一般使用格式為:

<jsp:include page="文件的URL" />
或
<jsp:include page="文件的URL"><jsp:param 子標記/>
</jsp:include>

?

?

?

JSP動態導入與靜態導入的區別:

?????? 1、處理時間和方式不同:include指令標記插入的文件在頁面轉譯時就合并到一起了,被包含文件與當前頁面組合而成的新頁面必須符合JSP的語法和邏輯規則,由于是提前合并編譯,所以執行速度快;而jsp:include動作標記是被包含文件語法和邏輯獨立于當前頁面,單獨被JSP引擎編譯,當前頁面執行時再將被包含文件的運行結果傳送給客戶端,由于是執行頁面時處理包含文件,所以執行速度慢,但可以利用param子標記傳遞參數,使用更靈活。

??????? 2、適用情況不同:靜態導入適合導入不會經常變化的資源例如html文件,而動態導入適合一個時常變化的資源例如JSP文件。

?

個人博客:學習園

原文地址:http://www.xuexiyuan.cn/article/detail/193.html

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373802.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373802.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373802.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于DJANGO和JAVASCRIPT的時間

最近&#xff0c;實際一些簡單統計時&#xff0c;要到庫里去檢索數據出來用HIGHCHARTS畫圖&#xff0c; 作一個簡單的回照。。 DJANGO用TEMPLATEVIEW來作。專業&#xff0c;正規&#xff1a;&#xff09; class SAView(TemplateView):template_name version/sa_site.htmlpagin…

git里面的文件怎么刪不掉_.git目錄刪不掉

這樣的情況并非是第一次遇到了&#xff0c;以前總是會覺得這樣的問題只是電腦的錯亂&#xff0c;重啟一下電腦就好了&#xff0c;但是并非每次都需要重啟電腦的&#xff0c;其實簡單的設置一下&#xff0c;這個問題就可以解決了。對了&#xff0c;咱們還是說說這到底是個什么問…

集成框架比較– Spring集成,Mule ESB或Apache Camel

公司之間的數據交換增加了很多。 必須集成的應用程序數量也增加了。 這些接口使用不同的技術&#xff0c;協議和數據格式。 但是&#xff0c;這些應用程序的集成應以標準化的方式建模&#xff0c;有效實現并由自動測試支持 。 JVM環境中提供了三個可滿足這些要求的集成框架&…

Vue.js組件學習

組件可以擴展HTML元素&#xff0c;封裝可重用的HTML代碼&#xff0c;我們可以將組件看作自定義的HTML元素。組件系統提供了一種抽象&#xff0c;讓我們可以使用獨立可復用的小組件來構建大型應用。 一個簡單組件例子(全局注冊&#xff09; <!DOCTYPE html> <html>&…

Winform MD5

1&#xff1a;MD5 http://www.cmd5.com/ 字節數組----字符串 //將字節數組中每個元素按照指定的編碼格式解析成字符串//直接將數組ToString()//將字節數組中的每個元素ToString() //ToString("Params") ToString("x") //可以將十進制字符串轉換為16進制字符…

HTML元素顯示與隱藏

在WEB開發中&#xff0c;前臺HTML中經常需要控制元素的隱藏與顯示&#xff0c;我們最為最常見是二級導航欄&#xff08;通過鼠標的移動來觸發onmouseover&#xff0c;onmouseout事件來實現二級菜單的顯示與隱藏&#xff09;二級菜單的顯示與隱藏。 然而控制元素的影響與顯示有…

書評:JavaFX 2.0:示例介紹

盡管Oracle在JavaOne 2010和JavaOne 2011上對JavaFX的更改使我從懷疑論者轉變為對JavaFX的信奉者 &#xff0c;但是JavaFX愿景的轉變并非沒有缺點 。 特別是&#xff0c;JavaFX圖書市場一直很棘手&#xff0c;因為幾乎所有可用的JavaFX圖書都與1.x版本有關。 在這篇文章中&…

腦子越來越不好使,文字越來越像馱shi

沒辦法&#xff0c;還是記下來。。。轉載于:https://www.cnblogs.com/thorlet/p/5926595.html

python機制_python異常機制個人理解(參考網上資料)

當你的程序中出現異常情況時就需要異常處理。比如當你打開一個不存在的文件時。當你的程序中有一些無效的語句時&#xff0c;Python會提示你有錯誤存在。下面是一個拼寫錯誤的例子&#xff0c;print寫成了Print。Python是大小寫敏感的&#xff0c;因此Python將引發一個錯誤&…

NYOJ 24 素數距離問題

素數距離問題 時間限制&#xff1a;3000 ms | 內存限制&#xff1a;65535 KB難度&#xff1a;2描述 現在給出你一些數&#xff0c;要求你寫出一個程序&#xff0c;輸出這些整數相鄰最近的素數&#xff0c;并輸出其相距長度。如果左右有等距離長度素數&#xff0c;則輸出左側的…

C#控件大小隨窗體大小等比例變化

相信很多博友在開發初次接觸學習C# winForm時&#xff0c;當窗體大小變化時&#xff0c;窗體內的控件并沒有隨著窗體的變化而變化&#xff0c;最近因為一個項目工程的原因&#xff0c;也需要解決這個問題。通過查閱和學習&#xff0c;這個問題得到了解決&#xff0c;或許不是很…

Google Appengine登臺服務器操作方法

Google的App Engine開箱即用&#xff0c;支持版本化部署。 您可以非常輕松地在各修訂版之間來回切換&#xff0c;這是在上線之前正確測試應用程序的一項很棒的功能。 有一個主要問題&#xff1a;應用程序的所有版本共享同一數據存儲。 因此&#xff0c;如果要遷移數據&#xff…

下 面 這 條 語 句 一 共 創 建 了 多 少 個 對 象 : String s=a+b+c+d;

javac 編譯可以對字符串常量直接相加的表達式進行優化&#xff0c; 不必要等到運行期去進行加法運算處理&#xff0c; 而是在編譯時去掉其中的加號&#xff0c; 直接將其編譯成一個這些常量相連的結果。題目中的第一行代碼被編譯器在編譯時優化后&#xff0c; 相當于直接定義了…

公共樣式_設計干貨 | 園路鋪裝的100種樣式,保存收好

Part 1園路的形式主干道&#xff1a;聯系全園&#xff0c;必須考慮通行、生產、救護、消防、游覽的需要。次干道&#xff1a;溝通各景點、建筑&#xff0c;通輕型車輛。休閑小徑、健康步道&#xff1a;健康步道是近年來最為流行的足底按摩健身方式。通過行走卵石路上按摩足底穴…

22個所見即所得在線 Web 編輯器

新聞來源:sixrevisions.com我們曾介紹過 10 個基于 JavaScript 的 WYSIWYG&#xff08;所見即所得&#xff09; 編輯器&#xff0c;這些 Web 編輯器可以在線編輯和處理富 Web 內容&#xff0c;包括格式文本&#xff0c;表格&#xff0c;圖片&#xff0c;媒體&#xff0c;鏈接等…

配置阿里云作為yum 源

第一步&#xff1a;下載aliyum 的yum源配置文件。 http://mirrors.aliyun.com/repo/ 第二步&#xff1a;把下載到的repo文件復制到/etc/yum.repo.d/目錄下。 ----------------------------------------------------下面是本地yum源的一個例子 [base_extra]namebase & extra…

Spring 3,Spring Web Services 2和LDAP安全

今年的開局很好&#xff0c;其中另一個“截止日期不會改變” /“跳過所有繁文tape節” / “狂野西部”類型的項目中&#xff0c;我必須弄清楚并使用相對而言實現一些功能。新的庫和技術需要進行更改&#xff0c;Spring 3并不是新增功能&#xff0c;但是在Java 5&#xff0c;web…

vue 日期選擇器默認時間_vue-datepicker

vue-datepicker基于 Vue 的日期/時間選擇組件。安裝NodeJS 環境 (commonjs)npm i hyjiacan/vue-datepicker或者yarn add hyjiacan/vue-datepicker可以通過以下方式獲取最新的代碼git clone https://github.com/hyjiacan/vue-datepicker.git源碼倉庫瀏覽器環境 (umd)Since 2.4.0…

easyUI validate函數【總結篇-部分轉】

以下是自己總結和修改別人的帖子和資源整理出來的一些常用驗證函數&#xff0c;備用&#xff0c;交流。 <body>郵箱驗證&#xff1a;<input type"text" validtype"email" required"true" missingMessage"不能為空" invalidMe…

CSDN挑戰編程——《金色十月線上編程比賽第一題:小女孩數數》

金色十月線上編程比賽第一題&#xff1a;小女孩數數 題目詳情: 【金色十月線上編程比賽規則】 一個小女孩正在用左手手指數數&#xff0c;從1數到n。她從拇指算作1開始數起&#xff0c;然后&#xff0c;食指為2&#xff0c;中指為3&#xff0c;無名指為4&#xff0c;小指為5。…