jsp 两种包含的区别

来源:互联网 发布:电脑定时提醒软件 编辑:程序博客网 时间:2024/05/21 10:49
 

 

 

  1、include指令,写法是'<%include file="/header.jsp"%>'。


  2、他是静态包含,也就是说先把被包含的文件插入到jsp文件中。被插入的文件可以使任意的文件或者只是一段Java代码,融合是在jsp被转化成servlet的之前进行的。。


  3、当插入jsp文件时要注意他们的contentType中的charset和pageEconding中的内容要对应相同。


  4、 如果include的包含路径以"/"开头,那么这个路径主要是参照JSP应用的上下关系路径,如果路径是以文件名或目录名开头,那么这个路径就是正在使用的JSP文件的当前路径。

 

  5、与'<jsp:include page="" flush="true"'不同的是,前者是include指令后者是动作元素。并且include行为元素是在请求处理阶段完成的。include行为元素是翻译成单独的servlet文件,被调用运行的。把输出的内容放在调用它的位置上,可以想成include指令一样的效果。servlet文件也可以被include指令调用。由于在主页面被请求时,这些页面还没有被引入到主页面中,所以你可以对page属性使用一个请求时属性值,以便根据运行时的情况来决定要引入哪一个页面.还可以添加一些将被引入的页面读取的请求参数.如下:

<jsp:include page=”<%=pageSelectedAtRuntime%>” flush=”true” >
<jsp:param name=”fitstParamer” value=”firstValue”>
<jsp:param name=”lastParamer” value=”lastValue”>
</jsp:include>//此处出自:http://developer.51cto.com/art/200902/111134_1.htm

以下是对include 两种用法的区别,主要有两个方面的不同:

执行时间上:

<%@ include file=”relativeURI”%> 是在翻译阶段执行

<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行.

引入内容的不同:

<%@ include file=”relativeURI”%>引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.

<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本.

另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释。

原创粉丝点击