两种方式

JSP include 文件有两种方式:

1.  使用include 标签,像

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

2. 使用jsp:include 标签,像

<jsp:include page="include.jsp" flush="true">
         <jsp:param name="age" value="32" />  
    </jsp:include>

使用的差异在于:

方式1 比较适合引入一些静态的,比较少改动的内容;比如网页的header 和 footer 的部分。

方式2 比较适合于引入改动较多的页面。

实例

两个jsp: main.jsp 和 include.jsp
include.jsp 的内容都是一样:

<!-- include.jsp by oscar999-->
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java" import="java.util.*" %>
===begin include jsp===
<p>Include JSP: </p>
<p>CurDate <%=new Date()%></p>
<%String str = request.getParameter("age");
%>
age:
<%=str%>  <br>===end include jsp=== 

main.jsp 导入方式不同:
方式1:

<!-- main.jsp by oscar999-->
<%@ page contentType="text/html;charset=UTF-8" %>
<html>  <body>  <div>===begin main jsp=== <p> Main JSP request:  </p>  ===end main jsp=== </div><%@ include file="include.jsp" %></body>
</html>

方式二:

<!-- main.jsp by oscar999-->
<%@ page contentType="text/html;charset=UTF-8" %>
<html>  <body>  <div>===begin main jsp=== <p> Main JSP request:  </p>  ===end main jsp=== </div><jsp:include page="include.jsp" flush="true"><jsp:param name="age" value="32" />  </jsp:include>  </body>
</html>

差别的实质

JSP运行的实质是最终都会被web server 转成servlet 来执行。
tomcat 转化的.java 文件位于work/Catalina/local 的相关目录下。
比较一下两者的差别:
方式1产生后的Java的include部分:

      out.write("===begin include jsp===      \r\n");out.write("<p>Include JSP: </p> \r\n");String str = request.getParameter("age");out.write("\r\n");out.write("age:\r\n");out.print(str);out.write("  <br>\r\n");out.write("\r\n");out.write("===end include jsp=== ");

而方式2如下:

org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "include.jsp" + (("include.jsp").indexOf('?')>0? '&': '?') + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("age", request.getCharacterEncoding())+ "=" + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("32", request.getCharacterEncoding()), out, true);

可以看出方式1是直接输出,而方式二就是需要进行解释。

补充

开发的时候可能会给include的jsp 起一个比较容易区分的后缀名, 比如  .incjsp;
使用方式2 导入的话,使用Chrome 和Firefox 浏览器会有问题。会把include.incjsp 的源码文件输出,而不是产生后的html

JSP Include 文件方式相关推荐

  1. jsp include文件片段

    <%@include file="/theme/base/header.jsp"%> <jsp:include page="/theme/base/he ...

  2. HTML实现包含公共部分:通过ECMA6的模块化,纯前端实现类似jsp:include的功能

    以前一直是用 jsp:include 的方式来引入 html 头部的公共部分 php也有类似的方式 但以上两种,个人感觉都并不纯粹,本着折腾的精神,优化原有代码,解耦合 使用 ECMA6 的模块化方式 ...

  3. jsp:jsp包含文件的两种方式

    第一种:include指令 include指令:当JSP转换成Servlet时引入指定文件(指令元素),这是一种静态包含,它运行的时候不会单独编译成.class文件,它生成一个新的整体.class文件 ...

  4. JSP include 引入页面文件乱码 解决办法

    解决JSP include 引入文件出现乱码解决办法一: 第一种情况可以修改被include的文件: 1.当jsp include动态文件时(jsp文件)可以在被include的jsp文件头部加上代码 ...

  5. 怎样解决jsp:include标签在包括html文件时遇到的乱码问题

    怎样解决jsp:include标签在包括html文件时遇到的乱码问题 参考文章: (1)怎样解决jsp:include标签在包括html文件时遇到的乱码问题 (2)https://www.cnblog ...

  6. 使用jsp:include嵌入页面的两种方式

    1.静态嵌入子页面 <%@ include file="header.jsp" %> 静态嵌入支持 jsp . html . xml 以及纯文本. 静态嵌入在编译时完成 ...

  7. JSP动作--JSP有三种凝视方式

    一.JSP动作 动作是特殊的标记,通过一个动作标记能够实现多行Java代码实现的效果.能够动态插入文件.重用JavaBean组件.导向还有一个页面等. 动作元素和指令元素不同,动作元素是在client ...

  8. include与jsp:include区别【转载】

    我们都知道在jsp中include有两种形式,分别是 <%@ include file=" "%>  <jsp:include page=" " ...

  9. %@ INCLUDE FILE=%与JSP:INCLUDE PAGE=/区别

    2019独角兽企业重金招聘Python工程师标准>>> 两者最重要的区别:JSP指令<%@ include file=""%>,是将被引入的JSP与原 ...

最新文章

  1. LAMP笔记之MySQL高阶篇(5)
  2. NOIP 2017 总结
  3. 解析Hibernate的结构
  4. mysql c api 函数 linux下 mysql_query_Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据...
  5. html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图
  6. python根据模板生成pdf文件_程序生成word与PDF文档的方法(python)
  7. linux红帽6架设apache,linux Redhat6.5 中 编译安装apache
  8. [转]写一个块设备驱动(第七章)
  9. 正则表达式在python中的应用_正则表达式:Python3中的应用简介
  10. 使用MySQL创建数据库,实现基本SQL语句
  11. 前端开发IDE---VSCode前端开发环境配置
  12. ARM嵌入式系统的问题分析与总结
  13. ubantu18-ROS环境下配置IMU(STIM300),含驱动下载安装与硬件配置。
  14. 几何光学学习笔记(30)-6.5光通量和光亮度在光学系统中的传递、像面光照度
  15. 北京集训队2016 Day4 超级跳
  16. Axure 进阶 | 制作携程网酒店“入住日期”与“退房日期”控件
  17. TPTP安装与使用问题
  18. 蚂蚁金服副总裁在剑桥、牛津大学说了三个词,差点掀起“中国热”
  19. Google Map API使用谷歌地图api实现地点搜索功能
  20. 腾讯云游戏多媒体解决方案:揭秘《QQ 炫舞》手游背后的音视频

热门文章

  1. xcode_8正式版安装遇到的小问题
  2. 在DBGrid中实现Copy、Paste功能 - DELPHI
  3. 在项目中配置PageHelper插件时遇到类型转换异常
  4. 【报告分享】中国年轻用户电商消费洞察报告:寻找电商换道增长机遇.pdf(附下载链接)...
  5. 【干货】数字化转型工作手册.pdf(附下载链接)
  6. linux跑程序占用缓存过多释放内存echo 3 > /proc/sys/vm/drop_caches
  7. 不可错过!斯坦福课程3D数据的机器学习方法(Machine Learning for 3D Data)第二部分Geometry Foundations: Surface Representations
  8. 8183微型计算机,佳木斯大学12年微机原理复习题..doc
  9. 数据增量更新定义_技术资讯 | TiDB在准实时数据仓库中的实践
  10. 企业真的有必要购买WMS系统吗?