JSP中的<jsp:include...>和<%@include %>

jsp中include有两种写法, 都是包含一个页面或者一个文件的意思, 写法略有不同

<jsp:include page = "url" />或者<jsp:include page = "url">子动作标识<jsp:param></jsp:include>(什么是子动作标识<jsp:param>)

还有一种是

<%@include file="path" %>

相对来讲, 后者要简单一点, 后者属于一个include指令元素, 并且只有一个file的属性, 只是写上路径就行了, 路径可以是相对路径也可以是绝对路径, 但不能是<%=...%>代表的表达式

而前者是行为元素。

这两者的主要的区别在于

1:指令的包含是先将代码拿过来, 然后与自己的代码一起编译显示, 动作包含的过程是先将代码编译, 然后将编译好的内容放到自己的页面中去

2:动作的包含, page-支持表达式, 指令的包含, file-不支持表达式

3:执行时间上:

<%@ include file="..."%>速度会快一些, 这个是请求一个页面

<jsp:include page="..." />相对来讲会慢, 这个相当于请求两个页面

二:引入内容的不同:

<%@ include file="..."%>

引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.

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

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

<%@ include file="..."%> 为静态的

<jsp:include page="..." flush="true" />为动态的

动态include 它总是会检查所含文件中的变化, 适合用于包含动态页面, 并且可以带参数
静态include用include伪码实现, 不会检查所含文件的变化, 适用于包含静态页面

通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用include。

时间: 2024-10-30 12:29:23

JSP中的<jsp:include...>和<%@include %>的相关文章

jsp中:jsp声明与jsp脚本&lt;%! int count=0;%&gt; 与&lt;% int count=0;%&gt;

<body> <%!int count; %> <%int count2=0; %> 输出声明时候的count:<%=count++ %> <br> 输出脚本的count2:<%=count2++ %> <br> </body>每次刷新该jsp页面时对应的输出结果count每刷新一次增加1 count2每刷新一次 不变 分析: 因为count是jsp中声明的变量,当jsp编译成servlet时,cout是该se

jsp中的&lt;jsp:setProperty&gt;中的param属性

比如: ? 1 <jsp:setProperty name="lader" property="edge" param="num" /> 其中的param属性 相当于value="<%=request.getParameter("num")%>" 还要注意:如果javabean里面的属性(比如说edge属性)对应的类型是int,double或者其他类型,又因为request.getP

思考题:JSP的指令inclue和动作include的区别

问: 1.在001.jsp中,有本语句<%@ include file="002.jsp"%> ,那么当第一次在浏览器中访问001.jsp的时候,在tomcat的工作目录下产生几个类文件?(1或2) 2.在1.jsp中 有本语句 <jsp:include page="2.jsp"/>  ,那么当第一次在浏览器中访问1.jsp的时候,在tomcat的工作目录下产生几个类文件?(1或2) 请给出说明理由,并通过提交实验截图来验证. 答:1个  

在jsp中应用MVC模型

在这里通过一个例子来把MVC的思路理清一下;M:即模型层;V:即视图层:C:即控制层: 在jsp中:jsp页面是视图层.而javabean是模型层,Servlet是控制层: 比如我在数据里有一个文章的表,表的字段有:Artical_Id,Artical_Name ,Artical_Content,Artical_Date,Artical_Glancenumber,ArticalTypel_Id ,User_Id,Artical_Character 创建一个javabean类来封装表的字段; pa

Struts2.x jsp页面无法使用jsp:forward跳转到action

问题:使用<jsp:forward page="test"></jsp:forward>语句无法跳转到test所对应的action. 解决办法:在web.xml中 添加 <filter-mapping>          <filter-name>struts2</filter-name>          <url-pattern>/*</url-pattern>          <dispa

JSP笔记——3.JSP的三个编译指令

JSP编译指令是通知JSP引擎的信息,它不直接生成输出.常见的编译指令有如下三个: page指令 此指令是对整个jsp页面的描述指令.语法格式如下: <% @page [language="Java"] [extends="package.class"] [import= "package. class|package. *},-"] [session="true|false"] [buffer="none|8

JSP中include指令和include动作的区别

include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如果只修改了include文件内容,而没有对JSP修改,得到的结构将不会改变,所以直接执行已经存在的字节码文件,而没有重新编译.因此对不经常变化的内容,用include指令是合适的,如果需要的内容是经常变化的,则需要动作元素<jsp:include>.下面将详细区分他们之间的不同 1.include指

JSP中两种include的区别

首先说明这两种都是什么: <%@ include file=”relativeURI”%> 可以叫作静态include(静态包含),是jsp指令中的一种,(JSP指令控制JSP编译器如何去生成servlet(servlet是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类别,一般情况下,人们将Servlet理解为后者.-维基百科) <js

JSP中的include的两种用法

1.两种用法 <@inlcude file ="header.jsp"/> 此时引入的是静态的jsp文件,它将引入的jsp中的源代码原封不动地附加到当前文件中,所以在jsp程序中使用这个指令的时候file里面的值(即要导入的文件)不能带多余的标签或是与当前jsp文件重复的东西.例如里面不要包含<html><body>这样的标签,因为是把源代码原封不动的附加过来,所以会与当前的jsp中的这样的标签重复导致出错. <jsp:include page