JSPServlet动作指令.ppt_第1页
JSPServlet动作指令.ppt_第2页
JSPServlet动作指令.ppt_第3页
JSPServlet动作指令.ppt_第4页
JSPServlet动作指令.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章,JSP动作指令,课程目标, ,体验项目,本章体验项目实现的功能:编写一个登录页面,实现用户登录信息的显示功能。程序运行后,将在登录页面中提示用户输入用户名及密码。在完成用户名及密码的填写后,把页面信息提交,将会显示用户提交的信息。 程序运行过程如下所示: (1)服务器端程序部署完成后,启动服务器,在地址栏中输入登录页面的地址进入登录页面。登录页面如图所示,在登录页面中输入用户名“wanbin”和密码“132135”,点击“提交”按钮,页面将跳转到提交后的页面,该页面显示用户提交的姓名和密码,如图所示:,JSP的动作元素与指令元素的不同点在于动作元素在请求处理阶段起作用。JSP动作元素是

2、使用类似于XML语法书写的,它采用以下两种格式中的一种: 格式一: 格式二: ,JSP标准动作, , ,JavaBean简介,JavaBean是一种特殊的 Java 类,它遵从一定的设计模式,开发工具和其他组件可以根据这种模式来调用JavaBean。 JavaBean可以设计得像Swing组件一样复杂,提供方法、属性、事件、以及供开发工具将它实例化到一个GUI容器中并对其属性和行为进行定制的特性。 JavaBean也可以设计得很简单,仅仅提供一些方法和属性供外部环境和其他组件调用。 用作JavaBean的类必须具有一个公共的、无参数的构造方法,这个方法可以是通过编译器自动产生的那个缺省构造方法

3、。 JavaBean的属性通过遵循某种规范的公共方法暴露给外部,外部的其他程序可以通过Java 的反射API 来查找JavaBean中遵循这一规范的方法,从而发现JavaBean中的属性。,JavaBean的属性简介,JavaBean的属性与普通Java类的属性的概念不一样,JavaBean的属性是以方法定义的形式出现的。 用于对属性赋值的方法称为属性修改器或setter方法,用于读取属性值的方法称为属性访问器或getter方法。 属性修改器必须以小写的set 前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,nickName属性的修改器名称为setNickName,password

4、属性的修改器名称为setPassword。 属性访问器通常以小写的get 前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,nickName属性的访问器名称为getNickName,password属性的访问器名称为getPassword。 JavaBean的属性名是根据setter方法与getter方法的名称来生成的, setter方法或getter方法中除去前缀“set”和“get”后的部分即为属性名,但属性名的首字母必须小写。 属性分类:只读/读写/只写,简单/复杂,简单属性,public class RegisterBean private String nickName =

5、 null; private boolean male = false; public void setNickName(String nickName) this.nickName = nickName; public String getNickName() return nickName; public void setMale(boolean male) this.male = male; public boolean isMale() return male; ,JavaBean在JSP中的应用,在JSP中如何使用JavaBean 标签 标签 标签,用于定位或示例一个JavaBean

6、s组件。首先会试图定位一个Bean实例,如果这个Bean不存在,那么就会从一个class或模版中进行示例。 为了定位或示例一个Bean,会进行以下步骤: 通过给定名称和范围试图定位一个Bean。 以指定的名称对这个Bean对象的引用变量命名。 如果发现了这个Bean对象,将会在这个变量中储存这个引用。如果同时指定了类型,那么这个Bean也将设置为相应的类型。 如果没有发现这个Bean,将会引用指定的class示例,并将此引用储存到一个新的变量中去。如果这个class的名字代表的是一个模板,那么这个Bean将被java.beans.Beans.instantiate实例化。 如果已经实例(不是定

7、位)了Bean,同时和中有元素,那么将会执行其中的代码。,定义的语法格式如下, 其中id是一个大小写相关的名字,用来表示这个实例;scope表示此对象可以使用的范围;typeSpec可以是以下四者之一: class=className class=className type=typeName beanName=beanName type=typeName type=typeName,Bean存在的范围(默认为page),page:在包含元素的JSP文件以及此文件中的所有静态包含文件中使用Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。 request: 在任何执行相同请求的J

