JSP Include 文件方式
两种方式
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 比较适合于引入改动较多的页面。
实例
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 文件方式相关推荐
- jsp include文件片段
<%@include file="/theme/base/header.jsp"%> <jsp:include page="/theme/base/he ...
- HTML实现包含公共部分:通过ECMA6的模块化,纯前端实现类似jsp:include的功能
以前一直是用 jsp:include 的方式来引入 html 头部的公共部分 php也有类似的方式 但以上两种,个人感觉都并不纯粹,本着折腾的精神,优化原有代码,解耦合 使用 ECMA6 的模块化方式 ...
- jsp:jsp包含文件的两种方式
第一种:include指令 include指令:当JSP转换成Servlet时引入指定文件(指令元素),这是一种静态包含,它运行的时候不会单独编译成.class文件,它生成一个新的整体.class文件 ...
- JSP include 引入页面文件乱码 解决办法
解决JSP include 引入文件出现乱码解决办法一: 第一种情况可以修改被include的文件: 1.当jsp include动态文件时(jsp文件)可以在被include的jsp文件头部加上代码 ...
- 怎样解决jsp:include标签在包括html文件时遇到的乱码问题
怎样解决jsp:include标签在包括html文件时遇到的乱码问题 参考文章: (1)怎样解决jsp:include标签在包括html文件时遇到的乱码问题 (2)https://www.cnblog ...
- 使用jsp:include嵌入页面的两种方式
1.静态嵌入子页面 <%@ include file="header.jsp" %> 静态嵌入支持 jsp . html . xml 以及纯文本. 静态嵌入在编译时完成 ...
- JSP动作--JSP有三种凝视方式
一.JSP动作 动作是特殊的标记,通过一个动作标记能够实现多行Java代码实现的效果.能够动态插入文件.重用JavaBean组件.导向还有一个页面等. 动作元素和指令元素不同,动作元素是在client ...
- include与jsp:include区别【转载】
我们都知道在jsp中include有两种形式,分别是 <%@ include file=" "%> <jsp:include page=" " ...
- %@ INCLUDE FILE=%与JSP:INCLUDE PAGE=/区别
2019独角兽企业重金招聘Python工程师标准>>> 两者最重要的区别:JSP指令<%@ include file=""%>,是将被引入的JSP与原 ...
最新文章
- LAMP笔记之MySQL高阶篇(5)
- NOIP 2017 总结
- 解析Hibernate的结构
- mysql c api 函数 linux下 mysql_query_Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据...
- html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图
- python根据模板生成pdf文件_程序生成word与PDF文档的方法(python)
- linux红帽6架设apache,linux Redhat6.5 中 编译安装apache
- [转]写一个块设备驱动(第七章)
- 正则表达式在python中的应用_正则表达式:Python3中的应用简介
- 使用MySQL创建数据库,实现基本SQL语句
- 前端开发IDE---VSCode前端开发环境配置
- ARM嵌入式系统的问题分析与总结
- ubantu18-ROS环境下配置IMU(STIM300),含驱动下载安装与硬件配置。
- 几何光学学习笔记(30)-6.5光通量和光亮度在光学系统中的传递、像面光照度
- 北京集训队2016 Day4 超级跳
- Axure 进阶 | 制作携程网酒店“入住日期”与“退房日期”控件
- TPTP安装与使用问题
- 蚂蚁金服副总裁在剑桥、牛津大学说了三个词,差点掀起“中国热”
- Google Map API使用谷歌地图api实现地点搜索功能
- 腾讯云游戏多媒体解决方案:揭秘《QQ 炫舞》手游背后的音视频
热门文章
- xcode_8正式版安装遇到的小问题
- 在DBGrid中实现Copy、Paste功能 - DELPHI
- 在项目中配置PageHelper插件时遇到类型转换异常
- 【报告分享】中国年轻用户电商消费洞察报告:寻找电商换道增长机遇.pdf(附下载链接)...
- 【干货】数字化转型工作手册.pdf(附下载链接)
- linux跑程序占用缓存过多释放内存echo 3 > /proc/sys/vm/drop_caches
- 不可错过!斯坦福课程3D数据的机器学习方法(Machine Learning for 3D Data)第二部分Geometry Foundations: Surface Representations
- 8183微型计算机,佳木斯大学12年微机原理复习题..doc
- 数据增量更新定义_技术资讯 | TiDB在准实时数据仓库中的实践
- 企业真的有必要购买WMS系统吗?