3.4include指令<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

       一般的网页格式如下:

1

不变

2 首部信息(基本不变)

各个频道的具体信息

(此处的信息是会被反复改变的)

3 尾部信息(基本不变)

       那么如果要想实现以上的样式的代码,有两种做法:

       · 每一个页面都单独编写 1 2 3 号代码,这样一来代码重复

       · 将这三部分代码单独做成文件,之后在一个整体页面中包含进来

<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3.4.1<%@include file=""%>

       可以包含任何的文件,可以把任何文件的内容直接包含进来,文件包含的时候不需要后缀。所以此种包含属于静态包含,只关心文件本身的内容。

例如:现在随便建立几个后缀的文件:

1   inc.jsp

<h1>inc.jsp</h1>

2   inc.htm

<h1>inc.htm</h1>

3   inc.inc

<h1>inc.inc</h1>

       那么之后直接使用包含语句将此三个页面包含进来

IncludeDemo01.jsp

<%@include file="inc.htm"%>

<%@include file="inc.jsp"%>

<%@include file="inc.inc"%>

<h1>IncludeDemo01.jsp</h1>

3.4.2<jsp:include page=""/>

       动态包含,动态包含比静态包含多增加了一个判断功能,如果被包含的是动态页面,则按动态的方式进行处理,如果包含的是静态页面,则与之前的 <%@include%> 的操作形式是一样的。

IncludeDemo02.jsp

<jsp:include page="inc.htm"/>

<jsp:include page="inc.jsp"/>

<jsp:include page="inc.inc"/>

<h1>IncludeDemo02.jsp</h1>

       那么,使用此种包含语句,可以向被包含的页面之中传递参数,只要被包含的页面是动态页面,则就可以通过 request.getParameter() 直接接收此参数。

Incdemo.jsp

<%-- 这两个参数都由包含页传递过来 --%>

<h1><%=request.getParameter("ref1")%></h1>

<h1><%=request.getParameter("ref2")%></h1>

IncludeDemo03.jsp

<jsp:include page="Incdemo.jsp">

         <jsp:param name="ref1" value="Hello"/>

         <jsp:param name="ref2" value="World"/>

</jsp:include>

<h1>IncludeDemo02.jsp</h1>

3.4.3、两种包含的区别

       两种包含完成的功能都很相似,只是第二种包含中可以传递参数,第一种不能传递参数,除此之外两种包含还有一个最大的差别:

       · <%@include%> :表示把所有的页面的内容包含进来之后一起处理结果

       · <jsp:include/> :如果包含的是静态页面,则处理过程与之前一样,如果是动态页面,则多个页面分别进行处理,之后再把结果包含进来。

1   验证 <%@include%> ,静态包含

IncludeDemo04.jsp

<%

         int i = 10 ;

%>

<h1>IncludeDemo04.jsp --> <%=i%></h1>

<%@include file="IncludeDemo05.jsp"%>

IncludeDemo05.jsp

<%

         int i = 100 ;

%>

<h1>IncludeDemo05.jsp --> <%=i%></h1>

2   验证 <jsp:include> ,动态包含
IncludeDemo04.jsp

<jsp:include page="IncludeDemo05.jsp"/>

<%

         int i = 10 ;

%>

<h1>IncludeDemo04.jsp --> <%=i%></h1>

结论:

       两种包含中使用 <jsp:include> 包含是最方便的,建议只使用此语法。

3.5forward指令

       forward 指令的语法与 <jsp:include> 语法类似,只是完成的是无条件跳转功能。

ForwardDemo01.jsp

<jsp:forward page="ForwardDemo02.jsp"/>

ForwardDemo02.jsp

<h1>Hello World!!!</h1>

       以上程序跳转之后,地址栏并没有任何的改变,但是显示的内容改变了,所以称此种跳转为服务器端跳转指令。
       使用 forward 指令也可以像 include 指令那样,直接向跳转的页面传递参数。参数同样是通过 <jsp:param> 进行设置的,接收参数的时候同样使用 request.getParameter() 接收。
ForwardDemo03.jsp

<%

         String str = "WORLD" ;

%>

<jsp:forward page="ForwardDemo04.jsp">

         <jsp:param name="ref1" value="HELLO"/>

         <jsp:param name="ref2" value="<%=str%>"/>

</jsp:forward>

ForwardDemo04.jsp

<h1><%=request.getParameter("ref1")%></h1>

<h1><%=request.getParameter("ref2")%></h1>