熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

JSP中include指令和include動作區別詳解

2022-06-13   來源: Java核心技術 

  

  我們都知道在JSP中include有兩種形式分別是

  <%@ include file= %>

  <jsp:include page= flush=true/>

  前者是指令元素後者是動作元素具體它們將在何處用?如何用及它們有什麼區別?這應該是很多人看到它都會想到的問題下面一起來看看吧

  通常當應用程序中所有的頁面的某些部分(例如標題頁腳和導航欄)都相同的時候我們就可以考慮用include具體在哪些時候 用<%@ include file= %>哪些時候用< jsp:include page= flush=true/>這種形式首先要明白的是它們之間的區別只有了解了它們用法的不同才 理解該在何時去用以及如何選擇

  <%@ include file= %>jsp的include指令元素讀入指定頁面的內容並把這些內容和原來的頁面融合到一起(這個過程是在翻譯階段:也就是jsp被轉化成servlet的階段進行的

  這裡對翻譯階段進行一下說明:我們知道jsp頁面不能原封不動地被傳送給浏覽器所有的jsp元素都必須首先由服務器進行處理這是通過將jsp頁面轉達化成servlet然後執行這個servlet來完成的服務器需要一個jsp容器來處理jsp頁面jsp容器通常以servlet的形式來實現這個servlet經過配置可以處理對jsp頁面的所有請求

  Jsp容器負責將jsp頁面轉化成servlet(稱為jsp頁面實現類?JSP Page implementation class)並編譯這個servlet這兩步就構成了翻譯階段

  由此我們就會知道jsp頁面是把include指令元素所指定的頁面的實際內容(也就是代碼段)加入到引入它的jsp頁面中合成一個文件後被jsp容器將它轉化成servlet可以看到這時會產生一個臨時class文件和一個java文件下面舉個例子

  服務器用tomcat引入頁面的jsp文件叫testjsp被引入的頁面叫datejsp這個jsp文件裡存放的是一個有關時間的jsp代碼當前的上下文根設為test

  datejsp的源文件

  <%@ page language=java contentType=text/html;charset=gb%><%javautilDate date=new javautilDate();String date_cn =;String dateStr = ;switch(dategetDay()){case :date_cn =; break;case :date_cn =; break;case :date_cn =; break;case :date_cn =; break;case :date_cn =; break;case :date_cn =; break;case :date_cn =; break;}dateStr = (+dategetYear()) + + (dategetMonth()+) + + date
getDate() + 日(星期 + date_cn + );%>documentwrite(<%=dateStr%>);

  以下是testjsp的源文件

  

  <%@ page language=java contentType=text/html;charset=gb%>
<html>
<head>
<title>include的兩種用法</title>
<jsp:include page=datejsp flush=true/>
<%@ include file=datejsp %
//我們在這裡用include的兩種不同形式來引入datejsp這個文件
<head>
<body>
<table><tr><td>
有關jsp中include的兩種用法敬請關注
</td></tr></table>
</body>
</html>

  在testjsp 文件中我們只輸出了一行文本 有關jsp中include的兩種用法敬請關注現在讓我們先 用<%@ include file=datejsp %>這種形式引入datejsp這個文件你想會出現什麼問題了嗎?此時出現 了錯誤提示

  

  HTTP Status ?
orgapachejasperJasperException: /datejsp() Page directive:
cant have multiple occurrences of contentType


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26198.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.