资源预览内容
第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
第9页 / 共34页
第10页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第5章JSP语法及应用JSP语法主要是指JSP文件里不同元素的适用规则。只有准确掌握不同标签的定义和使用方法、深入理解它们之间的细微差别,才能高效率地进行JSP编程。本章对于大部分语法规则都是先讲概念,然后结合具体实例去分析使用方法,力求让读者容易而又深刻地把握各个知识点。完成本章的学习,读者就可以读懂并且可以编写一般的JSP文件。5.1JSP文件是怎么构成的一个JSP文件可以看做是由多种不同的元素组成的,不同的元素有不同的语法规则和使用方法。本节先给出一个典型的JSP文件,然后将它进行分析,从而使读者对各种元素都有一个初步的印象。5.1.1分析典型的JSP文件一个JSP文件是由多种语法元素构成的。下面给出一个典型的JSP文件。通过上面的代码以及注释,可以先简单地看一看代码中出现的各种不同元素的特点。在这个文件中,可以总结出五类元素:注释、模板元素、脚本元素、指令元素和动作元素。下面来分别介绍这些元素。5.1.2JSP文件中的注释注释是指在JSP文件中出现的用来解释说明JSP源代码的部分。由于JSP文件是由不同的语言形式,如HTML、XML、Java等组成的,所以它里面有多种注释方式。下面将这些注释方式归为3类。1HTMLXML注释这种注释方式可以用来注释JSP文件中除了Java脚本外的所有内容。它用“”之间的部分来标识。它的特点是当JSP被解析为Java文件时,注释的语句会被out.println()方法返回到客户端,所以在作为JSP响应发送到客户端的HTML代码中,仍然可以找到这类注释。2JSP注释这种注释方式同样可以用来注释JSP文件中除了Java脚本外的所有内容。它用“”之间的部分来标识。它的特点是只能用来注释JSP文件,在JSP文件解析为Java文件时,这类注释会被删除,不会出现在Java代码中,更不会出现在返回到客户端的HTML源码中。3Java注释这种注释方式只能用来注释Java脚本。它的特点是在JSP被解析为Java文件时被保留,所以它也可以用来注释JSP对应的Java文件。例如上面代码中的以下注释在解析后的Java文件中仍可以找到。5.1.3JSP文件中的模板元素模板元素是指JSP源文件中属于静态的HTML或者XML的部分。它们是JSP文件最终用来响应客户端请求的HTML页面的主体,因而它们对于JSP的显示是非常重要的。通常在开发的过程中JSP的脚本编程人员不用太关心这部分内容,因为它们主要是由美工人员完成的。5.1.4JSP文件中的脚本元素脚本元素是指JSP文件中插入的Java脚本。这类元素是JSP中真正完成业务逻辑的部分,按照实现形式及功能上的不同,可以进一步将这类元素分为3个子类。1声明(Declaration)它们是脚本元素中声明变量和方法的部分,一般用符号“”来标识。声明完一个方法或者变量后就可以在剩余的脚本元素中去调用该方法或变量。2表达式(Expression)它们把方法的结果或变量的值作为一个字符串输出,一般用“”之间的部分来标识。3脚本Scriptlets它们一般是在遍历和循环中将方法的结果或变量的值用out.pirntln()方法输出,用“”之间的部分来标识。5.1.5JSP文件中的指令元素指令元素一般有3类:页面(page)指令、include指令和taglib指令。它们一般用符号“”之间的部分来标识,例如,classic.jsp文件中的以下代码就是使用了页面指令。5.1.6JSP文件中的动作元素动作元素一般用标签“”来标识。JSP规范定义了一些常见的动作元素,比如:、等。5.2脚本元素详解脚本元素就是JSP文件中用Java语言写的脚本代码。在这些代码中可以包含任意的Java代码,可以进行函数声明和变量声明、可以对表达式求值、可以通过流程控制语句产生输出。脚本元素在JSP文件中主要用来处理业务逻辑操作,例如,它可以连接数据库、向数据库中插入数据、查询数据。在JSP文件中,根据功能和形式上的不同,可以将脚本元素进一步分为3类。下面分别进行介绍。5.2.1脚本元素中的声明(Declaration)在JSP文件的脚本元素中,声明用来定义变量和方法。它用来将文件中用到的变量或方法封装起来,这样可以使代码变得简洁,只有声明后的变量才能在其他地方调用。声明的格式如下:可以看出在符号“”之间定义声明部分,方法的声明包括参数。下面来看一个使用声明的例子。5.2.2脚本元素中的表达式(Expression)表达式将一个常量、变量或者方法的返回值输出为一个字符串。表达式必须有一个返回值,它输出的字符串作为HTML页面的一部分被最终输出到客户端显示。语法如下所示。其实从功能上看,表达式就相当于JSP文件中的out.println()方法,但是它更简洁。5.2.3脚本元素中的ScriptletScriptlet是一段可以在请求处理阶段执行的Java代码。它可以用来进行业务逻辑的处理;可以用来产生一些输出;可以是一些流程控制语句;还可以是一些Java注释。Scriptlet一般包含在“”之间,语法如下所示。5.3指令元素详解指令元素是指在JSP文件中包含在符号“”之间的部分。它不向客户端输出任何内容,是用来设置全局变量,声明类、要实现的方法和输出内容的类型等。在JSP文件被解析为Java文件时,Web容器会将它们翻译为对应的Java代码。指令元素的格式如下:directivename一般有3个值:page、include和taglib,分别代表页面指令、include指令和taglib指令。attribute的值根据directivename值的不同而不同。下面分别介绍这3种常见的指令。5.3.1页面(page)指令元素页面指令用来定义JSP文件中的全局属性,这些全局属性都是影响整个页面的重要属性。一个JSP文件中可以有多个页面指令,在JSP文件被解析为Java代码时,这些页面指令也被解析为对应的Java代码。页面指令的格式如下:%pageattribute=value.其中,attribute可以为language、import、contentType、session、buffer、auto、isThreadSafe、info、errorPage、isErrorPage、extends等。上面的语法列出了大部分页面指令属性及其取值,下面通过表5-1详细解释每个属性的意义和使用方法。5.3.2包含(include)指令元素include指令用来将指定位置上的资源包含在当前JSP文件中。在JSP文件被编译为Java文件时,这些被包含的资源会被作为JSP文件的一部分被翻译为Java文件。所以这些资源可以看做是JSP文件的一部分。include指令的格式如下:上面的filename指定要包含资源的文件名。如果filename以“”开头,那么该文件的路径是参照JSP应用的上下文路径;如果filename是以文件名或目录名开头,那么该文件的路径就是当前JSP文件的路径。5.3.3自定义标签(taglib)指令元素这个指令用来让用户自己定义标签。使用自定义标签,既可以实现同一功能的代码重用,又可以使JSP页面易于维护。例如,可以将显示日期的代码定义为一个日期标签,每当需要显示日期时,就使用这个标签去实现。这样可以使同一段代码多次使用并且显得简洁,更改起来方便。自定义标签的一般顺序是开发标签库、为标签库编写.tld配置文件、最后在JSP页面里使用自定义标签。在JSP文件中taglib指令的使用格式如下:url用来告诉Web容器在什么地方找到标签描述文件和标签库;prefix定义了在JSP文件中使用该自定义标签的前缀。注意这些标签的前缀不可以为jsp、jspx、java、javax、sun、servlet等。5.4动作元素详解动作元素是JSP规范已经定义好的一系列标准动作,它们以jsp为前缀,几乎被所有的Web容器支持。动作元素在处理客户端请求时起作用。可以采用上面两种形式中的一种。prefix一般为“jsp”,tag的值有多个,下面会有介绍。attribute根据tag的不同而不同。常用的JSP标准动作有、等。下面介绍使用比较频繁的一些动作元素。5.4.1参数元素该动作元素用来给其他的标签提供参数,例如,它可以和jsp:include、jsp:forward、jsp:plugin一起使用。它一般采用如下形式:其中name为参数或者属性的名字,value为其值。在下面几节中会和其他标签一起讲述该动作元素的使用方法。5.4.2包含元素该动作元素用于在客户端请求时间内把静态或者动态的资源包含在JSP页面内,被包含的对象只有对JspWriter对象的访问权,并且它不能设置头和Cookie。该指令的格式如下:或者.5.4.2包含元素下面对格式进行解释。1page=fileNamefileName为一个被包含资源的相对路径,或者是代表相对路径的表达式。如果路径以“”开头,那么路径主要是参照JSP应用的上下文路径;如果路径以文件名或目录名开头,这个路径就是当前使用的JSP文件的路径。2=true该属性用来指定是否自动刷新。的值必须被设置为true,不能为false,但是默认值为false。3可以用来给被包含的动态页面传递一个或多个参数。下面通过一个例子说明该元素的使用方法,以及它与指令的不同。5.4.3转发元素该元素用来将请求转发到其他的JSP页面、Servlet或者静态资源文件,每当遇到该元素时,就停止执行当前的JSP而执行被转发的资源。请求转发的资源必须位于和发送请求的JSP页面相同的上下文环境中。该元素的使用方式是:或者.5.4.3转发元素下面对格式进行解释。1page=urlurl的值为一个字符串或者一个表达式,用于指定要请求的文件的URL或文件名。要请求的文件可以是JSP文件、Servlet,或一个程序端。2通过它可以给请求的页面传输一个或多个参数,name指定参数的名字,value指定参数的值。如果要传输多个参数,可以使用多个标签。当给一个页面传输参数时,该页面肯定是动态页面。下面通过一个例子说明该元素的使用方法。5.4.4属性设置元素该元素和一起使用,用来给JavaBean设置属性,该标签会调用JavaBean的setXXX()方法去完成一个或者多个属性的设置。使用该元素一般有4种方法:5.4.4属性设置元素1property=这种设置方式最快捷。JSP的内在机制会将request对象中的参数名字和JavaBean中的属性名字进行配对,并把名字相同的参数值赋给JavaBean中的同名属性。使用这种方式要求JavaBean中的属性和request对象中的参数的名字相匹配。如果request对象中某一个匹配参数值为空值,那么对应的JavaBean中的属性不会设置任何值;同样,如果JavaBean的属性中有一个在request对象中找不到与它对应的参数,那么这个属性也不会被设置任何值。2property=propertyNameparam=parameterNamepropertyName代表JavaBean的属性,它和JavaBean中某属性的setXXX()中的XXX必须相同。parameterName代表request对象中的参数名。该方式把指定的参数值赋值给指定的属性值,适应于属性名和参数名不一致的情况。3property=propertyNamepropertyName代表JavaBean的一个属性。这种方式将request对象中与该属性名字相同的参数的值赋给这个属性。如果request中没有与该属性匹配的参数,这个属性也不会被设置任何值。4property=propertyNamevalue=property
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号