JSP include动作和指令的区别

指令include

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

动作include

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

JSP最后会被转译成Servlet

  • 如果是指令include,footer.jsp的内容会被插入到 hello.jsp 转译 成的hello_jsp.java中,最后只会生成一个hello_jsp.java文件
  • 如果是动作include,footer.jsp的内容不会被插入到 hello.jsp 转译 成的hello_jsp.java中,还会有一个footer_jsp.java独立存在。 hello_jsp.java 会在服务端访问footer_.jsp.java,然后把返回的结果,嵌入到响应中。

传参

因为<b>指令<%@include%></b> 会导致两个jsp合并成为同一个java文件,所以就不存在传参的问题,在发出hello.jsp 里定义的变量,<b>直接可以在footer.jsp中访问</b>
而<b>动作<jsp:include /></b>其实是对footer.jsp进行了一次独立的访问,那么就<b>有传参的需要。</b>

hello.jsp

<%@page contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>  
你好 JSP
<%=new Date().toLocaleString()%>
<jsp:include page="footer.jsp">
    <jsp:param  name="year" value="2017" />
</jsp:include>

footer.jsp

<hr>
    <p style="text-align:center">copyright@<%=request.getParameter("year")%>
</p>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,991评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • “什么?你跟陈彬分手了?怎么回事?” 我没想到室友筱舟的反应会那么大。她双手叉腰,目露凶光,就差头发没有炸开了。还...
    兔子巴尼阅读 1,301评论 9 4
  • 简述: 关于习惯和我想做的事啊 今天看了一篇关于习惯的文章,顿时又有了整改习惯的想法。 大概有这么几个在考虑中: ...
    dayalsin阅读 164评论 0 0
  • 2013年11月,在一个下午没课的周五,我和老刘背起行囊,开始了蹉跎之旅的第三站。 毕棚沟之行。 这是我们有史以来...
    沙鸢阅读 234评论 0 0