零点起飞学JavaWeb开发之JSP语法及应用.pptx_第1页
零点起飞学JavaWeb开发之JSP语法及应用.pptx_第2页
零点起飞学JavaWeb开发之JSP语法及应用.pptx_第3页
零点起飞学JavaWeb开发之JSP语法及应用.pptx_第4页
零点起飞学JavaWeb开发之JSP语法及应用.pptx_第5页
已阅读5页,还剩29页未读 继续免费阅读

VIP免费下载

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

文档简介

第5章 JSP语法及应用 JSP语法主要是指JSP文件里不同元素的适用规则。 只有准确掌握不同标签的定义和使用方法、深入理 解它们之间的细微差别,才能高效率地进行JSP编 程。本章对于大部分语法规则都是先讲概念,然后 结合具体实例去分析使用方法,力求让读者容易而 又深刻地把握各个知识点。完成本章的学习,读者 就可以读懂并且可以编写一般的JSP文件。 5.1 JSP文件是怎么构成的 一个JSP文件可以看做是由多种不同的元素组成的, 不同的元素有不同的语法规则和使用方法。本节先 给出一个典型的JSP文件,然后将它进行分析,从而 使读者对各种元素都有一个初步的印象。 5.1.1 分析典型的JSP文件 一个JSP文件是由多种语法元素构成的。下面给出一 个典型的JSP文件。 通过上面的代码以及注释,可以先简单地看一看代 码中出现的各种不同元素的特点。在这个文件中, 可以总结出五类元素:注释、模板元素、脚本元 素、指令元素和动作元素。下面来分别介绍这些元 素。 5.1.2 JSP文件中的注释 注释是指在JSP文件中出现的用来解释说明JSP源代 码的部分。由于JSP文件是由不同的语言形式,如 HTML、XML、Java等组成的,所以它里面有多种 注释方式。下面将这些注释方式归为3类。 1HTML/XML注释 这种注释方式可以用来注释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.3 JSP文件中的模板元素 模板元素是指JSP源文件中属于静态的HTML或者 XML的部分。它们是JSP文件最终用来响应客户端请 求的HTML页面的主体,因而它们对于JSP的显示是 非常重要的。通常在开发的过程中JSP的脚本编程人 员不用太关心这部分内容,因为它们主要是由美工 人员完成的。 5.1.4 JSP文件中的脚本元素 脚本元素是指JSP文件中插入的Java脚本。这类元素 是JSP中真正完成业务逻辑的部分,按照实现形式及 功能上的不同,可以进一步将这类元素分为3个子 类。 1声明(Declaration) 它们是脚本元素中声明变量和方法的部分,一般用 符号“”来标识。声明完一个方法或者变 量后就可以在剩余的脚本元素中去调用该方法或变 量。 2表达式(Expression) 它们把方法的结果或变量的值作为一个字符串输出 ,一般用“”之间的部分来标识。 3脚本Scriptlets 它们一般是在遍历和循环中将方法的结果或变量的 值用out.pirntln()方法输出,用“”之间的部 分来标识。 5.1.5 JSP文件中的指令元素 指令元素一般有3类:页面(page)指令、include指 令和taglib指令。它们一般用符号“”之间 的部分来标识,例如,classic.jsp文件中的以下代码 就是使用了页面指令。 5.1.6 JSP文件中的动作元素 动作元素一般用标签“”来标识。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 脚本元素中的Scriptlet Scriptlet是一段可以在请求处理阶段执行的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代码。页面指令的格式如下: 上面的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=“fileName“ fileName为一个被包含资源的相对路径,或者是代表相对路径 的表达式。如果路径以“/”开头,那么路径主要是参照JSP应用 的上下文路径;如果路径以文件名或目录名开头,这个路径就 是当前使用的JSP文件的路径。 2flush=“true“ 该属性用来指定是否自动刷新。flush的值必须被设置为true, 不能为false,但是默认值为false。 3 可以用来给被包含的动态页面传递一个或多个参 数。下面通过一个例子说明该元素的使用方法,以及它与指令的不同。 5.4.3 转发元素 该元素用来将请求转发到其他的JSP页面、Servlet或者静态资源 文件,每当遇到该元素时,就停止执行当前的JSP而执行被转 发的资源。请求转发的资源必须位于和发送请求的JSP页面相 同的上下文环境中。该元素的使用方式是: 或者 . 5.4.3 转发元素 下面对格式进行解释。 1page=“url“ url的值为一个字符串或者一个表达式,用于指定要请求 的文件的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=“propertyName“ param=“parameterName“ propertyName代表JavaBean的属性,它和JavaBean中某属性的setXXX()中的XXX必须相同。 parameterName代表request对象中的参数名。该方式把指定的参数值赋值给指定的属性值, 适应于属性名和参数名不一致的情况。 3property=“propertyName“ propertyName代表JavaBean的一个属性。这种方式将request对象中与该属性名字相同的参数 的值赋给这个属性。如果request中没有与该属性匹配的参数,这个属性也不会被设置任何 值。 4property=“ propertyName“ value=“propertyValue“ propertyValue可以是一个字符串,也可以是表达式。如果是字符串,需要用对象的valueOf() 方法将其转换为对应JavaBean属性的数据类型。例如,“double.valueOf(“12.55”)”将字符串 12.55转换为double类型的值;如果是表达式,则其结果必须与对应的JavaBean属性的数据类 型一致。 可以看出,这种方式采用指定的值,而不是request对象中的参数值来赋值给JavaBean的属 性。所以同一个标签中,不能同时出现value和param。 5.4.5 属性获取元素 该元素用来获取JavaBean中属性的值。它将JavaBean的值转换 为String类型,然后发送到输出流中。它使用的方法如下: 1name=“ BeanName“ 这个是必须指定的,BeanName为JavaBean的名字,也即通过 引入的JavaBean的id。 2property=“userName“ 这个也是必须指定的,它用来指定JavaBean的属性名。 5.4.6 JavaBean调用元素 该元素用来在JSP文件中使用一个JavaBean的实例,并声明该实例的名字 以及作用范围,从而保证该实例可以在声明的作用范围内使用。使用的语 法如下所示。 1id=“name“ id用来在使用范围内唯一标识该JavaBean的实例,这样就可以通过它来调 用该JavaBean的实例。该项大小写敏感,并且必须符合所使用的脚本语言 的命名规定。 2scope=“page|request|session|application“ 该项用来指定JavaBean实例的使用范围,它的默认值是page。 3class=“className“ class用来指定该JavaBean类的路径和类名。这样Web容器中才能找到该 JavaBean对应

温馨提示

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

评论

0/150

提交评论