JSP中的include的两种用法
1.两种用法
<%@ include file=” ”%>
<jsp:include page=” ” flush=”true”/>
2.用法区别
(1)执行时间上区别
<%@ include file=”relativeURI”%> 是在翻译阶段执行
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行.
(2)引入内容的不同
<%@ include file=” ”%>
jsp的include指令元素读入指定页面的内容。并把这些内容和本来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的。
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所天生的应答文本.
3.如何使include页面携带入参
<jsp:include page=”<%=pageSelectedAtRuntime%>” flush=”true” >
<jsp:param name=”fitstParamer” value=”firstValue”>
<jsp:param name=”lastParamer” value=”lastValue”>
</jsp:include>
4. 说明:翻译阶段
翻译阶段:
jsp页面不能原封不动地被传送给浏览器,全部的jsp元素都必须首先由服务器进行处理。这是通过将jsp页面转达化成servlet,然后执行这个servlet来结束的。服务器需要一个jsp容器来处理jsp页面。jsp容器平常以servlet的情势来实现,这个servlet经过配置,可以处理对jsp页面的全部请求。
Jsp容器重视将jsp页面转化成servlet(称为jsp页面实现类—JSP Page implementation class),并编译这个servlet。这两步就组成了翻译阶段.
请求处理阶段:
Jsp容器除了上面提到的重视将jsp页面转化成servlet外,还重视调用jsp页面实现类以处理每个请求并产生应答.这个阶段我们就称为请求处理阶段.请求处理阶段仅执行类文档.
5.示例
服务器用tomcat,引入页面的jsp文档叫test.jsp。被引入的页面叫date.jsp.这个jsp文档里存放的是一个有关时间的jsp代码,当前的上下文根设为test
//======date.jsp的源文档=====//
<%@ page language=”java” contentType="text/html;charset=gb2312"%>
<%
java.util.Date date=new java.util.Date();
String date_cn ="";
String dateStr = "";
switch(date.getDay())
{
case 0:date_cn ="日"; break;
case 1:date_cn ="一"; break;
case 2:date_cn ="二"; break;
case 3:date_cn ="三"; break;
case 4:date_cn ="四"; break;
case 5:date_cn ="五"; break;
case 6:date_cn ="六"; break;
}
dateStr = (1900+date.getYear()) + "年" + (date.getMonth()+1) + "月" + date.getDate() + "日(星期" + date_cn + ")";
%>
document.write("<%=dateStr%>");
//======以下是test.jsp的源文档=============//
<%@ page language=”java” contentType=”text/html;charset=gb2312”%>
<html>
<head>
<title>include的两种用法</title>
<jsp:include page=”date.jsp” flush=”true”/>
<%--@ include file=”date.jsp” %-->
<head>
<body>
<table><tr><td></td></tr></table>
</body>
</html>
先用<%@ include file=”date.jsp” %>这种情势引入date.jsp这个文档。此时出现了错误提示:
HTTP Status 500 –
org.apache.jasper.JasperException: /date.jsp(0,0) Page directive: can't have multiple occurrences of contentType
状况码为http 500服务器内部错误。再看下面的提示。在date.jsp页面中不能指定多个contentType.
原因就在这里了。是由于在翻译阶段,date.jsp文档的代码被原封不动地参加到了test.jsp页面从而合成一个文档。合成后的文档中就会雷同的:
<%@ page language=”java” contentType=”text/html;charset=gb2312”%>
这句代码。解决的办法是把date.jsp文档中的这句删掉。刷新后再请求test.jsp页面,正常。
查看tomcat下的临时文档,..\tomcat\work\Standalone\localhost\test目录下会看到test_jsp.java和test_jsp.class两个文档,
这里的java文档就是jsp容器将jsp转化成了servlet而得到的test_jsp.java这个文档。
相对应的test_jsp.class这个文档就是编译test_jsp.java这个servlet文档产生的类文档了。打开所产生的servlet文档(test_jsp.java)。此时我们会发觉,在test.jsp文档被转化成servlet文档时,在输出的<haed>中间参加了一些不是test.jsp页面里面的代码,新参加的内容就是date.jsp里面的代码.
将<%@ include file=”date.jsp”%>换成<jsp:include page=”dae.jsp” flush=”true”/>,然后请求test.jsp.此时会在页面上看见.我们所引入date.jsp输出的日期中中文出现了乱码.
所以在我们作include行动元素引入页面时,实际只是引用了date.jsp这个文档被转化并被编译后产生的servlet类文档.既如此,date.jsp就是作为一个单独的文档在执行后才被test.jsp文档运行时调用.由于date.jsp文档中无指定字符编码.所以出现了乱码.解决办法是在date.jsp文档中重新把刚才去掉的
<%@ page language=”java” contentType=”text/html;charset=gb2312”%>
再查看tomcat下的临时文档会发觉.此时多出了一个date_jsp.java文档和一个date_jsp.class文档.这两个文档得来的方法跟test_jsp.java和test_jsp.class文档得来的方法一样.再查看一下此时test_jsp.java文档的代码会发觉.此时只增加加了一句代码:
JspRuntimeLibrary.include(request, response, "date.jsp", out, true);
它并无把date.jsp文档的代码引入到test.jsp.
相关推荐
JSP 中的 Include 的两种用法 JSP 中的 Include 有两种用法,分别是 `<%@ include file=” ”%>` 和 `<jsp:include page=” ” flush=”true”/>`。这两种用法都可以用于引入其他 JSP 文件,但是它们之间存在着一些...
在Java Web开发中,`jsp:include`和`<jsp:include>`标签是两种常见的页面包含机制,它们用于将一个或多个动态或者静态资源合并到一个JSP页面中。这两种方式虽然看似相似,但有着本质的区别,理解它们的用法和区别...
### JSP Include 两种用法的区别 在JSP(JavaServer Pages)开发中,`include`指令被广泛用于将一个JSP页面的内容嵌入到另一个JSP页面中。这种技术可以提高代码的重用性、简化维护过程并有助于实现更灵活的设计。在...
本文将深入探讨JSP的`Include` 方式的概念、类型以及使用方法。 1. **静态Include(<jsp:include>)** 静态Include使用`<jsp:include>` 标签来完成,语法如下: ```jsp <jsp:include page="relativePath" flush=...
在本文中,我们通过两个示例页面来详细说明include指令的使用方法。第一个页面是`date.jsp`,它包含了一些Java代码,用于生成当前的日期,并以特定的格式显示出来。 `date.jsp`的内容如下: ```jsp *" contentType...
在 JSP 中,include 文件可以使用两种方式来包含,即 `@include` 方式和 `jsp:include` 方式。其中,`@include` 方式可以使得包含页面和被包含页面在编译时被编译成一个文件,从而使得变量可以相互通用。但是,这种...
本文将详细介绍两种使用`jsp:include`标签在Spring MVC中嵌入页面的方法。 1. 静态嵌入子页面 静态嵌入是通过`<%@ include file="..." %>`语法实现的。这种方法在JSP页面被转换成Servlet源代码时就已经处理,所以...
在JSP中,`<jsp:include>`标签是一种用于在页面渲染时动态插入其他资源的机制,它可以极大地提高代码的复用性和可维护性。本教程将深入讲解`<jsp:include>`标签的使用和示例。 1. **标签结构与基本用法** `<jsp:...
有两种包含方式:`<jsp:include>`标签和`<%@include%>`指令。前者在每次请求时都包含页面,适合动态内容;后者在编译时静态合并,适用于不变的静态内容。例如,我们可以用`<jsp:include page="header.jsp" />`来包含...
JSP提供了两种包含指令:include指令和jsp:include动作。前者用于静态包含,而后者用于动态包含。 在传统的静态内容包含中,include指令的作用是在JSP页面转换为Servlet的过程中,把指定的文件内容包含进来。这种...
主要分为两种提交方式:GET和POST。 **GET方法**: - 在URL中传递参数,适合简单且不敏感的数据传输。 - 示例代码: ```html <form method="get" action="target.jsp"> 提交"> ``` 访问`target.jsp`时URL...
JSP(Java Server Pages)是Java技术在Web开发领域中的一个重要组成部分,主要用于创建动态网页。这份"jsp中文手册.chm"和"JSP中文入门帮助手册.CHM"提供了丰富的资源,帮助初学者和专业人士深入理解和应用JSP技术。...
本文将深入探讨两种主要的页面跳转方法——`jsp:include`与`jsp:forward`,并结合实例进行分析,帮助开发者更好地理解其应用场景和工作原理。 #### `jsp:include` 动作详解 `jsp:include`动作主要用于将一个JSP...
在Java Web应用开发中,`jsp:include`动作是一个重要的元素,它允许开发者在JSP页面中动态地插入其他文件内容。...同时,通过对比`jsp:include`动作和`include`指令,能够更全面地掌握JSP中包含其他文件的两种方式。
session对象和out对象、JSP中request属性的用法、用WebWork、JSP、Velocity建立注册页面、在JSP中使用JavaMail、用JSP操作Cookie、解决MVC下分页显示的问题、缓冲技术提高JSP程序性能和稳定性、jsp属性的保存范围、...
1. **Include 指令**:有两种类型,`include` 和 `<jsp:include>`。其中,`<%@ include file="filename" %>` 是静态包含,即在编译阶段就会把指定文件的内容插入到当前JSP 页面中;而 `<jsp:include page="filename...
include 指令有两种形式:@include 指令和 <jsp:include> 指令。 3.4.1 @include 指令 @example: Includedemo01.jsp 3.4.2 <jsp:include> 指令 @example: Includedemo02.jsp、includedemo03.jsp 3.4.3 两种包含...
有关jsp中include的两种用法.敬请关注。 </td></tr> ``` 在上述案例中,可以看到`test.jsp`试图同时使用`include指令`和`jsp:include动作`来包含`date.jsp`文件。然而,在尝试使用`include指令`时,由于`date....
在JSP页面中,我们经常会用到页面包含(page inclusion)功能,这通常通过静态INCLUDE和动态INCLUDE两种方式实现。下面对这两种INCLUDE方法进行详细分析,阐述它们之间的主要区别。 静态INCLUDE: 在JSP中,静态...
通过这个实例,我们可以看到JSP如何通过`jsp:include`和`jsp:forward`来实现页面的重用和流量控制,理解了这两种机制在Web应用中的作用。这有助于我们更好地设计和构建动态网站,提高开发效率和用户体验。