JSPページの静的な内包とダイナミックな使い方


JSPには、静的には「%@include file="ページが含まれている"%"」と動的に含まれています。包含の使い方を一例で説明します。
例:
プロジェクトファイルツリー:

header.jspファイルの内容:

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
  <title>Insert title here</title>
 </head>
 <body>
 <h1>This is header</</h1> 
content.jspファイルの内容

<table border="1">
 <tr>
  <td>col1</td>
  <td>col2</td>
 </tr>
 <tr>
  <td>col1</td>
  <td>col2</td>
 </tr>
</table>
footer.jspファイルの内容:

<hr>
  copyright: 1999-2010
 </body>
</html>
静的包含:
index.jspファイルの内容:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ include file="/header.jsp" %>
<%@ include file="/content.jsp" %>
<%@ include file="/footer.jsp" %>
ページの表示結果:

編集されたjavaファイル:

動的包含
index.jspファイルの内容:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<jsp:include page="/header.jsp"></jsp:include>
<jsp:include page="/content.jsp"></jsp:include>
<jsp:include page="/footer.jsp"></jsp:include>
ページの表示結果:

編集されたjavaファイル:

説明
この例では、静的包含と動的包含の最終的な実行結果は同じであるが、実装プロセスは異なり、明らかにコンパイルされたjavaファイルの数が異なる。
静的と動態的に含む違いと連絡
注:以下、他のファイルが含まれているjspファイルを主体ファイルと呼ぶ。例えば、上記のindex.jspファイル。含まれるファイルは、上記のheader.jspファイルなどを含むファイルと称される。
<%@include file=>>はコマンド要素です。jsp:include page="/"は、行為要素が最終的にjavaファイルにコンパイルされる数が異なるということです。上の例から見ても)
Javaファイルに変換する際に、ファイルを含む内容を本体ファイルに「コピー」し、全体としてコンパイルします。最終的にはJavaファイルにコンパイルされます。
動的に含まれているのは各jspファイルをそれぞれ変換して、それぞれコンパイルします。最終的には複数のjavaファイルにプログラムされます。
実行時間が異なります
静的に含まれているのは、JSP-->javaファイルの段階です。
ダイナミックは、classファイルを実行する段階で発生します。ダイナミック参加。
静的には二つのファイルに同じ変数が含まれてはいけません。動的には許容が含まれます。
静的には、ファイルを含む内容を直接ホストファイルにコピーするのに相当するため、同じ変数が発生すると上書きなどの問題が発生し、ファイルのエラーが発生します。動的には異なるjspを呼び出すに相当するものが含まれています。変数の空間は違っています。
動的に含めるかそれとも静的に含めるかに関わらず、そのrequestオブジェクトは同じである。つまり同じrequestオブジェクトです。
静的には最終的にJavaファイルにコンパイルされ、requestオブジェクトがよく理解されています。動的には最終的に複数のjspファイルにコンパイルされていますが、なぜrequestオブジェクトを使用しますか?これらのjspの組み合わせの過程は転送を要求する過程であり、もちろん同じrequestオブジェクトを使用しています。
静的に含むと動態的に含む使用
簡単にまとめて、一言にします。含まれているページは静的なページです。動的なページです。ダイナミックなページです。もちろん、絶対的ではないですが、このように使うのは間違いないです。)
 jsp静的包含と動的包含の違い補足:
jspには、静的に「%@include file="xxx.jsp"%」と、動的に「jsp:include page="xxx.jsp"が含まれています。これらの違いを説明します。
1、<%@include file="xxx.jsp"%はjsp中のコンパイルコマンドで、そのファイルはjspがservletに変換する時期に発生することを含んでいます。そして、はjsp中の動作命令です。そのファイルはコンパイルの時期に発生します。つまり、clvaファイルを編集するのです。
2、静的な内包を使うと一つのクラスファイルだけが生成されますが、動的な内包を使うと複数のクラスファイルが生成されます。
3、静的な使用は、ページとページを含むrequestオブジェクトが同一のオブジェクトであることを含み、静的には、含まれるページの内容を含むページにのみコピーすることを含むため、動的には、ページを含むものと、含まれるものが同じページではないものと、含まれるページのrequestオブジェクトが取り込めるパラメータの範囲が比較的大きいので、ページを含むパラメータだけでなく、ページを下に渡すパラメータも取得できます。