`
xiaobaozi
  • 浏览: 23016 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

<%@ include file=""%>和<jsp:include page=” ”>理解区别

    博客分类:
  • java
阅读更多

再说<%@ include file=""%>静态包含和<jsp:include page=” ”>动态包含区别之前要明白两个概念

 

jsp翻译阶段

      我们知道,jsp页面不能原封不动地被传送给浏览器,所有的jsp元素都必须首先由服务器进行处理。这是通过将jsp页面转达化成servlet,然后执行这个servlet来完成的。服务器需要一个jsp容器来处理jsp页面。jsp容器通常以servlet的形式来实现,这个servlet经过配置,可以处理对jsp页面的所有请求。

  Jsp容器负责将jsp页面转化成servlet(称为jsp页面实现类JSP Page implementation class),并编译这个servlet。这两步就构成了翻译阶段.

jsp请求处理阶段

        Jsp容器除了上面提到的负责将jsp页面转化成servlet外,还负责调用jsp页面实现类以处理每个请求并产生应答.这个阶段我们就称为请求处理阶段.请求处理阶段仅执行类文件

 

这两个概念对于我们的问题有什么关系呢,接着来分析

现在有两个页面a.jsp ,b.jsp.

a.jsp代码:

<%@page contentType="text/html;charset=GBK"%>


this is aa.jsp

<%@ include file ="bb.jsp"/>

 

b.jsp代码:

<%@page contentType="text/html;charset=GBK"%>

<%
	String name="我是bb.jsp页面。";

%>
<%=name%>

 

 

a.jsp中包含如下

<%@ include file="b.jsp"%>此方法涉及jsp翻译阶段的概念,jsp的翻译阶段的概念我理解再一步就能表示编译阶段执行,此时把b.jsp编译好的程序融合到a.jsp中这时就出现了完整a.jsp在我们tomcat下的临时文件下你根本找不到b.java的影子,因为已经存放到a.java中了。

 

<jsp:include page=”b.jsp”>了此方法涉及jsp的请求处理阶段的概念,说白了我理解就是表示程序的运行阶段调用,a.jsp和b.jsp编译好在tomcat临时文件中生成类似a.java和b.java后在当请求调用后引用独立的b.java文件。无论a.jsp还是b.jsp都是独立存在的但对于中文都要进行解析如果不设置将会出现错误。

 

扩展说明:对于上面两个页面我们我们还要说明一个乱码问题,如果b.jsp中涉及中文字符我们就会出现乱码问题

例如:如果上面两段代码将会出现如下错误:

HTTP Status 500 ?

org.apache.jasper.JasperException: /date.jsp(0,0) Page directive: can't have multiple occurrences of contentType

解决:在b.jsp页面中删除字符集%@page contentType="text/html;charset=GBK"%
代码即可。

说明:在tomcat中兼容性较好,一半不会报错,但是在weblogic中就会报错。)

 

如果采用<jsp:include page="b.jsp"/>那么b.jsp中如果没有

%@page contentType="text/html;charset=GBK"%
这段代码,那么将会出现如下错误:

this is aa.jsp ????bb.jsp?????? 乱码

解决:保证b.jsp中也有<%@page contentType="text/html;charset=GBK"%>代码。

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    JSP:include和include指令区别

    在JavaServer Pages (JSP) 技术中,`&lt;jsp:include&gt;` 和 `&lt;%@ include %&gt;` 是两个用于页面组合的指令,它们虽然都用于将一个或多个文件的内容插入到主页面中,但它们的工作机制和使用场景有所不同。理解这两者的区别...

    include 两种用法的区别

    在JSP中有两种不同的`include`用法:`&lt;%@ include file="..." %&gt;` 和 `&lt;jsp:include page="..." flush="true"/&gt;`。这两种方式虽然都可以达到将一个页面包含进另一个页面的效果,但它们在执行时间和引入内容方面存在...

    jsp的include的两种用法

    JSP 中的 Include 有两种用法,分别是 `&lt;%@ include file=” ”%&gt;` 和 `&lt;jsp:include page=” ” flush=”true”/&gt;`。这两种用法都可以用于引入其他 JSP 文件,但是它们之间存在着一些关键的区别。 首先,让我们...

    JSP图书管理系统

    &lt;td height="277" align="center" valign="top"&gt;&lt;%@include file="changxiao.jsp"%&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;br&gt; &lt;table width="208" height="356" border="0" cellpadding="0" cellspacing="0" background=...

    jsp页面错误信息

    &lt;%@ page language="java" contentType="text/html; charset=gb2312"%&gt; &lt;html&gt; ... &lt;tr &gt;&lt;td colspan="2"&gt;&lt;%@ include file="view/AdminEnd.jsp" %&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;/center&gt; &lt;/body&gt; &lt;/html&gt;

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

    nt test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;This content is statically in the main JSP file.&lt;br/&gt;&lt;jsp:include page="included.html"/&gt;&lt;/body&gt;&lt;/html&gt;]]&gt;)正如你所见,清单2使用了传统的`&lt;%@include file="..."%&gt;`伪指令来包含...

    JSP页面的头和脚

    &lt;%@ include file="../common/header.jsp" %&gt; ``` - **页面实际内容**: ```jsp &lt;%--页面实际内容 --%&gt; &lt;p&gt;本实例向您展示了使用 include 指令的方法!&lt;/p&gt; ``` - **包含页脚文件内容**: ```jsp &lt;%--包含...

    jsp基本语法(指令,包括各种动作,表达式,内置对象等)

    &lt;jsp:include page="page.jsp" flush="true"/&gt; ``` **示例**: ```jsp &lt;jsp:include page="header.jsp" flush="true"/&gt; ``` #### jsp:plugin 动作 jsp:plugin 动作用于在Web页面中嵌入Java Applet或其他Java插件。 ...

    第六章 JSP技术.docx

    - `&lt;jsp:include page="header.jsp" /&gt;` 和 `&lt;jsp:include page="footer.jsp" /&gt;` 会在运行时动态加载`header.jsp`和`footer.jsp`的内容。 - 这种方式称为动态包含,因为包含的动作是在运行时发生的,而不是在编译时...

    12-File-Inclusion-Chinese.pdf

    根据提供的文件信息,本篇文章将围绕“在JSP页面中包含文件”的主题展开,深入探讨JSP中的两种主要包含机制:`jsp:include`动作标签与`&lt;%@ include %&gt;`指令,以及它们在实际开发中的应用场景。 ### JSP页面中的文件...

    WEB开发 之 JSP指令.docx

    `&lt;%@ include file="relativePathToFile.jsp" %&gt;` 这将在编译时将指定的文件内容合并到当前JSP页面中。这与JSP的`&lt;jsp:include&gt;`动作元素不同,后者是在运行时动态地包含页面内容。 理解并正确使用JSP指令是成为一...

    小型bbs jsp源代码

    &lt;%@ include file="conn.jsp"%&gt; &lt;% sql="select * from users where name='"+name+"' and password='"+password+"'"; ResultSet rs =statement.executeQuery(sql); if (rs.next()) { disable=rs.getBoolean(...

    JSP语法详解.txt

    &lt;%@ include file="date.jsp" %&gt; &lt;/font&gt; &lt;/body&gt; &lt;/html&gt; ``` 其中,`date.jsp`的内容为: ```jsp &lt;%@ page import="java.util.*" %&gt; &lt;%=(new java.util.Date()).toLocaleString()%&gt; ``` 当页面加载时,`date.jsp`...

    课程设计(JSP)代码第3章

    &lt;%@ include file="check.jsp"%&gt; &lt;html&gt; &lt;frameset rows="15%,*"&gt; &lt;frame name="top" src="top.jsp" frameborder="1" bordercolor="#FFCCCC"&gt; &lt;frameset cols="30%,*"&gt; &lt;frame name="left" src="left....

    JSP学习(二)

    本篇文章将重点解析JSP中的三种主要指令:`&lt;@page&gt;`, `&lt;%@include&gt;` 和 `&lt;%@taglib&gt;`。 1. `&lt;@page&gt;`指令: 这个指令是用在页面级别,用于设置整个JSP页面的属性和行为。例如,你可以指定页面的字符编码、错误页面...

    Jsp程序设计第二讲.ppt

    - **动态包含**:`&lt;jsp:include page="uri" flush="true"&gt;`,支持参数传递,例如`&lt;jsp:param name="paramName" value="paramValue"&gt;`。 **JSP示例**:创建一个9x9的乘法表格: ```jsp &lt;%@ page language="java" ...

    jsp教学课件 java基础

    - 示例:`&lt;%@ page import="java.io.*" %&gt;`, `&lt;%@ include file="header.jsp" %&gt;` 3. **动作语法(ACTION)**:用于执行特定的操作,如重定向、获取bean属性等。 - 示例:`&lt;jsp:forward page="next.jsp" /&gt;`, `&lt;jsp:...

    我从JSP最简单开始教你

    4. **包含指令**:`&lt;%@include file="...."%&gt;`,静态地包含其他文件内容,不进行翻译,适合于复用页面元素。 5. **JSP指令**:`&lt;%@ ... %&gt;`,如`&lt;%@page import="..."%&gt;`用于导入包,`&lt;%@page contentType="text/...

    web开发期末考试试题

    Web开发期末考试试题知识点总结 在本次考试中,我们将涵盖Web开发的多个方面,包括服务器端脚本语言、Web项目目录结构、Web架构、...2. 将date.jsp页面内容以include指令方式进行调用:&lt;%@ include file="date.jsp" %&gt;

Global site tag (gtag.js) - Google Analytics