JSP中包含文件的两种方式

合集下载

JSP实验二-JSP基本语法

JSP实验二-JSP基本语法

Java web应用编程基础实验报告实验2:JSP基本语法实验姓名:___ ____班级:______学号:____ _成绩:_____一、实验目的:●熟悉HTML语法,理解和掌握JSP基本语法。

●初步掌握JavaScript的使用●初步掌握利用指令、脚本元素和动作元素,进行简单的JSP和HTML混合编程的方法和技术。

二、实验要求:●理解Web Server,正确使用Apache的Tomcat建立JSP Server。

●编写程序完成以下实验内容,通过手工和MyEclipse两种方式分别完成JSP文件的布署。

●上交实验报告电子文档(文档包含源程序,以班级、学号、姓名依次出现组成的字符串标识文档,以班级为单位上交).三、实验内容:1、采用声明实现访问计数器count.jsp,并在页面中显示:“当前访问本网站的用户数为:**人/次。

"程序:〈%@ page language=”java" import="java.util.*" pageEncoding="GB2312”%〉〈html〉<head〉<title〉网页访问计数〈/title></head>〈body><%if (application。

getAttribute(”count")== null) {application。

setAttribute("count”, new Integer(0));}Integer count=(Integer)application.getAttribute("count");application。

setAttribute("count”, new Integer(count.intValue()+ 1));count=(Integer)application.getAttribute("count");%>〈center>你是第<%=count。

JSP中的静态包含和动态包含的区别

JSP中的静态包含和动态包含的区别

JSP中的静态包含和动态包含的区别<%-- 静态包含 --%><%@ include file="..." %><%-- 动态包含 --%><jsp:include page="..."><jsp:param name="..." value="..." /></jsp:include>区别: 1.最终编译成的java⽂件的数量不同 静态包含转换成java⽂件时,将包含⽂件的内容“复制”到主题⽂件中,然后作为⼀个整体编译,最终编译为⼀个class⽂件,⽽动态包含是各个jsp⽂件分别转换,分别编译,最终编译成多个class⽂件 2.执⾏时间不同 静态包含是编译时包含 -JSP---->java⽂件阶段。

如果包含的页⾯不存在则会产⽣编译错误,⽽且两个页⾯的"contentType"属性应保持⼀致,不能有相同的变量名 因为两个页⾯会合⼆为⼀,只产⽣⼀个class⽂件,因此被包含页⾯发⽣的变化再包含它的页⾯更新前不会得到更新,需要重新编译更新。

⽽动态包含是运⾏时包含 -执⾏class⽂件阶段,可以向被包含的页⾯传递参数,包含页⾯和被包含页⾯是独⽴的,会编译出多个class⽂件, 如果被包含的页⾯不存在,不会产⽣编译错误,也不影响页⾯其他部分的执⾏ 3.⽆论是动态包含还是静态包含,其request对象都是相同的。

静态包含最终编译成⼀个java⽂件,有⼀个request对象。

⽽动态包含最终编译成多个java⽂件,其实这些jsp组合的过程,是⼀个请求转发的过程,⾃然也使⽤同⼀个request对象了。

web试卷

web试卷

单选题1、下面哪一个不是JSP本身已加载的基本类(B)A、.*B、.*C、.*D、、以下对象中的( D )不是JSP的内置对象。

A、requestB、sessionC、applicationD、bean3、下面的说法错误的是:(D)A、Jsp可以处理动态内容和静态内容B、在Jsp最终会编译成字节码后执行C、在jsp中可以使用脚本控制Html的标签生成D、Jsp中不能使用 D )A、JSP标签,如指令标签B、普通的HTML标记符C、Java表达式D、C语言程序12、如果Tomcat安装后,想要修改它的端口号,可以通过修改<tomcat安装目录>/conf下的(B)文件来实现。

A、 B、C、 D、13、()方法的作用是:( B )A、获取客户提交的信息B、获取客户的IPC、获取客户机的名称D、获取服务器的IP14、当( C )时,JSP引擎产生一个session对象。

A、web应用服务器启动时B、当web应用服务器启动后,第一个客户来访时C、当每个客户首次访问服务器上的一个JSP页面时D、当每个客户首次访问服务器上的一个JSP或HTML页面时15、当( A )时,JSP引擎产生一个application对象。

A、web应用服务器启动后B、当web应用服务器启动后,第一个客户来访时C、当每个客户首次访问服务器上的一个JSP页面时D、当每个客户首次访问服务器上的一个JSP或HTML页面时16、不属于JSP的out对象的方法的是( A )。

A、getAttribute ()B、print()C、println()D、close()17、当( C )时,JSP引擎将消灭某一个session对象。

A、有新客户访问时B、web应用服务器启动后,第一个客户来访时C、该session对应的客户关闭浏览器D、该session对应的客户刷新jsp页面时18、下面对HTML描述准确的一项是(C)。

A、用html书写的文件是二进制文件B、一个html文件无论被什么Web浏览器解释,其显示结果都是一样的C、html标记是不区分大小的D、html文件中有标记书写不合法时, Web浏览器会给出错误警告19、Connection对象用来连接:(B)A、数据库B、数据源C、.classsD、.java20、给定JSP程序源码如下:<html><% int count =1; %>________</html>以下哪一条语句可以在下划线处插入,并且运行后输出结果是(D)A、<%=++count %> B、<%++count;%>C、<%count++;%>D、<%=count++%>21、JSP程序段的基本语法是( C )。

jsp 6个常用标签

jsp 6个常用标签

一、Include指令<jsp:include>标签表示包含一个静态的或者动态的文件。

语法:<jsp:include page="path" flush="true" />or<jsp:include page="path" flush="true"><jsp:param name="paramName" value="paramValue" /></jsp:include>注:1、page="path" 为相对路径,或者代表相对路径的表达式。

2、flush="true" 必须使用flush为true,它默认值是false。

3、<jsp:param>子句能让你传递一个或多个参数给动态文件,也可在一个页面中使用多个<jsp:param> 来传递多个参数给动态文件。

二、Forward指令<jsp:forward>标签表示重定向一个静态html/jsp的文件,或者是一个程序段。

语法:<jsp:forward page="path"} />or<jsp:forward page="path"} ><jsp:param name="paramName" value="paramValue" />……</jsp:forward>注:1、page="path" 为一个表达式,或者一个字符串。

2、<jsp:param> name 指定参数名,value指定参数值。

参数被发送到一个动态文件,参数可以是一个或多个值,而这个文件却必须是动态文件。

