JSP基础语法(下)

来源:互联网 发布:武汉淘宝商学院怎么样 编辑:程序博客网 时间:2024/06/05 10:55

一.include包含指令

在jsp当中对于包含指令有两种语法形式
(1)@include指令
(2)<jsp:include>指令

1.@include指令
此种包含指令属于静态包含,可以包含任意文件,不过只是把文件内容包含进来。
例1:
新建content.html文件:<h1>content.html</h1>
新建content.txt文件:<h1>content.txt</h1>
新建include1.jsp文件进行包含:
<h1>include1.jsp</h1>
<%@include file="content.html"%>
<%@include file="content.txt"%>


2.jsp:include指令
此种包含指令属于动态包含,如果被包含的页面为jsp文件,则先处理后将结果进行包含,
如果被包含的页面为非jsp文件,则只是将文件内容静态包含进来,功能与@include指令相似。
此指令有以下两种语法形式:
语法一:
<jsp:include page="页面"/>
语法二:
<jsp:include page="页面"/>
       <jsp:param name="参数名称" value="值"/>
       ......
</jsp:include>


例2:
使用语法一实现1的功能
新建include2.jsp文件进行包含:
<h1>include2.jsp</h1>
<jsp:include page="content.html"/>
<jsp:include page="content.txt"/>

例3:
使用语法二实现动态页面,既有包含又传递参数(可以是多个)

新建content.jsp文件,可以接受参数:
<h2><%=request.getParameter("ref1")%></h2>
<h2><%=request.getParameter("ref2")%></h2>

新建include3.jsp向content.jsp传递参数:
<h1>include3.jsp</h1>
<jsp:include page="content.jsp">
<jsp:param name="ref1" value="HELLO WORLD"/>
<jsp:param name="ref2" value="linpython.appspot.com"/>
</jsp:include>

例4:
使用语法二项页面中传递变量:
<h1>include4.jsp</h1>
<%!
public static final String str = "linpython.appspot.com" ;
%>
<jsp:include page="content.jsp">
<jsp:param name="ref1" value="HELLO WORLD"/>
<jsp:param name="ref2" value="<%=str%>"/>
</jsp:include>
(注意以后凡是要想包含页面中传递变量,必须使用以上的方法)


3.两种包含指令的比较
例5:指令的比较
新建compare.jsp文件:
<%@ page contentType="text/html;charset=GBK"%>
<%
int i = 100 ;
%>
<h2>compare.jsp中的i的值为<%=i%></h2>

新建include5.jsp文件:
<%@ page contentType="text/html;charset=GBK"%>
<h1>include5.jsp</h1>
<%
int i = 10 ;
%>
<h2>includedemo05.jsp中的i的值为<%=i%></h2>
<%@include file="compare.jsp"%>

新建include6.jsp文件:
<%@ page contentType="text/html;charset=GBK"%>
<h1>include6.jsp</h1>
<%
int i = 10 ;
%>
<h2>includedemo06.jsp中的i的值为<%=i%></h2>
<jsp:include page="compare.jsp"/>

运行后两个文件既可以看出区别
(1)@include指令是先包含页面后处理结果
(2)<jsp:include>指令是先处理页面后将结果包含进来
比较之后可以发现使用动态包含要比静态包含要更加方便,还可以传递参数。不过要注意

<jsp:include>是属于标签指令形式,此指令在操作的时候必须完结</jsp:include>


二.forward指令
此指令时跳转指令,当一执行到此处,程序立刻跳转,它也属于标签指令形式,要完结。
此指令有以下两种语法形式:
语法一:
<jsp:forward page="页面"/>
语法二:
<jsp:forward page="页面"/>
       <jsp:param name="参数名称" value="值"/>
       ......
</jsp:forward>

例6:跳转页面
新建forward1.jsp文件:
<%@ page contentType="text/html;charset=GBK"%>
<jsp:forward page="forward2.jsp"/>

新建forward2.jsp文件:
<%@ page contentType="text/html;charset=GBK"%>
<h2>跳转之后的页面!</h2>
注意此跳转时属于服务器端的跳转,只要是服务器端跳转,则地址栏永远没有改变

例7:向跳转页面传递参数:
新建forward3.jsp文件:
<%@ page contentType="text/html;charset=GBK"%>
<jsp:forward page="forward4.jsp">
<jsp:param name="ref1" value="HELLO WORLD"/>
<jsp:param name="ref2" value="linpython.appspot.com"/>
</jsp:forward>

新建forward4.jsp文件:
<%@ page contentType="text/html;charset=GBK"%>
<h2>跳转之后的页面!</h2>
<h2><%=request.getParameter("ref1")%></h2>
<h2><%=request.getParameter("ref2")%></h2>