菜单

列面临遇见的题目——jsp:include

2018年11月16日 - Java

 

http://lixinghua.blog.51cto.com/421838/101381

在此谢谢大家了( ̄︶ ̄)↗

是因为<jsp:include>中url是由于逐一取得的参数拼成的,我难以置信是项目 I
那里参数接收的发生题目,或者项目 M
那个由参数拼成的url是勿科学的(适用于运作条件,不适用于tomcat)。

表明信息透过<jsp:include>引出项目 I 的内容。

 

今日工作历程中遇见了一个题目:有半点只工,就让做 ” I ” 和 ” M ” 吧。项目
I 写了JSP的布局,样式,数据获得;项目 M 包含页面的跳转
页面的header部分由M加载出来,

图片 1

但是!!我 I 部分的镜头!就是加载不出来!!!QAQ 咋回事啊
我为深绝望啊!!!

一个jsp页面引入另一个jsp页面的老三种方法 及静态引入和动态引入的区分

1.第一种:jstl  import 

 <c:import url=”inlayingJsp.jsp”></c:import> 
2. 第二种:jsp include指令

include指令告诉容器:复制被含有文件汇总的有内容,再把她粘贴到之文件被。

<%@ include file=”inlayingJsp.jsp” %>

3. 第三种:jsp include动作

<jsp:include   page=”inlayingJsp.jsp” flush=”true”/>

 

小心:(1)include指令在换时插入“Header.jsp”的源代码,而<jsp:include>动作在运作时插入“Header.jsp”的应。

                <%@include为静态包含,<%@include不论包含的是txt文本还是jsp文件,被含有的页面还不见面打新编译。

                <%@include为静态包含,包含了几只JSP转译成servlet时即会起 
几 个
class文件,如果在jsp1定义了变量i同时于jsp2也定义了变量i那么您编译都见面接不了的,

                 jsp容器会报你i重复定义了.
                <jsp:include 为动态包含,<jsp:include 如含有jsp文件,这每次加载主页面的时,被含有的页面都设重编译。
                 
就是说无论是您包含了几乎只jsp页面转译成servlet时惨遭起一个class文件

                 所以说对<%@include要慎用!

            (2)使用jstl标签时,一定要是以jsp文件头在以下代码:<%@taglib
prefix=”c” uri=”http://[Java](http://lib.csdn.net/base/17).sun.com/jsp/jstl/core"%&gt;

 

1、什么是静态导入?

静态导入指的凡,将一个外部文件嵌入至手上JSP文件中,同时分析这个页面的JSP语词,它会拿目标页面的另外编译指令也含有进来。
include的静态导入指令以语法:

<%@include file="relativeURLSpec"%>

静态导入使用范例include1.jsp:

 1 <%@ page contentType="text/html; charset=utf-8" language="java" errorPage="" %>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head>
 5 <title>静态include范例</title>
 6 </head>
 7 <body>
 8 <!--使用include编译指定导入页面-->
 9 <%@include file="error.jsp"%>
10 </body>
11 </html>

其中error.jsp是一个简单的错误处理页面,代码如下:

 1 <%@ page contentType="text/html; charset=utf-8" language="java" isErrorPage="true" %>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head>
 5 <title>错误提示页</title>
 6 </head>
 7 <body>
 8 这是一个错误处理页面</br>
 9 </body>
10 </html>

当tomcat下运作该静态include范例后,查看转的servlet类可观看如下代码段

(查看方:windows下,找到tomcat安装目录下的work文件夹,进入Catalina文件夹下的localhost文件夹,找到时档所当的公文夹,找到org目录,进入其下的apache目录下之jsp文件夹,即可看出一个include1_jsp.java文件,这便是该include1.jsp针对应生成的servlet类。ps:我是将这个测试页面在webDemo下的,所以我之目是\apache-tomcat-7.0.47\work\Catalina\localhost\webDemo\org\apache\jsp)

图片 2

自四方中即可看出静态导入是:包含页面在编译时以完全含被含有页面的代码。需要指出的凡,静态导入还会拿为含有页面的编译指令也富含进来,如果个别单页面的编译指令发出冲突,那么页面就见面出错。

2、什么是动态导入

动态导入是匪会见导入include页面的编译指令的,而是一味用吃导入页面的body内容插入本页面。
动态导入的语法格式:

<jsp:include page="{relativeURL|<%=expression%>}" flush="true"/>

或者

1 <jsp:include page="{relativeURL|<%=expression%>}" flush="true">
2 <jsp:param name="parameterName" value="parameterValue"/>
3 </jsp:include>

flush属性用语指定输出缓存是否转移到叫导入文本中。如果指定为true,则带有在为导入文本中,如果指定为false,则带有在原本文件被,对于JSP1.1旧本子,只能设置也false。
对此第二栽语法格式,则只是在让导入页面被加入额外的乞求参数。

动态导入范例:

咱将方的include1.jsp代码静态导入改吗动态导入

 1 <%@ page contentType="text/html; charset=utf-8" language="java" errorPage="" %>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head>
 5 <title>静态include范例</title>
 6 </head>
 7 <body>
 8 <!--使用include编译指定导入页面-->
 9 <jsp:include page="error.jsp" />
10 </body>
11 </html>

编译后翻看转的servlet代码,可以见到如下段:

图片 3

红方框中代码显示出,动态导入只是以了一个include方法来插入目标页面的始末,而不是以对象页面完全融入到本页面中。
归纳起来,静态导入和动态导入有如下三触及分别:

1、静态导入是拿受导入页面的代码完全融入,两单页面融合成为一个整Servlet;而动态导入则于Servlet中使用include方法来引入被导入页面的始末。
2、静态导入时让导入页面的编译指令会打作用;而动态导入时吃导入页面的编译指令则去作用,只是插入被导入页面的body内容。
3、动态导入还可以增加额外的参数。即如下代码方式:

1 <jsp:include page="{relativeURL|<%=expression%>}" flush="true">
2 <jsp:param name="parameterName" value="parameterValue"/>
3 </jsp:include>

 

 

 在押罢这些自大体是懂丶引入jsp是怎么回事了,希望吗能够帮忙到大家!

 希望明天自力所能及缓解好是题材,我们下期再见!

 图片 4

有关JSP引用其他JSP,我看齐这篇帖子 https://blog.csdn.net/fn\_2015/article/details/70311495 觉得这号带哥转载的得挺棒,所以,我操把内容愉快的搬过来~

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图