第5章 JSP语法基础_第1页
第5章 JSP语法基础_第2页
第5章 JSP语法基础_第3页
第5章 JSP语法基础_第4页
第5章 JSP语法基础_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第五章

JSP语法基础2本节内容JSP注释JSP脚本元素JSP指令元素JSP动作元素3JSP的组成:

传统的html文件加入Java程序片断(scriptlet)和JSP标记(tag)。45.1JSP注释注释有两方面的作用:一个作用是作为提示,让人可以从注释信息中了解某段程序的功能或设计思想,在阅读/编写程序时提供参考信息;另一个作用是将未完成的或有错误的某个程序块通过改为注释而隐藏起来,使其暂时不参与程序的执行,这种方式也适用于程序调试,即将调试时编写的调试语句作为注释隐藏起来。5JSP中的注释可以分为两类:输出到客户端的注释

<!—comment[<%=expression%>]-->

注:Jsp中可以进行动态注释。其中的内容可以是表达式、脚本片断在服务器端的JSP注释

<%----%>注:在服务器端可见,对于客户端隐藏。65.1.3案例拓展例5-1testQuote.jsp<%@pagelanguage="java"%><html><head><title>例子3-2</title></head><body><h2>隐藏批注示例</h2><%--这是一个隐藏批注,不会显示在客户端--%></body></html>75.2JSP脚本元素5.2.1声明5.2.2表达式5.2.3脚本程序85.2.1声明在JSP中使用的变量和方法时:必须先进行声明。在声明元素中声明的变量和方法,将在JSP页面初始化时进行初始化。JSP中的声明,用于声明JSP程序中使用的变量、方法等,其声明方式与Java相同(因为声明最终将被发送到服务器端作为Java语句解释),其语法格式为:9JSP声明的语法格式:<%!declaration;[declaration;]……%>使用此种方法在JSP中对变量和方法进行声明,可以一次声明多个变量或者多个方法,只要最后以“;”结尾即可。每个声明仅在当前的JSP页面中有效。JSP脚本元素10例1:变量的声明<%!inti=0;%>上面的语句声明了一个int(整型)变量i,并赋初始值为0。

11例2:方法的声明

<%!publicStringfun(inti){

…}%>说明:声明了名为fun的方法。该方法是公开的。参数:int类型,返回值类型:字符串。125.2.2表达式表达式用于将JSP内容转换为字符串以便于包含在页面的输出中。表达式在运行后被自动转化为字符串,然后插入到这个表达式在JSP文件中的位置显示。13<%=expression%>

expression部分是表达式的内容,它是一个有计算结果的JSP表达式。注意:表达式一定要有一个可以输出的值,如数学计算式子、有返回值的函数、变量等。不能使用分号“;”来作为表达式的结束符号,但是同样的表达式用在声明中就需要用分号来结尾表达式元素能够包括任何在Java中有效的表达式表达式的格式14例:<%=n%>//显示变量n的值<b><%=newDate()%></b>//粗体字显示当前时间155.2.3脚本程序在JSP中称符合Java语言规范的程序片断为程序段,一般把它包括在“<%%>”之间,其基本语法为:

<%codefragment%>程序段也可以用于JSP变量和方法的声明、显示表达式以及调用JavaBean等。JSP程序段是完全符合Java语法的,在实际运行时会被转换成Servlet。16脚本片断能包含:多个JSP语句、方法、变量和表达式。例:

<body><!–声明Date型变量d,并设置初始值为当前时间--><%!Dated=newDate();%><!--从下一行开始JSP脚本代码--><% //输出当前时间

out.println("现在时间是"); out.println(d);%></body>17例:<body><!--创建Date型变量d,并设置初始值为当前时间--><%!Dated=newDate();%><!--下一行通过表达式输出变量d--><fontface=“宋体”color=“red”>现在时间是<%=d%></font></body>185.2.4案例拓展例5-3,5-4195.3JSP指令元素指令(Directives)主要用来提供整个JSP网页相关的信息,并且用来设定JSP网页的相关属性,例如:网页的编码方式、语法、信息等。起始符号为:<%@终止符号为:%>20指令元素的一般形式如下:<%@directive[attr="value"]%>

其中,directive是指令名称,

attr是指令的属性,属性可以有多个,