用Jsp来实现文件下载功能的几种方式

用Jsp来实现文件下载功能的几种方式

1.最直接最简单的,方式是把文件地址直接放到html页面的一个链接中。

这样做的缺点是把文件在服务器上的路径暴露了,并且还无法对文件下载进行其它的控制(如权限)。

这个就不写示例了。

2.在服务器端把文件转换成输出流,写入到response,以response把文件带到浏览器,由浏览器来提示用户是否愿意保存文件到本地。

(示例如下)
3.既然是JSP的话,还有一种方式就是用Applet来实现文件的下载。

不过客户首先得信任你的这个Applet小程序,由这个程序来接受由servlet发送来的数据流,并写入到本地。

servlet端示例
JApplet端示例
4.顺便把JApplet上传文件的代码也贴上来. JApplet端示例
servlet端代码示例
总结:在文件的传输中是流的形式存在的,在硬盘上是文件的形式存在的。

我们要做的只是通过HttpServletRequest和HttpServletResponse,或者是response和request来发送流和读取流。

以及把文件转换成流或把流转换成文件的操作。

include js用法

include js用法

include js用法静态include: <%@ inlcude file =”header.jsp” %>此时引入的是静态的jsp文件,它将引入的jsp中的源代码原封不动地附加到当前文件中,所以在jsp程序中使用这个指令的时候file里面的值(即要导入的文件)不能带多余的标签或是与当前jsp文件重复的东西。

例如里面不要包含<html><body>这样的标签,因为是把源代码原封不动的附加过来,所以会与当前的jsp中的这样的标签重复导致出错。

动态include: <jsp:include page=”header.jsp”flush=”true” ></jsp:include>此时引入执行页面或生成的应答文本.jsp:include标签导入一个重用文件的时候,这个文件是经过编译的,通俗点说就是附加这个要导入文件经过编译后的效果,所以可以含有与当前jsp程序中重复的内容,因为在附加过来之前就会被解析掉。

其中flush 表示在读入包含内容之前是否清空任何现有的缓冲区。

2.include页面携带入参<jsp:include page=”header.jsp” flush=”true”><jsp: paramname=”userID”value=”2”/><jsp:include><jsp:param name = "" value="">是将值传给被包含页面(即header.jsp),可通过<%=request.getParameter("userID")%>获取3.两种用法的区别翻译阶段:jsp页面不能原封不动地被传送给浏览器,全部的jsp元素都必须首先由服务器进行处理。

这是通过将jsp 页面转达化成servlet,然后执行这个servlet来结束的。

JSP中动态INCLUDE与静态INCLUDE的区别

JSP中动态INCLUDE与静态INCLUDE的区别