8、SP文件中使用Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。能够使用request对象访问Bean,如request.getAttribute(beanInstanceName)。 session:从创建Bean开始,就能在任何使用相同session的JSP文件中使用Bean。这个Bean存在于整个session的生存周期内,任何在分享此session的JSP文件中都能使用同一个Bean。注意在创建Bean的JSP文件中指令中必须指定session=true。 application:从创建Bean开始,就能在任何使用相同application的JSP文件中使用Bean。这个

9、Bean存在于整个application生存周期内,任何在分享此application的JSP文件都能使用同一Bean。,用来设置已经实例化的Bean对象的属性,可以通过两种方法使用它。 第一种用法,可以在jsp:useBean元素的外面(后面)使用jsp:setProperty。 例如: . 此时,不管jsp:useBean是否找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty都会执行。,第二种用法是把jsp:setProperty放入jsp:useBean元素的内部 例如: 此时,jsp:setProperty只有在新建Bean实例时才会执行,如果是使用

10、现有实例则不执行jsp:setProperty。,jsp:setProperty动作的属性,name:表示设置属性Bean的名称,既Bean的id名称。 property:表示要设置的属性名。有一个特殊用法:如果property的值为*,表示所有和Bean属性名称匹配的请求参数都将被传递给相应的属性set方法。 value:value属性是可选的。该属性用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf()方法自动转换成数字、boolean、Boolean、byte、Byte、char、Character等类型的数据。例如,boolean和Boolean类型的属性值(比如

11、“true”)通过Boolean.valueOf转换,int和Integer类型的属性值(比如42)通过Integer.valueOf()转换等。value和param不能同时使用,但可以使用其中任意一个。 param:param是可选的。它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。,元素用来获得Bean的属性值,并可以将其使用或显示在JSP页面中,在使用之前,必须用创建它。 元素在使用上有一些限制: 不能使用来检索一

12、个已经被索引了的属性。 能够和JavaBeans组件一起使用,但是不能与Enterprise Bean一起使用。,语法, 例如: Calendar of 其中: name=beanInstanceName是Bean的名字。由引入property=propertyName所指定Bean的属性名。 提示: 在Sun的JSP参考中提到,如果使用来检索的值是空值,那么将会出现NullPointerException异常,同时如果使用程序段或表达式来检索其值,那么在浏览器中出现的是null(空)。,在前面我们介绍到使用指令来包含页面。使用指令也可以实现包含页面的功能,jsp: include操作允许在请

13、求时间内在现成的JSP页面中包含静态或者动态资源。不过它的运行效率比低,但是它可以用来传递参数。使用来实现传递参数。 定义的语法如下: flush=true / 或者: flush=true / , 属性说明,page=relativeURL | 包含文件参数的相对路径,或者是代表相对路径的表达式。 flush=true 这里必须使用flush=true,不能使用false值,缺省值为false。 / 子句能传递一个或多个参数给动态文件。 可以在一个页面中使用多个来传递多个参数。,操作被用来以“名值”的形式为其它标签提供附加信息。它和、一起使用。 它的使用方式如下: 其中name为属性相关的关

14、键字,value为属性值。 现在我们结合与来做一个例题:,big.jsp的代码如下: Big 我是老大,我给你一百块钱,你就做我小弟。 ,small.jsp的代码如下: small 我收到了你的块钱,我做你的小弟,老大好! 运行big.jsp页面程序,效果如图所示:,从运行效果我们可以看到,big.jsp页面不仅把small.jsp包含了进来。同时还给它传递了一个参数,其值为“100”,在small.jsp中通过request对象将值取出并打印了出来。 在使用包含指令时,需要注意的是,包含页面与被包含页面的编码方式必须一致,否则程序运行的时会报错。,标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象。标签下方的代码,将不能执行。 你能够向目标文件传送参数和值

温馨提示

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

评论

0/150

提交评论