value是属性的取值。21JSP中的指令有:。page:描述与页面相关的指示信息,include:用于包含文件,taglib:用于指示JSP页面所使用的标记库JSP2.0加入表达式语言。简化JSP开发。225.3.1Page指令

定义JSP文件中的全局属性,描述与页面相关的指示信息。language、import、contentType、session、buffer、auotFlush、isThreadSafe、info

23 <%@page%>指令作用于整个JSP页面,包括静态的包含文件;但是<%@page%>指令不能作用于动态的包含文件,比如

<jsp:include>。page指令详说24page指令详说可以在一个页面中用上多个“<%@page%>”指令,但是其中的属性只能用一次,不过也有例外,那就是import属性。因为import属性和Java中的import语句类似(参照JavaLanguage,import语句引入的是Java语言中的类),所以此属性就能多用几次。25page指令详说无论把<%@page%>指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。为了增强JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。26

page指令可以指定到何处去查找起支持作用的Java类或包。例如:

<%@pageimport="java.util.Date"%>page指令也可以在出现Java运行错误时,指示将用户导向何处。例如:

<%@pageerrorPage="errorPage.jsp"%>page指令详说27page指令的一般语法格式:<%@page[language="java"][extends="package.class"][import="{package.class|package.*},..."][session="true|false"][buffer="none|8kb|sizekb"][autoFlush="true|false"][isThreadSafe="true|false"][info="text"]28[errorPage="relativeURL"][contentType="mimeType[;charset=characterSet]"|"text/html;charset=ISO-8859-1"][isErrorPage="true|false"]%>29属性说明。(1)language=“java”

声明脚本语言的种类,目前只能用"java"。(2)extends

定义了由JSP页面产生的servlet的父类。一般来说,这个属性不会用到,建议初学者先不去使用它。Page指令30(3)import="{package.class|package.*},..."

需要导入的Java核心包的列表,这些包作用于程序段、表达式、以及声明。下面的包在JSP编译时已经导入了,所以就不需要再指明了:java.lang.*javax.servlet.*javax.servlet.jsp.*javax.servlet.http.*

31例如:<%@pageimport="java.util.*,java.io.*"%>或者:<%@pageimport="java.util.*"%><%@pageimport="java.io.*"%>32(4)session当前页面是否加入会话期间的管理。其缺省值为true,表明内建对象session存在。如果没有session对象,则会新建一个,由session来管理会话。如果设session属性值为false,则内建对象session不存在,这样页面中任何使用到session的语句都会产生编译错误。33(5)buffer决定输出流(out对象)是否需要缓冲区。缺省值是8KB,也可以设置为none(没有缓冲区)或所指定大小的缓冲区。例如:

<%@pagebuffer="12kb"%>

指定输出流缓冲区为12KB。buffer属性通常与autoFlush属性一起使用。34(6)autoFlushautoFlash属性用于指定是否自动刷新输出缓冲,如果设成true,则当输出缓冲区满的时候,自动刷新缓冲区而不是抛出一个异常,缺省值为true。注意:同时设置autoFlush为false和buffer为

none是不合法的,编译时将会出错。35(7)isThreadSafe指示JSP引擎,网页在处理对象存取时是否要引入ThreadSafe(线程保护)机制。缺省值为true,此时,如果多个客户向JSP引擎发送请求,就可以同时被处理。这时JSP程序员要处理同步时的共享状态,以保证同步确实是安全的。如果isThreadSafe被设成false,则采用单线程模式控制客户端访问该页面。36(8)info设置页面的说明信息文字。可以通过页面的Servlet.getServletInfo(

)方法访问该信息。例如:

<%@pageinfo="JSP教程"%>37(9)ErrorPage指示一个JSP文件的相对路径,以便在页面出错时,转到这个JSP文件来进行处理。需要将这个JSP文件的isErrorPage属性设为true。当ErrorPage属性被设置后,JSP网页中的异常仍然会产生,只不过此时捕捉到的异常将不由当前网页进行处理,而是由ErrorPage属性所指定的网页去进行处理。38(10)isErrorPage指示一个页面是否为错误处理页面。设置为true时,JSP页面中的内建对象exception将被定义,以处理该页面所产生的错误。缺省值为false,此时将不能使用内建对象exception来处理异常,否则将产生编译错误。39(11)ContentType用于设置JSP文件和最终文件的MIME类型和字符集的类型。必须在文件的顶部、任何一个其他字符在文件中出现之前。可用的MIME类型有text/plain、text/html、text/html和image/gif、image/jpeg等。ContentType属性缺省值为