java面试笔试题:JSP中动态INCLUDE与静态INCLUDE的区别动态INCLUDE用jsp:include动作实现<jsp:include page="" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数.静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="" %>下面非常详细地解析了有关JSP动态INCLUDE和静态INCLUDE的使用方法及其区别:我们都知道在jsp中include有两种形式,分别是<%@ include file=" "%><jsp:include page=" " flush="true"/>前者是指令元素、后者是行为元素.具体它们将在何处用如何用及它们有什么区别这应该是很多人看到它都会想到的问题.下面一起来看看吧.通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用include.具体在哪些时候用<%@ include file=" "%>,哪些时候用<jsp:include page=" " flush="true"/>.这种形式.首先要明白的是它们之间的区别.只有了解了它们用法的不同才理解该在何时去用以及如何选择.<%@ include file=" "%>,jsp的include指令元素读入指定页面的内容.并把这些内容和原来的页面融合到一起. (这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的.这里对翻译阶段进行一下说明:我们知道,jsp页面不能原封不动地被传送给浏览器,所有的jsp元素都必须首先由服务器进行处理.这是通过将jsp页面转达化成servlet,然后执行这个servlet来完成的.服务器需要一个jsp容器来处理jsp页面.jsp容器通常以servlet的形式来实现,这个servlet经过配置,可以处理对jsp页面的所有请求.Jsp容器负责将jsp页面转化成servlet(称为jsp页面实现类JSP Page implementation class),并编译这个servle t.这两步就构成了翻译阶段.由此我们就会知道:jsp页面是把include指令元素所指定的页面的实际内容(也就是代码段)加入到引入它的jsp 页面中,合成一个文件后被jsp容器将它转化成servlet.可以看到这时会产生一个临时class文件和一个java文件.下面举个例子.服务器用tomcat,引入页面的jsp文件叫.被引入的页面叫.这个jsp文件里存放的是一个有关时间的jsp代码,当前的上下文根设为test<head><body><table><tr><td>有关jsp中include的两种用法.敬请关注.</td></tr></table></body></html>在文件中,我们只输出了一行文本" 有关jsp中include的两种用法.敬请关注.",现在让我们先用<%@ include file="" %>这种形式引入这个文件.你想会出现什么问题了吗此时出现了错误提示:HTTP Status 500/(0,0) Page directive: can't have multiple occurrences of contentType以下还有一堆错误,但我们只要看这里就知道问题的所在了.状态码为http 500服务器内部错误.再看下面的提示.在页面中不能指定多个contentType.原因就在这里了.是因为在翻译阶段,文件的代码被原封不动地加入到了页面从而合成一个文件.合成后的文件中就会相同的:<%@ page language="java" contentType="text/html;charset=gb2312"%>这句代码.解决的办法是把文件中的这句删掉.刷新后再请求页面请求在页面显示如下2003年12月10日13:12:40有关jsp中include的两种用法.敬请关注.这时我们还不能发现什么.还是去查看tomcat下的临时文件吧.到那里去看看文件的内容是否已被加入到了文件中.<注.此处的tomcat装在E盘根目录下>目录E:\tomcat\work\Standalone\localhost\test.在这个目录下会看到和两个文件.这里的java文件就是jsp容器将jsp转化成了servlet而得到的这个文件.相对应的这个文件就是编译这个servlet文件产生的类文件了.打开所产生的servlet文件.此时我们会发现,在文件被转化成servlet文件时,在输出的<haed>之间加入了一些不是页面里面的代码,新加入的内容就是里面的代码: 新加入了哪些内容或是否真的加入了新的内容请自己测试去看一下就会一目了然了.在这里不再详述.以上就是我们用<%@ include file=""%>这种形式得到的结果.下面我们换用<jsp:include page="" flush="true"/>也就是将<%@ include file=""%>换成<jsp:include page="" flush="true"/>,然后请求.2003 ê 1210 13:30:13有关jsp中include的两种用法.敬请关注.此时会在页面上看见.我们所引入输出的日期中中文出现了乱码.什么原因是因为include行为元素是在请求处理阶段执行的(此处要对请求处理阶段进行说明一下.Jsp容器除了上面提到的负责将jsp页面转化成servlet外,还负责调用jsp页面实现类以处理每个请求并产生应答.这个阶段我们就称为请求处理阶段.请求处理阶段仅执行类文件).所以在我们作include行为元素引入页面时,实际只是引用了这个文件被转化并被编译后产生的servlet类文件.既如此, 就是作为一个单独的文件在执行后才被文件运行时调用.由于文件中没有指定字符编码.所以出现了乱码.解决办法是在文件中重新把刚才去掉的<%@ page language="java" contentType="text/html;charset=gb2312"%>这行语句加入后刷新重新运行.此时页面显示正确,并跟用include指令正常运行时一样.再查看tomcat下的临时文件会发现.此时多出了一个文件和一个文件.这两个文件得来的方式跟和文件得来的方式一样.再查看一下此时文件的代码会发现.此时只新增加了一句代码:(request, response, "", out, true);它并没有把文件的代码加入到.只是在运行时引入了页面执行后所产生的应答.这意味着我们可以指定任何能够产生应答的Web资源,(例如一个servlet或一个jsp页面),只要这些资源所产生的类型和jsp页面产生的内容类型相同.JSP容器将通过一个内部的函数调用来执行指定的资源.因此,这些被引入的资源可以帮助处理原来的请求,所以这些资源可以访问请求作用域内的所有对象.以及所有原来的请求参数.由于在主页面被请求时,这些页面还没有被引入到主页面中,所以你可以对page属性使用一个请求时属性值,以便根据运行时的情况来决定要引入哪一个页面.还可以添加一些将被引入的页面读取的请求参数.<jsp:include page="<%=pageSelectedAtRuntime%>" flush="true" ><jsp:param name="fitstParamer" value="firstValue"><jsp:param name="lastParamer" value="lastValue"></jsp:include>如果修改了被引入的jsp页面,那么可以立刻使用该页面的最新版本,这是因为对待被引入的页面的方式与对待由浏览器直接调用的jsp页面的方式完全相同.即容器检测页面的变化,并自动进入翻译阶段,以得到页面的最新版本.(注意,include行为元素同jsp其它元素一样,没有行为体时要以"/"结束.就像下面这样.<jsp:include page="<%=pageSelectedAtRuntime%>" flush="true" />)以下是对include 两种用法的区别主要有两个方面的不同;一:执行时间上:<%@ include file="relativeURI"%> 是在翻译阶段执行<jsp:include page="relativeURI" flush="true" /> 在请求处理阶段执行.二:引入内容的不同:<%@ include file="relativeURI"%>引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.<jsp:include page="relativeURI" flush="true" />引入执行页面或servlet所生成的应答文本.另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.更多有关URL是如何解释的请参考相关资料或书籍.。

jsp程序设计笔试判断

jsp程序设计笔试判断

1.动态网页和静态网页的根本区别在于服务器端返回的HTML文件是事先存储好的还是由动态网页程序生成的(对)2.互联网起源于美国国防部高级研究计划管理局建立的ARPA网。

(对)3.在网页中图形文件与网页文件是分别存储的。

(对)4.绝度路径是文件名的完整路径;相对路径是指相对当前网页文件名的路径。

(对)5.超级链接<a>标记的target属性取值为链接的目标窗名,可以是parent、blank、self、top。

(错)6.当样式定义重复出现的时候,最先定义的样式起作用(错)。

7.在HTML页面文件中加入JSP脚本元素、JSP标记等就构成了一个JSP页面。

(对)8.JSP页面中的变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)统称为JSP标记。

(对)9.在“<%!”和“%>”标记之间声明的Java的变量在整个页面内有效,不同的客户之间不共享。

(错)10.页面成员方法不可以在页面的Java程序片中调用。

(错)11.程序片变量不同于在“<%!”和“%>”之间声明的页面成员变量,不能在不同客户访问页面的线程之间共享。

(对)12.在Java程序片中可以使用Java语言的注释方法,其注释的内容会发送到客户端。

(错)13.jsp:include动作标记与include指令标记包含文件的处理时间和方式不同。

(对)15.<jsp:forward ... >标记的page属性值是相对的URL地址,只能静态的URL。

(错)14.public long session.setMaxInactiveInterval() 设置最长发呆时间,单位毫秒。

(错)15.session对象可以用来保存用户会话期间需要保存的数据信息。

(对)17.url重写可以把session对象的id作为url参数传带过去,可以使用request对象的encodeURL(“”)。

chap5_JSP中的文件操作

chap5_JSP中的文件操作
3
File类
File类的对象主要用来获取文件本身的一些 信息,例如文件所在的目录、文件的长度、 文件读写权限等,不涉及对文件的读写操作, 主要操作包括获取文件属性和管理目录 File对象的构造方法: File(String filename); File(String directoryPath, String filename ); File(File f, String filename);

11
FlieOutputStream类
构造函数: FileOutputStream(String name); FileOutputStream(File file); 参数name和file指定的文件称为输出流的目的地,通 过向输出流写入数据把信息送往目的地 一般是在try-catch语句的try块部分创建输出流对象, 在catch(捕获)部分检测并处理这个异常 void write(byte b[]); void write(byte b[], int off, int len);
17
RandomAccessFile类



RandomAccessFile流的指向既可以作为源,也可以 作为目的地 当需要对一个文件进行读写操作时,可以创建一个指 向该文件的RandomAccessFile流,这样既可以读也 可以写 RandomAccessFile(String name, String mode) RandomAccessFile(File file, String mode) 参数mode取r或rw,决定对流文件的访问权限 方法seek(long a)用来移动RandomAccessFile流指 向的文件的指针,参数a确定文件指针距离文件开头的 字节位置 方法getFilePointer()可以获取当前文件指针的位置

jsp文件中引用外部.css或.js文件的路径问题

jsp文件中引用外部.css或.js文件的路径问题

