`

JSP动态包含与静态包含

阅读更多

已经很久没有认真的去写Java代码了,因为项目的需求,我被迫被分配到后台用Shell和Procedure实现需求,但是个人觉得不能忘本,之前一段时间同事遇到一个JSP前台加载不上去的问题,后来突然想到了JSP的动态包含和静态包含的问题,他们是有很大的区别的,当时只记得动态包含是编译之后才嵌入进来的,静态包含就相当于是把代码写在一个外部的文件中,但是其他的都忘记了,做人不能忘本啊,所以在网上搜索了下其他大神写的文章,做为备忘吧,后续如果忘记了,可以再回头看看。由于本人的时间有限,因此就不去自己写了。

 

本文引用自:http://blog.sina.com.cn/s/blog_5bba80460100cidt.html

 

动态INCLUDE
用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

(这里你必须使用flush="true",你不能使用false值.缺省值为false )
静态INCLUDE
用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>
===================================================================
1. 静态include的结果是把其他jsp引入当前jsp,两者合为一体
动态include的结构是两者独立,直到输出时才合并( 看看jsp生成的java文件就可以知道了)
2.正是因为这样,动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都必须有自己创建,当然,还好它和include它的页面的request范围是一致的.
而静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的.

本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/13159.htm

 

 

include指令是静态引入的;而include动作是动态引入的。
静态与动态的include与页面内容无关。
与<%@include...%>不同的是,jsp:include 可以向被包含的页传递参数,但,如果传递参数的话,被包含的页必须是JSP页面。
例如:向被包含的页included2.jsp传递参数:
<jsp:include page="included2.jsp" flush="true">    
     <jsp:param name="ref1" value="AAA"/>
     <jsp:param name="ref2" value="BBB"/>
</jsp:include>
page属性: 相对路径指明被包含的文件
flush属性: 必须用true ,表示页面可刷新。
可以用jsp:param向被包含的动态页即JSP页传递参数(而include指令则不可以),参数以”参数名-值”对的形式传递,被包含的页使用request.getParameter(“参数名称”)可以获取相应参数的值

 

JSP中动态INCLUDE与静态INCLUDE的区别?动态INCLUDE用jsp:include动作实现它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面

 

以下自另外一个仁兄的总结,直接"拿"过来了,http://blog.csdn.net/duliming1987/article/details/7389123

 

都知道,JSP在WEB服务器中都要转换成一个java文件,java文件再编译成一个class文件。当请求JSP页面的时候,实际上运行的是这个class文件。

从这个方面来说:

静态包含发生在:JSP---->java文件阶段。动态包含发生在:执行class文件阶段。动态加入。

静态包含:只生成一个java文件,动态包含:生成多个class文件。

值得庆幸的是无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。

 

什么都没例子来的实在:

index.jsp页面:静态和动态包含其他页面。

主要代码:

 

[java] view plaincopy
 
  1. 静态包含页面:  
  2.  <%@include file="static.jsp" %><br>  
  3. 动态包含页面   
  4. <jsp:include page="dynamic.jsp" flush="true"/>  



 

static.jsp被静态包含的页面。

dynamic被动态包含的页面。

经过编译以后生成的效果:

打开index_jsp.java

可以看到被静态包含的页面中的内容全部包含在了里面。而被动态包含的页面使用了:

 

[java] view plaincopy
 
  1. org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "dynamic.jsp", out, true);  


而被动态包含的页面,生成了一个新的java文件。

 

 

再看代码:为什么说动态包含和静态包含的request是相同的,静态被包含页面和包含它的页面共享request是毋庸置疑的,而动态包含通过上面一行代码也就一目了然了。

 

 

以上都是个人总结,如有错误,希望能指正。

分享到:
评论

相关推荐

    JSP静态包含和动态包含

    JSP静态包含和动态包含

    JSP页面的动态包含和静态包含示例及介绍

    JSP中,有两种包含其它文件的方式,一种是静态包含,一种是动态包含。本文介绍其中的静态包含。 所谓静态包含,跟ASP中的包含是一样的效果,即将所有包含的文件,先静态的包含进来,组成一个大的JSP文件,然后再经过...

    JSP中动态include与静态include的区别介绍

    动态INCLUDE 用法:&lt;jsp page=”included.jsp” flush=”true”&gt; 说明:它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数,先编译之后再进行处理。 原因:1、静态include的结果是把其他jsp引入...

    JSP页面的静态包含和动态包含使用方法

    主要介绍了JSP页面的静态包含和动态包含使用方法,需要的朋友可以参考下

    JSP下动态INCLUDE与静态INCLUDE的区别分析

     用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面&lt;&#37;@ include file=included.htm %&gt;  =================================================================== 1. 静态include的...

    java/jsp网站实现伪静态

    java/jsp网站实现伪静态,把.jsp伪装成.html,资源包含Demo和jar包

    动态网页与静态网页 PPT

    本文从ASP的概念入手分别介绍了什么是静态网页、动态网页,以及静态网页、动态网页的工作原理和主要区别,静态网页、动态网页的区别主要在于在服务器端是否执行相应的代码。静态网页不包含任何的脚本,当浏览器发送...

    两中包含的区别.txt

    JSP中有两种包含语句: 1.&lt;%@include file="head.jsp" %&gt; ...如果资源为静态资源则直接将资源包含处理与相同。 ⑵.如果请求资源为动态,则先各自处理资源,之后将处理后的结果包含在一起进行显示。

    Java Web应用开发:JSP技术基础.pptx

    本章内容;纯Servlet编写的网站? ;JSP;HTML、servlet和JSP相比较;...Servlet的请求过程;...a.jsp静态包含b.html;静态包含原理;静态包含的问题;动态包含—include操作;a2.jsp动态包含b2.jsp;a2.jsp对应Servi

    JSP技术知识点考查 jsp动态建站技术

    &lt;jsp:include&gt;操作允许在请求是在现成的JSP页面里包含静态或者动态资源 &lt;jsp:forward&gt;操作允许将请求转发到另一个JSP、servlet或静态资源文件 &lt;jsp:useBean&gt;标签用来在JSP页面中创建一个JavaBean实例并指定他的名字...

    静态网页与动态网页 jsp

    JDK:Java应用程序开发包,包含编译运行Java程序所需的工具包和开发Java应用程序所需的类函数库。 Tomcat服务器软件:解释JSP网页,并且回传解释过后的JSP网页至用户计算机的浏览器 。

    JSP(JAVA)静态论坛打包下载

    一个有关JAVA,JSP,ORACLE,JAVASCRIPT等技术的论坛静态页的打包下载。包含相关技术文章四百多篇,很有参考价值。

    jsp经典笔记jsp经典笔记

    JSP是服务器端运行的页面,JSP本身就是一个Servlet,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求。 Jsp文件只需放在应用文件下就可以了。 JSP例子...

    最后使用的jSP页面所需静态资源.rar

    包含所需css+js,来自于bootstrop官网,待之后这段时间过去,我会将完整的项目发上来。css和js、image文件放在对应的web资源文件夹下,本项目配置了资源映射。

    jsp中include指令静态导入和动态导入的区别详解

    静态导入指的是,将一个外部文件嵌入到当前JSP文件中,同时解析这个页面的JSP语句,它会把目标页面的其他编译指令也包含进来。include的静态导入指令使用语法: 代码如下:&lt;&#37;@include file=”relativeURLSpec...

    JSP-动态树

    树的动态生成和一般的静态书是不一样的。因为动态树中所有的结点或者部分节点不是固定的,可能会随时随着数据库中...对于一般的静态树,我们只需要在jsp页面中包含js代码就可以了。动态树就需要javabean的支持。

    JSP动态网站开发基础教程与实验指导(从基础到应用)光盘

    练习3-1 在JSP页面中静态包含文件 312 练习3-2 统计访问页面数量 312 练习3-3 求圆的面积和周长 313 练习3-4 动态加载页面并传递参数 314 第4单元 315 练习4-1 简单地验证用户登录 315 练习4-2 猜数字 316 练习4-3 ...

Global site tag (gtag.js) - Google Analytics