jsp include指令

JSP主要有三个编译指令:page 、include、taglib
其中使用include指令可以将一个外部文件嵌入到当前JSP文件中,如下:

<%@include file="relativepath/test.jsp">

这种引用是静态的include语句,
使用静态的include语句,就可以将被包含页面(子页面,如test.jsp)文件嵌入到包含页面(父页面)中,同时解析子页面中的jsp语句;即会把子页面中的其他编译指令也包含进来,因此子页面甚至不需要是一个完整的页面。

注:父页面在编译时将完全包含了子页面的代码,又因为还会将子页面的编译指令也包含进来,所以,如果两个页面的编译指令冲突,那么页面就会出错。

相对于静态include指令,动态include指令则是:


1. <jsp:include page="relativepath/test.jsp" flush="true"/>


2.<jsp:include page="relativeUrl|<%=expression%>" flush="true">
    <jsp:param name="paramname" value="paramvalue"/>
</jsp:include>

同样,这种用法也表示包含某个页面,它不会导入子页面的编译指令,仅仅是将子页面中的body内容插入页面;
通过第二种用法,可以看出动态的include方法可以额外的传入参数;
flush属性用于指定输出缓存是否转移到被导入文件中(对于jsp1.1以前版本,只能设置为false)
如果用动态的include方法:通过jsp生成的源代码中可以看到这样一句话:

org.apache.jasper.runtime.jspRuntimeLibrary.include(request,response,"test.jsp",out,false);

表明动态导入只是使用一个include方法来插入子页面的内容,而不是将子页面完全融入父页面中。

  • 静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容;
  • 静态导入时被 导入页面的编译指令会起作用;而动态导入时被导入编译指令则失去作用,只是插入被导入页面的body内容
  • 动态包含还可以参数
jsp的动作指令
  • jsp:forward 执行页面转向,将请求的处理转发到下一个页面
  • jsp:include 用于动态引入一个页面
  • jsp:param 用于传递参数,必须与其他支持参数的标签一起使用
  • jsp:plugin 用于下载JavaBean或Applet到客户端执行
  • jsp:useBean 创建一个JavaBean的实例
  • jsp:setProperty 设置JavaBean实例的属性值
  • jsp:getProperty 输出JavaBean实例的属性值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值