JSP Include 文件方式

JSP Include 文件方式两种方式JSPinclude文件有两种方式:1. 使用include标签,像  2.使用jsp:include标签,像              使用的差异在于:方式1比较适合引入一些静态的,比较少改动的内容;比如网页的header和footer的部分。方式2比较适合于引入改动较多的页面。

大家好,又见面了,我是你们的朋友全栈君。

两种方式

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158664.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 线程池的使用和原理

    线程池的使用和原理

  • datagrip激活码2021(JetBrains全家桶)

    (datagrip激活码2021)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html0E14HXZ4QL-eyJsa…

  • Java 如何抛出异常、自定义异常[通俗易懂]

    一、异常的抛出1、定义:一个方法不处理这个异常,而是调用层次向上传递,谁调用这个方法,这个异常就由谁来处理。2、throw:将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。(位置:方法体内)3、throws:如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常。用它修饰的方法向调用者表明该方法可能会抛出异

  • TinyProxy电信

    TinyProxy电信listen_port=65080;daemon=on;worker_proc=0;uid=3004;http_ip=112.80.255.21;http_port=443;http_del=“X-Online-Host,Host”;http_first=”[M]http://[H][U][V]\r\nHost:[H]\r\nX-T5-Auth:ZjQxNDIh\r\n”;https_connect=on;https_ip=112.80.255.21;https_port=443

  • plsqldev8.0下载和注册码

    plsqldev8.0下载和注册码[b]关键词:PL/SQL,下载,plsqldev,注册码,plsqldev711,汉化文件[/b]PL/SQLDeveloper是一种集成的开发环境,专门用于开发、测试、调试和优化OraclePL/SQL存储程序单元,比如触发器等。PL/SQLDeveloper功能十分全面,大大缩短了程序员的开发周期。[url]http://www.kutoku.info/software…

  • java打印数组元素_java Arrays快速打印数组的数据元素列表案例

    java打印数组元素_java Arrays快速打印数组的数据元素列表案例1、Arrays.toString用来快速打印一维数组的数据元素列表2、Arrays.deepToString快速打印一个二维数组的数据元素列表publicstaticstrictfpvoidmain(String[]args){String[][]arr={{“aaa”,”bbb”},{“ccc”}};for(intx=0;xfor(inty=0;ySystem.out….

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号