引用外部.css或.js文件的路径问题个人日记2010-03-25 12:10:26 阅读135 评论1 字号:大中小订阅引用外部.css或.js文件的路径问题文章分类:Web前端jsp或html页面引用外部.css或.js文件时,注意路劲问题,如果设置不当,会引用不到这些外部的文件假设使用下面的目录结构:-webapp|-MyProject 目录|--WebContent 目录|---scripts 目录---dtree.js 文件|---styles 目录---main.css 文件|---pages 目录---test.jsp 文件现在例如要在test.jsp中引用scripts目录下的dtree.js和styles目录下的main.css有如下几种方法:1.使用相对于jsp页面的相对路径Html代码[url=/blog/577469#][/ url]1<link type="text/css"rel="stylesheet"href="../styles/main.css"/>2<script type="text/javascript"src="../scripts/dtree.js"></script><link type="text/css" rel="stylesheet"href="../styles/main.css" /><scripttype="text/javascript"src="../scripts/dtree.js"></script>这样在页面使用http://localhost:8080/MyProject/test.jsp 访问test.jsp时就可以引用到dtree.js和main.css。

jspinclude用法

jspinclude用法

jspinclude用法1.静态包含静态包含是指在JSP编译时将被包含的文件的内容直接嵌入到当前JSP文件中。

静态包含的语法如下:其中,filename是要被包含的文件名,可以是相对路径或绝对路径。

静态包含的特点是包含的文件内容会在JSP文件编译时被插入到当前文件中,因此在运行时只剩下一个JSP文件。

这种方式适合用于在多个JSP页面中共享相同的代码块或页面布局,可以提高代码的复用性和可维护性。

2.动态包含动态包含是指在JSP运行时动态地决定要被包含的文件。

动态包含的语法如下:<jsp:include page="filename" [flush="true,false"] [errorPage="url"] [isErrorPage="true,false"] />其中,filename是要被包含的文件名,可以是相对路径或绝对路径。

flush属性表示是否在包含之前刷新缓冲区,默认值为false。

errorPage属性是一个可选属性,用于指定该包含的JSP文件是一个错误页面。

isErrorPage属性表示包含的JSP文件是否是一个错误页面,如果为true,则可以使用内置对象exception和error_page来处理异常。

动态包含和静态包含的最大区别在于,动态包含是在运行时进行的,因此可以根据业务逻辑决定是否包含一些文件。

动态包含的文件可以由用户输入、数据库查询结果或者其他变量来决定。

使用include指令的一般步骤如下:1. 创建两个JSP文件,一个叫做"main.jsp",另一个叫做"included.jsp"。

2. 在included.jsp文件中填入以下内容:<!DOCTYPE html><html><head><title>included.jsp</title></head><body><p>This is the included page.</p></body></html>3. 在main.jsp文件中填入以下内容:<!DOCTYPE html><html><head><title>main.jsp</title></head><body><p>This is the main page.</p></body></html>4. 运行main.jsp文件,你会看到main.jsp页面中的内容被显示出来,然后是included.jsp页面中的内容。

JSP填空题和判断题

JSP填空题和判断题

填空题1.W3C是指___万维网联盟_______。

2.Internet采用的通信协议是___TCP/IP___。

3.当今比较流行的技术研发模式是__C/S__和__B/S__的体系结构来实现的。

4.Web应用中的每一次信息交换都要涉及到__服务器_和_客户端__两个层面。

5.HTML文档的开头和结束元素为__<html></html>_____。

6.表格定义中使用的子标记<td>的含义为___单元格___。

7.将一个图像作为一个超级链接,用到了__<img>__标记。

8.input表单域表示一个文本框时,它的type属性应该赋值为__text____。

9.URL是Uniform Resource Locator的缩写,中文称之为统一资源定位器。

10.超级链接标记<a>的href属性取值为链接的目标地址。

11.一个完整的JSP页面是由普通的HTML标记、JSP指令标记、JSP 动作标记、变量声明与方法声明、程序片(Scriptlet)、表达式()、注释(Comment) 7种要素构成。

12.JSP页面的基本构成元素,其中变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)统称为JSP脚本元素。

13.指令标记、JSP动作标记统称为 JSP标记。

14.“<%!”和“%>”之间声明的方法在整个页面内有效,称为页面的成员方法。

15.在“<%!”和“%>”之间声明的变量又称为页面成员变量,其作用范围为整个JSP页面。

16.JSP页面的程序片中可以插入 HTML 标记。

17.当JSP页面的一个客户线程在执行 synchronized 方法时,其他客户必须等待。

18.JSP页面中,输出型注释的内容写在“<!--”和“-->”之间。

19.JSP声明函数时,如果在前面加上_synchronize 关键字,功能是当前一个用户在执行该方法时,其他用户必须等待,直到该用户完成操作。

jsp第6章

jsp第6章

(2) calculate.jsp文件的源代码如下。
<%@ page contentType="text/html; charቤተ መጻሕፍቲ ባይዱet=gb2312"%>
<FORM ACTION="" METHOD="post"> <INPUT TYPE="text" NAME="ok">
<INPUT TYPE="submit" VALUE="计算">
确的:
<%@ page import="java.io.* ", "javax.servlet.* ",
"java.util.Date"%>
或者 <%@ page import="java.io.* " %>
<%@ page import= "javax.servlet.* ",
"java.util.Date"%> 注意:page指令对整个页面有效,可以在JSP页面的
任何地方写这种代码。但是,好的习惯是把它写在JSP程
序的最前面,而且因为它是JSP页面指令,请记住一定要 写在<HTML>标记的前面。
6.1.2 include指令
include指令的作用是在JSP页面出现该指令的位置处
静态插入一个文件,即通知JSP容器在当前页面的include 指令位置上嵌入指定的资源文件的内容。include指令的语
出了page指令的属性及其作用。
表6.1 page指令的属性及其用法说明

重庆邮电大学专业考试卷-JSP程序设计 -L

重庆邮电大学专业考试卷-JSP程序设计 -L
2.在JSP中如果要导入java.io.*包,应该使用(A)指令。
A. pageB.taglibC.includeD. forward
.
3.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page指令的( D)
属性。
A. ExceptionB.isErrorPageC.errorD. errorPage .

<jsp:setPropertyname="zhang"property="weight"value="67.65"/>
<P>体重是:
<jsp:getPropertyname="zhang"property="weight"/>
公斤
</FONT>
</BODY>
</HTML>
JSP程序设计试题共6页第6页
答案:
M代表Model(模型),该组件是对软件所处理问题逻辑的一种抽象,封装了问题的核
心数据,逻辑和功能实现,独立于具体的界面显示以及I/O操作。
V代表View(视图),该组件将表示模型数据,逻辑关系以及状态信息,以某种形式
展现给用户。视图组件从模型组件获得显示信息,并且对于相同的显示信息可以通过
不同的显示形式或视图展现给用户。
14.StrutsBean的(B)标记检索Web应用程序资源的结果。
A.defineB.includeC.messageD.page
15.Servlet程序的入口点是:(A)
A.init()B.main()C.service()D.doGet()
得分评卷人二、填空题:本大题共12小题,20个空,每空1分,共

