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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 安装tinyxml,使用TinyXml「建议收藏」

    linux 安装tinyxml,使用TinyXml「建议收藏」使用TinyXml的两种方法。第一,导入所需的头文件和cpp文件TinyXml由两个头文件(.h文件)和四个CPP文件(.cpp文件)构成,用的时候,只要将(tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp)导入工程就可以用它的东西了。这就是开源的好处,就跟你自己写的程序一样,想怎么用都行。…

    2022年6月11日
    232
  • leetcode 两数相加(两个数相加分别叫什么)

    publicclasstest{ publicstaticvoidmain(String[]args){ System.out.println("HelloWorld!"); ListNodea=newListNode(0); ListNodeb=newListNode(0); a.val=2; a.next=newListNode(4); a….

    2022年4月10日
    40
  • android 定时器的实现比较

    android 定时器的实现比较第一种,Handler+threadpublicclassMainActivityextendsActivity{TextViewtextView;inttime;Handlerhandler=newHandler(){@OverridepublicvoidhandleMessage(Messag

    2022年7月25日
    8
  • .NET(C#):ToString(CultureInfo.InvariantCulture)

    .NET(C#):ToString(CultureInfo.InvariantCulture).NET(C#):CultureInfo中重要的InvariantCulture目录CultureInfo简述通过示例了解InvariantCultureInvariantCulture和字符串比较总结 返回目录CultureInfo简述CultureInfo类位于System.Globalization命名空间内,这个类和这个命名空间许多人都不

    2022年6月19日
    18
  • bs和cs的区别与优缺点_CS和CIS的联系与区别

    bs和cs的区别与优缺点_CS和CIS的联系与区别一,B/S结构(baiBrowser/Server,浏du览器/服务器模式),zhi是WEB兴起后的一种网络结构模式,WEB浏览器是客户端dao最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英[‘braʊzə]美[‘braʊzɚ]),如NetscapeNavigator或InternetExplorer,服务器安装SQLServer、Oracle、MYSQL等数据库。浏览器通过WebServ

    2022年10月16日
    2
  • varchar2和varchar的区别[通俗易懂]

    varchar2和varchar的区别[通俗易懂]1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,大部分情况下建议使用varchar2类型,可以保证更好的兼容性…

    2022年6月15日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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