`

JSP中的include的两种用法

    博客分类:
  • jsp
 
阅读更多

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 的两种用法 JSP 中的 Include 有两种用法,分别是 `&lt;%@ include file=” ”%&gt;` 和 `&lt;jsp:include page=” ” flush=”true”/&gt;`。这两种用法都可以用于引入其他 JSP 文件,但是它们之间存在着一些...

    jsp:include与include实探

    在Java Web开发中,`jsp:include`和`&lt;jsp:include&gt;`标签是两种常见的页面包含机制,它们用于将一个或多个动态或者静态资源合并到一个JSP页面中。这两种方式虽然看似相似,但有着本质的区别,理解它们的用法和区别...

    include 两种用法的区别

    ### JSP Include 两种用法的区别 在JSP(JavaServer Pages)开发中,`include`指令被广泛用于将一个JSP页面的内容嵌入到另一个JSP页面中。这种技术可以提高代码的重用性、简化维护过程并有助于实现更灵活的设计。在...

    jsp的Include方式

    本文将深入探讨JSP的`Include` 方式的概念、类型以及使用方法。 1. **静态Include(&lt;jsp:include&gt;)** 静态Include使用`&lt;jsp:include&gt;` 标签来完成,语法如下: ```jsp &lt;jsp:include page="relativePath" flush=...

    JSP的include指令的使用方法

    在本文中,我们通过两个示例页面来详细说明include指令的使用方法。第一个页面是`date.jsp`,它包含了一些Java代码,用于生成当前的日期,并以特定的格式显示出来。 `date.jsp`的内容如下: ```jsp *" contentType...

    jsp include文件时的一个乱码解决方法.docx

    在 JSP 中,include 文件可以使用两种方式来包含,即 `@include` 方式和 `jsp:include` 方式。其中,`@include` 方式可以使得包含页面和被包含页面在编译时被编译成一个文件,从而使得变量可以相互通用。但是,这种...

    springMVC使用jsp:include嵌入页面的两种方法(推荐)

    本文将详细介绍两种使用`jsp:include`标签在Spring MVC中嵌入页面的方法。 1. 静态嵌入子页面 静态嵌入是通过`&lt;%@ include file="..." %&gt;`语法实现的。这种方法在JSP页面被转换成Servlet源代码时就已经处理,所以...

    jsp_include_demo.rar_DEMO

    在JSP中,`&lt;jsp:include&gt;`标签是一种用于在页面渲染时动态插入其他资源的机制,它可以极大地提高代码的复用性和可维护性。本教程将深入讲解`&lt;jsp:include&gt;`标签的使用和示例。 1. **标签结构与基本用法** `&lt;jsp:...

    j2ee15:jsp04,session的访问控制,分页查询,page include·

    有两种包含方式:`&lt;jsp:include&gt;`标签和`&lt;%@include%&gt;`指令。前者在每次请求时都包含页面,适合动态内容;后者在编译时静态合并,适用于不变的静态内容。例如,我们可以用`&lt;jsp:include page="header.jsp" /&gt;`来包含...

    使用jsp:include控制动态内容的方法

    JSP提供了两种包含指令:include指令和jsp:include动作。前者用于静态包含,而后者用于动态包含。 在传统的静态内容包含中,include指令的作用是在JSP页面转换为Servlet的过程中,把指定的文件内容包含进来。这种...

    几种JSP页面传值方式.txt

    主要分为两种提交方式:GET和POST。 **GET方法**: - 在URL中传递参数,适合简单且不敏感的数据传输。 - 示例代码: ```html &lt;form method="get" action="target.jsp"&gt; 提交"&gt; ``` 访问`target.jsp`时URL...

    jsp中文手册.chm & JSP中文入门帮助手册.CHM

    JSP(Java Server Pages)是Java技术在Web开发领域中的一个重要组成部分,主要用于创建动态网页。这份"jsp中文手册.chm"和"JSP中文入门帮助手册.CHM"提供了丰富的资源,帮助初学者和专业人士深入理解和应用JSP技术。...

    jsp实现页面跳转的方法

    本文将深入探讨两种主要的页面跳转方法——`jsp:include`与`jsp:forward`,并结合实例进行分析,帮助开发者更好地理解其应用场景和工作原理。 #### `jsp:include` 动作详解 `jsp:include`动作主要用于将一个JSP...

    Java Web应用开发 14 课堂案例-使用include动作.docx

    在Java Web应用开发中,`jsp:include`动作是一个重要的元素,它允许开发者在JSP页面中动态地插入其他文件内容。...同时,通过对比`jsp:include`动作和`include`指令,能够更全面地掌握JSP中包含其他文件的两种方式。

    javaweb开发JSP资料大全

    session对象和out对象、JSP中request属性的用法、用WebWork、JSP、Velocity建立注册页面、在JSP中使用JavaMail、用JSP操作Cookie、解决MVC下分页显示的问题、缓冲技术提高JSP程序性能和稳定性、jsp属性的保存范围、...

    jsp基本使用方法

    1. **Include 指令**:有两种类型,`include` 和 `&lt;jsp:include&gt;`。其中,`&lt;%@ include file="filename" %&gt;` 是静态包含,即在编译阶段就会把指定文件的内容插入到当前JSP 页面中;而 `&lt;jsp:include page="filename...

    JSP基础语法

    include 指令有两种形式:@include 指令和 &lt;jsp:include&gt; 指令。 3.4.1 @include 指令 @example: Includedemo01.jsp 3.4.2 &lt;jsp:include&gt; 指令 @example: Includedemo02.jsp、includedemo03.jsp 3.4.3 两种包含...

    JSP中include指令和include行为的区别

    有关jsp中include的两种用法.敬请关注。 &lt;/td&gt;&lt;/tr&gt; ``` 在上述案例中,可以看到`test.jsp`试图同时使用`include指令`和`jsp:include动作`来包含`date.jsp`文件。然而,在尝试使用`include指令`时,由于`date....

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

    在JSP页面中,我们经常会用到页面包含(page inclusion)功能,这通常通过静态INCLUDE和动态INCLUDE两种方式实现。下面对这两种INCLUDE方法进行详细分析,阐述它们之间的主要区别。 静态INCLUDE: 在JSP中,静态...

    JSP一个实例

    通过这个实例,我们可以看到JSP如何通过`jsp:include`和`jsp:forward`来实现页面的重用和流量控制,理解了这两种机制在Web应用中的作用。这有助于我们更好地设计和构建动态网站,提高开发效率和用户体验。

Global site tag (gtag.js) - Google Analytics