JSP include元素

JSP  include元素

JSP include元素<jsp:include>动作元素表示在当前的JSP页面中,包含静态或动态网页。

在前面的指令中,已经介绍过include指令,它是在JSP文件被转换成Servlet的时候引入文件,而与jsp:include动作有所不同。

<jsp:include>动作可以在当前JSP文件中包含txt文件、JSP文件、HTML文件在上面的两种语法格式中,参数说明如下:●page="{relativeURL | <%= expression %>}该参数为一相对路径,或者是代表相对路径的表达式。

如果路径以“/”开头,那么路径主要是参照JSP应用的上下关系路径。

如果路径是以文件名或目录名开头,那么这个路径就是正在使用JSP文件的当前路径。

●flush="true"在该动作元素中,flush参数必须为true,不能使用false值。

默认值为false。

●<jsp:param name="parameterName" value="{parameterValue | …/><jsp:param>子句能用来传递一个或多个参数给动态文件,用户可以在一个页面中使用多个<jsp:param>来传递多个参数。

下面可以通过创建两文件,并通过include动作元素包含另一个页面的内容。

详细代码如下。

文件名:include.jsp文件名:includedata.jsp通过上述两个文件,在include.jsp文件中,通过<jsp:include>动作元素,来包含includedata.jsp文件。

其中,includedata.jsp文件中,通过实例化Date( )为mydate对象,并显示该对象,如图3-5所示。

图3-5 显示所包含页的内容<jsp:include>动作元素和<%@ include %>指令不同的是:<jsp:include>动作包含的内容可以是动态改变的,在执行时才执行。

JSP中动态INCLUDE与静态INCLUDE的区别

JSP中动态INCLUDE与静态INCLUDE的区别