“text/html;charset=ISO8859_1”。

40例如:<%@pagecontentType="text/html;charset=gb2312"%>上面语句设置MIME类型为text/html,网页所用字符集为简体中文(国标码gb2312)。在JSP中,客户端和服务器端的中文显示需要使用字符集gb2312,而HTTP传输编码用ISO8859_1字符集。41例:C:\Tomcat5.0\webapps\jspex\4\4-1\page.jsp<%@pagelanguage="java"import="java.util.Date"session="true" buffer="12kb"autoFlush="true"info="atestdirectivejsppage" isErrorPage="false"contentType="text/html;charset=gb2312"%><%@pageerrorPage="error.jsp"%><html><body><h1>使用page指令的测试页面</h1><%=newjava.util.Date().toLocaleString()%>使用表达式语言:\${4>3}:${4>3}</body></html>425.3.2Include指令 include指令:向当前页面内静态嵌入一个文件的内容。<%@includefile="文件名"%>语法格式如下:<%@includefile="relativeURL"%>或<%@includefile="相对位置"%>43包含的文件的路径名:一般来说是指相对路径。如果这个路径以“/”开头,那么这个路径主要是参照相对于包含这个JSP文件的Web应用程序的根目录,如果路径是以文件名或目录名开头,那么这个路径就是正在使用的JSP文件的当前路径。44例5-6Include.jsp<%@pagecontentType="text/html;charset=GB2312"%><html><head><title>例子5-6Include.jsp</title></head><body><h2>include指令</h2><%@includefile="Hello.html"%><%out.println("欢迎大家进入JSP的世界");%></body></html>455.3.3Taglib指令

taglib指令是JSP1.1新增进来的功能,能够让用户自定义新的标签。465.3.4案例拓展在页面中显示日期例5-7Date.jsp<%@pagecontentType="text/html;charset=GB2312"%><%@pageimport="java.util.Date"%><html><head><title>例子5-7Date.jsp</title></head><body><h2>使用java.util.Date显示目前时间</h2><%Datedate=newDate();out.println("现在时间:"+date);%></body></html>475.4JSP动作元素

5.4.1Include动作

5.4.2forward动作5.4.3param动作5.4.4plugin动作485.4.1Include动作<jsp:include>元素允许你包含动态和静态文件,这两种产生的结果是不尽相同的。如果包含进来的只是静态文件,那么只是把静态文件的内容加到JSP网页中;如果包含进来的为动态文件,那么这个被包含的文件也会被JSPContainer编译执行。49<jsp:include>的语法:<jsp:includepage="{urlSpec|<%=expression%>}"flush="true|false"/>或<jsp:includepage="{urlSpec|<%=expression%>}"flush="true|false"><jsp:paramname="PN"value="{PV|<%=expression%>}"/>*</jsp:include>50说明:<jsp:include>有两个属性:page和flush。page:可以代表一个相对路径,即你所要包含进来的文件位置或是经过表达式所运算出的相对路径。flush:接受的值为boolean,假若为true,缓冲区满时,将会被清空。flush的默认值为false。51例子5-8top.html<html><head><title>《JSP程序设计》网站</title></head><body><palign="center"><b><fontsize="5">《JSP程序设计》网站</font></b></p>bottom.html<hr><palign="center"><fontsize="3">@中国铁道出版社版权所有2004-2008</font><br><fontsize="3">制作人:于静</font><br><fontsize="3">联系方式:qzforyou@163.com</font><br></body></html>includeSample.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@includefile="top.html"%><palign="center"><%out.println("实用、适用,更加方便教学的使用是本教材永远不变的目标!");%></p><%@includefile="bottom.html"%>525.4.2forward动作<jsp:forward>:将客户端所发出来的请求,从一个JSP网页转交给另一个JSP网页。不过有一点要特别注意,<jsp:forward>标签之后的程序将不能执行。<jsp:forward>的语法:<jsp:forwardpage={"relativeURL"|"<%=expression%>"}/>或<jsp:forwardpage={"relativeURL"|"<%=expression%>"}><jsp:paramname="PN"value="{PV|<%=expression%>}"/>*</jsp:forward>53例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论