java面试笔试题:JSP中动态INCLUDE与静态INCLUDE的区别?[日期:2008-09-15] 来源:作者:志伟动态I NC LU DE用js p:i nc lu de动作实现<js p:i nc lu de pag e="i nc lud ed.js p"fl us h="tr ue"/>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数.静态I N C LU DE用inc lu de伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@i nc lu de fil e= "i nc lu ded.ht m"%>下面非常详细地解析了有关JSP动态I NC LU DE和静态I N CLU DE的使用方法及其区别:我们都知道在js p中inc l ude有两种形式,分别是<%@i nc lu de file=""%><js p:i nc lu de p age=""flus h="t rue"/>前者是指令元素、后者是行为元素.具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题.下面一起来看看吧.通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用inc l ud e.具体在哪些时候用<%@i nc lud e file=""%>,哪些时候用<js p:i nc lu de p age=""flus h="t rue"/>.这种形式.首先要明白的是它们之间的区别.只有了解了它们用法的不同才理解该在何时去用以及如何选择.<%@i nc lu de file=""%>,js p的inc l ude指令元素读入指定页面的内容.并把这些内容和原来的页面融合到一起.(这个过程是在翻译阶段:也就是js p被转化成s e rvlet的阶段进行的.这里对翻译阶段进行一下说明:我们知道,js p页面不能原封不动地被传送给浏览器,所有的js p元素都必须首先由服务器进行处理.这是通过将js p页面转达化成s e rvle t,然后执行这个s ervl et来完成的.服务器需要一个js p容器来处理js p页面.js p容器通常以s e rvlet的形式来实现,这个s e rvl et经过配置,可以处理对js p页面的所有请求.Js p容器负责将js p页面转化成s erv let(称为js p页面实现类?JSP P age im ple me nta tio n c las s),并编译这个s er vlet.这两步就构成了翻译阶段.由此我们就会知道:js p页面是把i nc lu de指令元素所指定的页面的实际内容(也就是代码段)加入到引入它的js p页面中,合成一个文件后被js p容器将它转化成s ervl et.可以看到这时会产生一个临时c las s文件和一个jav a文件.下面举个例子.服务器用to mc at,引入页面的js p文件叫t es t.js p.被引入的页面叫d ate.js p.这个js p文件里存放的是一个有关时间的js p代码,当前的上下文根设为tes t//======d a te.js p的源文件=====//<%@p age lan g uage="java"c o nte ntT yp e="te xt/h t ml;c ha rs et=gb2312"%><%java.ut il.Dat e da te=ne w java.uti l.Date();St ri ng dat e_c n="";St ri ng dat eSt r= "";s witc h(dat e.ge tDay()){c as e 0:d ate_c n="日"; b rea k;c as e 1:d ate_c n="一"; b rea k;c as e 2:d ate_c n="二"; b rea k;c as e 3:d ate_c n="三"; b rea k;c as e 4:d ate_c n="四"; b rea k;c as e 5:d ate_c n="五"; b rea k;c as e 6:d ate_c n="六"; b rea k;}d ateS tr= (1900+dat e.ge tY ear()) + "年"+ (date.ge tM ont h()+1) + "月"+ da te.getDa te() + "日(星期"+ da te_c n+ ")";%>d oc u men t.writ e("<%=da teSt r%>");//======以下是tes t.js p的源文件=============//<%@p age lan g uage="java"c o nte ntT yp e="te xt/h t ml;c ha rs et=gb2312"%><h t ml><h ea d><t itl e>i nc lude的两种用法</t itle><js p:i nc lu de p age="da te.js p"fl us h="t r ue"/><%--@i nc lud e file="da te.js p"%-->//我们在这里用inc l ude的两种不同形式来引入dat e.js p这个文件.<h ea d><b od y><t abl e><tr><t d>有关js p中i nc lude的两种用法.敬请关注.</t d></tr></t abl e></b od y></h t ml>在tes t.js p文件中,我们只输出了一行文本"有关js p中inc lu de的两种用法.敬请关注.",现在让我们先用<%@i nc lu de fil e="d ate.js p"%>这种形式引入d ate.js p这个文件.你想会出现什么问题了吗?此时出现了错误提示:H TT P Sta tus500?o rg.apac he.jas pe r.Jas pe rE xc ept io n: /dat e.js p(0,0) P age dir ec tive: c an't have m ulti ple oc c u r r enc es o f c ont en tT ype以下还有一堆错误,但我们只要看这里就知道问题的所在了.状态码为htt p500服务器内部错误.再看下面的提示.在d ate.js p页面中不能指定多个c o nte ntT yp e.原因就在这里了.是因为在翻译阶段,date.js p文件的代码被原封不动地加入到了t es t.js p页面从而合成一个文件.合成后的文件中就会相同的:<%@p age lan g uage="java"c o nte ntT yp e="te xt/h t ml;c ha rs et=gb2312"%>这句代码.解决的办法是把d ate.js p文件中的这句删掉.刷新后再请求t es t.js p页面请求tes t.js p在页面显示如下2003年12月10日13:12:40有关js p中i nc lude的两种用法.敬请关注.这时我们还不能发现什么.还是去查看to mc at下的临时文件吧.到那里去看看d ate.js p文件的内容是否已被加入到了tes t.js p文件中.<注.此处的to mc at装在E盘根目录下>目录E:\to mc at\wo rk\S tan dal on e\loc al hos t\tes t.在这个目录下会看到tes t_js p.java和tes t_js p.c l ass两个文件.这里的java文件就是js p容器将js p转化成了s e rvlet而得到的tes t_js p.java这个文件.相对应的tes t_js p.c las s这个文件就是编译tes t_js p.java这个s ervl et文件产生的类文件了.打开所产生的s er vlet文件(tes t_js p.java).此时我们会发现,在t es t.js p文件被转化成s e rvlet文件时,在输出的<hae d>之间加入了一些不是t es t.js p页面里面的代码,新加入的内容就是dat e.js p里面的代码: 新加入了哪些内容或是否真的加入了新的内容请自己测试去看一下就会一目了然了.在这里不再详述.以上就是我们用<%@inc l ude file="dat e.js p"%>这种形式得到的结果.下面我们换用<js p:i nc lu de p age="da e.js p"flus h="t rue"/>也就是将<%@i nc lu de file="da te.js p"%>换成<js p:inc l ude pag e="d ae.js p"fl us h="t r ue"/>,然后请求tes t.js p.2003?ê12??10??13:30:13有关js p中i nc lude的两种用法.敬请关注.此时会在页面上看见.我们所引入d ate.js p输出的日期中中文出现了乱码.什么原因?是因为i nc lu de行为元素是在请求处理阶段执行的(此处要对请求处理阶段进行说明一下.Js p容器除了上面提到的负责将js p页面转化成s e rv let外,还负责调用js p页面实现类以处理每个请求并产生应答.这个阶段我们就称为请求处理阶段.请求处理阶段仅执行类文件).所以在我们作inc lu d e行为元素引入页面时,实际只是引用了d ate.js p这个文件被转化并被编译后产生的s e r vlet类文件.既如此, da te.js p就是作为一个单独的文件在执行后才被tes t.js p文件运行时调用.由于da te.js p文件中没有指定字符编码.所以出现了乱码.解决办法是在da te.js p文件中重新把刚才去掉的<%@p age lan g uage="java"c o nte ntT yp e="te xt/h t ml;c ha rs et=gb2312"%>这行语句加入后刷新重新运行.此时页面显示正确,并跟用i nc lude指令正常运行时一样.再查看t o mc at下的临时文件会发现.此时多出了一个da te_js p.java文件和一个da te_js p.c lass文件.这两个文件得来的方式跟tes t_js p.java和tes t_js p.c l ass文件得来的方式一样.再查看一下此时tes t_js p.java文件的代码会发现.此时只新增加了一句代码:Js pR unt im eLib ra ry.i nc lu de(r eq ues t, res po ns e, "da te.js p", o ut, tr ue);它并没有把d ate.js p文件的代码加入到tes t.js p.只是在运行时引入了da te.js p页面执行后所产生的应答.这意味着我们可以指定任何能够产生应答的Web资源,(例如一个s er vlet或一个js p页面),只要这些资源所产生的类型和js p页面产生的内容类型相同.JSP容器将通过一个内部的函数调用来执行指定的资源.因此,这些被引入的资源可以帮助处理原来的请求,所以这些资源可以访问请求作用域内的所有对象.以及所有原来的请求参数.由于在主页面被请求时,这些页面还没有被引入到主页面中,所以你可以对pa ge属性使用一个请求时属性值,以便根据运行时的情况来决定要引入哪一个页面.还可以添加一些将被引入的页面读取的请求参数.<js p:i nc lu de p age="<%=p ageS elec te dA tRun ti me%>"fl us h="t r ue"><js p:p ar am na me="fits tP ara me r"va lue="fi rs tV alue"><js p:p ar am na me="las tP ara me r"va lue="las tV alue"></js p:i nc lu de>如果修改了被引入的js p页面,那么可以立刻使用该页面的最新版本,这是因为对待被引入的页面的方式与对待由浏览器直接调用的js p页面的方式完全相同.即容器检测页面的变化,并自动进入翻译阶段,以得到页面的最新版本.(注意,i nc lu de行为元素同js p其它元素一样,没有行为体时要以"/"结束.就像下面这样.<js p:i nc lu de p age="<%=p ageS elec te dA tRun ti me%>"fl us h="t r ue"/>)以下是对i nc lu de两种用法的区别主要有两个方面的不同;一:执行时间上:<%@i nc lu de file="r elat iveU RI"%> 是在翻译阶段执行<js p:i nc lu de p age="re lat iveU RI" fl us h="tr ue"/> 在请求处理阶段执行.二:引入内容的不同:<%@i nc lu de file="r elat iveU RI"%>引入静态文本(h tm l,js p),在JSP页面被转化成s ervl et之前和它融和到一起.<js p:i nc lu de p age="re lat iveU RI" fl us h="tr ue"/>引入执行页面或s ervl et所生成的应答文本.另外在两种用法中file和pa ge属性都被解释为一个相对的U RI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的U RI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.更多有关U RL是如何解释的请参考相关资料或书籍.。

jsp中的include静态包含与动态包含,

jsp中的include静态包含与动态包含,

jsp中的include静态包含与动态包含,d动态包含与静态包含的最⼤区别是静态包含:<%@ include file = "⽂件名.jsp"%>,在<body>的标签外定义。

在没有编译的时候,两个java⽂件都已经包含起来了(合并成⼀个)。

动态包含:<%jsp:include page= "/⽂件名.jsp"> <jsp:include>,在<body>标签内定义。

在编译之前永远是两个java⽂件。

静态包含实例代码:先定义⼀个hel.jsp<%--Created by IntelliJ IDEA.User: sunyubinDate: 2018/9/11Time: 下午8:25To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>Title</title></head><body><%String name ="sunyubin";%></body></html>再定义⼀个lo.jsp⽂件:<%--Created by IntelliJ IDEA.User: sunyubinDate: 2018/9/11Time: 下午8:27To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ include file="/hel.jsp" %><html><head><title>Title</title></head><body><h1><%=name %><h1/></body></html> 先运⾏hel.jsp,再运⾏lo.jsp。

如何在JSP中插入音频或视频文件

如何在JSP中插入音频或视频文件

如何在JSP中插入音频或视频文件1.avi格式<object id="video" width="400" height="200" border="0"classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"><param name="ShowDisplay" value="0"><param name="ShowControls" value="1"><param name="AutoStart" value="1"><param name="AutoRewind" value="0"><param name="PlayCount" value="0"><param name="Appearance value="0 value="""><param name="BorderStyle value="0 value="""><param name="MovieWindowHeight" value="240"><param name="MovieWindowWidth" value="320"><param name="FileName" value="file:///D|/work/vod/Mbar.avi"><embed width="400" height="200" border="0" showdisplay="0"showcontrols="1" autostart="1" autorewind="0" playcount="0"moviewindowheight="240" moviewindowwidth="320"filename="file:///D|/work/vod/Mbar.avi" src="Mbar.avi"></embed></object>2.mpg格式<object classid="clsid:05589FA1-C356-11CE-BF01-00AA0055595A"id="ActiveMovie1" width="239" height="250"><param name="Appearance" value="0"><param name="AutoStart" value="-1"><param name="AllowChangeDisplayMode" value="-1"><param name="AllowHideDisplay" value="0"><param name="AllowHideControls" value="-1"><param name="AutoRewind" value="-1"><param name="Balance" value="0"><param name="CurrentPosition" value="0"><param name="DisplayBackColor" value="0"><param name="DisplayForeColor" value="16777215"><param name="DisplayMode" value="0"><param name="Enabled" value="-1"><param name="EnableContextMenu" value="-1"><param name="EnablePositionControls" value="-1"><param name="EnableSelectionControls" value="0"><param name="EnableTracker" value="-1"><param name="Filename" value="../../../mpeg/halali.mpg" valuetype="ref"><param name="FullScreenMode" value="0"><param name="MovieWindowSize" value="0"><param name="PlayCount" value="1"><param name="Rate" value="1"><param name="SelectionStart" value="-1"><param name="SelectionEnd" value="-1"><param name="ShowControls" value="-1"><param name="ShowDisplay" value="-1"><param name="ShowPositionControls" value="0"><param name="ShowTracker" value="-1"><param name="Volume" value="-480"></object>3.smi格式<OBJECT id=RVOCX classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA width=240height=180><param name="_ExtentX" value="6350"><param name="_ExtentY" value="4763"><param name="AUTOSTART" value="-1"><param name="SHUFFLE" value="0"><param name="PREFETCH" value="0"><param name="NOLABELS" value="-1"><param name="SRC" value="rm.rm"><param name="CONTROLS" value="ImageWindow"><param name="CONSOLE" value="console1"><param name="LOOP" value="0"><param name="NUMLOOP" value="0"><param name="CENTER" value="0"><param name="MAINTAINASPECT" value="0"><param name="BACKGROUNDCOLOR" value="#000000"><embed src="real.smi" type="audio/x-pn-realaudio-plugin" console="Console1" controls="ImageWindow" height="180" width="240" autostart="true"></OBJECT>4.rm格式<OBJECT ID=video1 CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" HEIGHT=288 WIDTH=352><param name="_ExtentX" value="9313"><param name="_ExtentY" value="7620"><param name="AUTOSTART" value="0"><param name="SHUFFLE" value="0"><param name="PREFETCH" value="0"><param name="NOLABELS" value="0"><param name="SRC" value="rtsp://203.207.131.35/vod/dawan-a.rm";;> <param name="CONTROLS" value="ImageWindow"><param name="CONSOLE" value="Clip1"><param name="LOOP" value="0"><param name="NUMLOOP" value="0"><param name="CENTER" value="0"><param name="MAINTAINASPECT" value="0"><param name="BACKGROUNDCOLOR" value="#000000"><embed SRC type="audio/x-pn-realaudio-plugin" CONSOLE="Clip1" CONTROLS="ImageWindow" HEIGHT="288" WIDTH="352" AUTOSTART="false"></OBJECT>5.wmv格式<object id="NSPlay" width=200 height=180 classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"codebase="/activex/controls/mplayer/en /nsmp2inf.cab#Version=6,4,5,715" standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject" align="right" hspace="5"><!-- ASX File Name --><param name="AutoRewind" value=1><param name="FileName" value="xxxxxx.wmv"><!-- Display Controls --><param name="ShowControls" value="1"><!-- Display Position Controls --><param name="ShowPositionControls" value="0"><!-- Display Audio Controls --><param name="ShowAudioControls" value="1"><!-- Display Tracker Controls --><param name="ShowTracker" value="0"><!-- Show Display --><param name="ShowDisplay" value="0"><!-- Display Status Bar --><param name="ShowStatusBar" value="0"><!-- Diplay Go To Bar --><param name="ShowGotoBar" value="0"><!-- Display Controls --><param name="ShowCaptioning" value="0"><!-- Player Autostart --><param name="AutoStart" value=1><!-- Animation at Start --><param name="Volume" value="-2500"><param name="AnimationAtStart" value="0"><!-- Transparent at Start --><param name="TransparentAtStart" value="0"><!-- Do not allow a change in display size --><param name="AllowChangeDisplaySize" value="0"><!-- Do not allow scanning --><param name="AllowScan" value="0"><!-- Do not show contect menu on right mouse click --><param name="EnableContextMenu" value="0"><!-- Do not allow playback toggling on mouse click --> <param name="ClickToPlay" value="0"></object>将音乐文件改为音乐文件列表就行了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以上就是我们用<%@ include file=”date.jsp”%>这种形式得到的结果. 下面我们换用<jsp:include page=”dae.jsp” flush=”true”/>也就是将 <%@ include file=”date.jsp”%>换成 <jsp:include page=”dae.jsp” flush=”true”/>,然后请求 test.jsp.

个 date_jsp.java 文件和一个 date_jsp.class 文件.这两个文件得来的方式跟 test_jsp.java 和 test_jsp.class 文件得来的方式一样.再查看一下此时 test_jsp.java 文件的代码会发现.此时只新增加了一句代码: JspRuntimeLibrary.include(request, response, "date.jsp", out, tru e);
显示如下: 2003? ê 12??10?? 13:30:13 有关 jsp 中 include 的两种用法.敬请关注。
此时会在页面上看见.我们所引入 date.jsp 输出的日期中中文出现了乱 码.什么原因?是因为 include 行为元素是在请求处理阶段执行的(此处要对请求 处理阶段进行说明一下.Jsp 容器除了上面提到的负责将 jsp 页面转化成 servlet 外,还负责调用 jsp 页面实现类以处理每个请求并产生应答.这个阶段我们就称 为请求处理阶段.请求处理阶段仅执行类文件)。
Jsp 容器负责将 jsp 页面转化成 servle(t 称为 jsp 页面实现类?JSP Page implementation class),并编译这个 servlet。这两步就构成了翻译阶段.
由此我们就会知道:jsp 页面是把 include 指令元素所指定的页面的实 际内容(也就是代码段)加入到引入它的 jsp 页面中,合成一个文件后被 jsp 容 器将它转化成 servlet。可以看到这时会产生一个临时 class 文件和一个 java 文件。下面举个例子。
这里对翻译阶段进行一下说明:我们知道,jsp 页面不能原封不动地被传 送给浏览器,所有的 jsp 元素都必须首先由服务器进行处理。这是通过将 jsp 页面转达化成 servlet,然后执行这个 servlet 来完成的。服务器需要一个 jsp 容器来处理 jsp 页面。jsp 容器通常以 servlet 的形式来实现,这个 servlet 经 过配置,可以处理对 jsp 页面的所有请求。
JSP 中包含外部文件的方式
文章分类:Web 前端
1.<jsp:include page="b.jsp" flush="true"/>
2.<%@ include file="b.jsp" %>
不同点: 区别 1:
<jsp:include page="b.jsp" />(先执行,后包含)此标签表示法:能动态区 别加进来的是动态页面还是静态页面,对于静态页面则直接将资源包含(仅取其 文本)。
原因就在这里了。是因为在翻译阶段,date.jsp 文件的代码被原封不动 地加入到了 test.jsp 页面从而合成一个文件。合成后的文件中就会相同的: <%@ page language=”java” contentType=”text/html;charset=gb2312”%> 这句代码。解决的办法是把 date.jsp 文件中的这句删掉。刷新后再请求 test.jsp 页面
//======以下是 test.jsp 的源文件=============//
Java 代码
1. <%@ page language=”java” contentType=”text/html;charset=g b2312”%>
2. <html> 3. <head> 4. <title>include 的两种用法</title> 5. <jsp:include page=”date.jsp” flush=”true”/> 6. <%--@ include file=”date.jsp” %--> 7. //我们在这里用 include 的两种不同形式来引入 date.jsp 这个文
所以在我们作 include 行为元素引入页面时,实际只是引用了 date.jsp 这 个文件被转化并被编译后产生的 servlet 类文件.既如此, date.jsp 就是作为 一个单独的文件在执行后才被 test.jsp 文件运行时调用.由于 date.jsp 文件中 没有指定字符编码.所以出现了乱码.解决办法是在 date.jsp 文件中重新把刚才 去掉的 <%@ page language=”java” contentType=”text/html;charset=gb2312 ”%> 这行语句加入后刷新重新运行.此时页面显示正确,并跟用 include 指令正常运 行时一样.再查看 tomcat 下的临时文件会发现.此时多出了一
16.dateStr = (1900+date.getYear()) + "年 " + (date.getMonth()+1) + "月" + date.getDate() + "日 (星期" + date_cn + ")";
17.%> 18.document.write("<%=dateStr%>");
由于在主页面被请求时,这些页面还没有被引入到主页面中,所以你可以 对 page 属性使用一个请求时属性值,以便根据运行时的情况来决定要引入哪一 个页面.还可以添加一些将被引入的页面读取的请求参数. <jsp:include page=”<%=pageSelectedAtRuntime%>” flush=”true” > <jsp:param name=”fitstParamer” value=”firstValue”> <jsp:param name=”lastParamer” value=”lastValue”> </jsp:include>
<%@ include file="b.jsp">此指令表示:静态地包含页面,不管其内容如何, 不过是静态页面还是动态页面都首先将页面的内容先加进来。 区别 2:
<jsp:include page="b.jsp" />可以分开写成:<jsp:include page="b.jsp" ><jsp:param name="参数名" value="参数值"/></jsp:include>这样就可 以传递参数。
这里的 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 里面的代码: 新加入了哪些内容或是否真的加入了新的内容请自己测试去看一 下就会一目了然了.在这里不再详述.
它并没有把 date.jsp 文件的代码加入到 test.jsp.
只是在运行时引入了 date.jsp 页面执行后所产生的应答.这意味着我们可 以指定任何能够产生应答的 Web 资源,(例如一个 servlet 或一个 jsp 页面),只要 这些资源所产生的类型和 jsp 页面产生的内容类型相同.JSP 容器将通过一个内 部的函数调用来执行指定的资源.因此,这些被引入的资源可以帮助处理原来的 请求,所以这些资源可以访问请求作用域内的所有对象.以及所有原来的请求参 数.
2. <% 3. java.util.Date date=new java.util.Date(); 4. String date_cn =""; 5. String dateStr = ""; 6. switch(date.getDay()) 7. { 8. case 0:date_cn ="日"; break; 9. case 1:date_cn ="一"; break; 10.case 2:date_cn ="二"; break; 11.case 3:date_cn ="三"; break; 12.case 4:date_cn ="四"; break; 13.case 5:date_cn ="五"; break; 14.case 6:date_cn ="六"; break; 15.}
经验:
1.由于“1”是先执行后包含,假如 a.jsp 页面定义了 String strr,b.jsp 也定 义了 String strr ,因此 b.jsp 用方法一包含 a.jsp 不会出现重复定义错误, 而用方法二就会出现 strr is already defined in _jspService…… 2.方法一在写包含与被包含文件时候比较随意,不用考虑太多重复定义等因素, 方法二相对方法一能节省很多代码,方法一更利于实现功能模块化分,而方法二 更灵活,能更灵活的调用,两种方法结合当然最好了!
详细说明:
我们都知道在 jsp 中 include 有两种形式,分别是 <%@ include file=” ”%> <jsp:include page=” ” flush=”true”/>
相关文档
最新文档