web开发技术课件老师的第四章jsp与javabean_第1页
web开发技术课件老师的第四章jsp与javabean_第2页
web开发技术课件老师的第四章jsp与javabean_第3页
web开发技术课件老师的第四章jsp与javabean_第4页
web开发技术课件老师的第四章jsp与javabean_第5页
免费预览已结束,剩余32页可下载查看

付费下载

下载本文档

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

文档简介

1、Web开发技术第四章 JSP与JavaBean编程本章主要内容JavaBean的由来与特点一个简单的JavaBean程序JavaBean的组成与规范在JSP页面中使用JavaBeanJavaBean的范围一个较为复杂的例子JavaBean的由来在JSP网页开发的初级阶段,需要将Java代码嵌入到网页之中,对页面中的一些业务进行处理,如字符串处理、数据库操作等。如下图。但将大量Java代码嵌入到JSP页面中,必定会给修改和维护带来困难。并且不能达到代码重用的效果,不能体现面向对象的开发模式。JavaBean的由来如果使HTML代码与Java代码相隔离,将Java代码单独封装成一个个类,然后在JS

2、P页面中调用之,则可以简化JSP页面,提高代码重用性。这种使用Java代码封装的类,就是一个JavaBean组件。应用JavaBean与JSP整合的开发模式如下图。什么是JavaBean?JavaBean是指一段特殊的Java类,是一种组件技术。它可以将内部动作(如事务逻辑、数据库操作等)封装起来,用户看不到它是如何运行的。它提供属性接口供JSP程序使用,实现了业务逻辑和前台程序的分离。它遵循一些定义方法的规范,从而能够使得不同的bean之间可以良好通讯。JavaBean可分为可视化组件和非可视化组件两种。可视化组件可以是简单的GUI元素,如按钮或文本框,也可以是复杂的,如报表组件;非可视化组

3、件没有GUI表现形式,用于封装业务逻辑、数据库操作等。其最大的优点在于可以实现代码的可重用性。 JavaBean的特点易于维护、使用、编写。可实现代码的重用性。可移植性强,但仅限于Java工作平台。便于传输,不限于本地还是网络。可以以其他部件的模式进行工作。本章主要内容JavaBean的由来与特点一个简单的JavaBean程序JavaBean的组成与规范在JSP页面中使用JavaBeanJavaBean的范围一个较为复杂的例子一个简单的JavaBean程序package ch4;import java.io.*;public class SampleBean1private String st

4、r;public SampleBean1();public void setStr(String str) this.str = str;public String getStr()return str;这是一个基本的JavaBean例子:第一条语句的package用来定义自己的包,package语句必须是源代码的第一条语句。第二条语句使用import关键字将系统包java.io中所有的类包含进来。首先, SampleBean1是一个公共的Java类。然后,它有一个无参的构造方法:public SampleBean1() ;最后,设定属性str的值时,使用setStr方法。取得属性str的值时

5、,使用getStr方法。SampleBean1.java一个简单的JavaBean程序编写完JavaBean程序后,像所有的Java程序一样,需要对之进行编译。打开DOS窗口,使用javac SampleBean1.java进行编译,如果编译成功,将在SampleBean1.java所在目录下产生一个class文件。本章主要内容JavaBean的由来与特点一个简单的JavaBean程序JavaBean的组成与规范在JSP页面中使用JavaBeanJavaBean的范围一个较为复杂的例子JavaBean的组成一个JavaBean由3部分组成:属性:属性在JavaBean中不只是传统的面向对象的概

6、念里的属性,它同时还得到了属性读取和属性写入的API的支持。属性值可以通过调用适当的方法进行读写。如:可能有一个名字属性,这个属性的值可能需要调用String getName()方法读取,而写入属性值可能要需要调用void setName(String str)的方法。方法:JavaBean提供让客户使用的public方法,但应当认识到,Bean设计人员希望看到绝大部分的功能反映在属性和事件中,而不是在人工调用和各个方法中。事件:JavaBean与其他组件交流信息的主要方式是发送和接受事件。可以将事件支持功能看作是集成电路中的输入输出引脚:工程师将引脚连接在一起组成系统,让组件进行通讯。有些引

7、脚用于输入,有些引脚用于输出,相当于事件中的发送事件和接收事件。JavaBean的规范JavaBean作为一个特殊的类,具有自己独有的特性,在编写时,需要遵循一定的规范。一个标准的JavaBean应该具有以下规范:JavaBean类必须有一个没有参数的构造方法;JavaBean类所有的属性应该定义为私有的(private);JavaBean类中方法的属性必须是公共的(public);JavaBean类中定义方法setXxx()和getXxx()来对属性进行操作。Xxx为首写字母大写的私有属性名。对于布尔类型的属性,允许使用is代替set和get。本章主要内容JavaBean的由来与特点一个简单

8、的JavaBean程序JavaBean的组成与规范在JSP页面中使用JavaBeanJavaBean的范围一个较为复杂的例子在JSP页面中使用JavaBeanJavaBean编译好之后,我们就需要在JSP中调用它。在JSP页面中是通过指令:、和来应用JavaBean的,他们分别用于创建和查找JavaBean的实例对象、设置JavaBean对象的属性以及读取JavaBean对象的属性。指令用于创建一个Bean实例并指定它的名字和作用范围。即如果使用,就可以定义Bean的名称、类型以及使用期限等内容。在JSP页面中,使用JavaBean前首先要声明JavaBean。JavaBean的声明通过动作来

9、实现,其语法格式如下: 一、指令【说明】id:在你所定义的范围中确认Bean的变量,你能在后面的程序中使用此变量名来分辨不同的Bean。scope:指定JavaBean的作用范围(生命周期),默认值为page。可取的值有:application:在整个应用程序范围内有效;page:在当前页面范围内有效;request:在当前请求范围内有效;session:在当前会话范围内有效。class:指定JavaBean的类路径和类名。如:class=“ch4. SampleBean1” ,ch4是包名, SampleBean1是类名。type:定义Bean对象的类型。beanName:指定Bean的名字

10、。如果提供了type属性和beanName属性,允许省略class属性。 指令例4.1:使用一个简单的JSP页面来演示的用法。本例包含两个文件:SampleBean1.java和sample1.jsp部署程序:首先应该对SampleBean1.java利用javac命令进行编译,生成SampleBean1.class文件。这个.class文件应该放在何处?在WEB-INF目录下创建一个子目录classes(此处目录名必须为classes),这个子目录存放的就是JSP网页要用到的class文件。由于本例中的包为ch4,所以应该在classes目录下再创建一个子目录ch4,最后将SampleBea

11、n1.class拷贝到ch4下。(注意:随着包名的不同,在classes目录下创建的子目录也不同,如包名为“com.hust.dzc”,那么.class文件应该存放的路径为:WEB-INFclassescomhustdzc)。执行程序:重新启动Tomcat服务器,在浏览器地址栏中输入 选择要执行的JSP文件。指令WEB目录的标准结构:前面我们通过useBean从整体上对JavaBean有了一定的了解,JavaBean中有一些属性,可以利用setXxx()和getXxx()方法对他们进行设置和获取,除此之外,也可以用和对属性进行设置和获取,下面分别介绍这两个指令。二、 指令指令:设定通过定义的B

12、ean对象的属性。的语法格式有以下4种。 二、 指令指令name是必需的。它表示要设置属性的是哪个Bean。property是必需的。它表示要设置哪个属性。有一个特殊用法:如果property的值是“*”,表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。value是可选的。该属性用来指定Bean属性的值。param是可选的。它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。value和param

13、不能同时使用,可以使用其中任意一个。用于从一个JavaBean中获取某个属性的值,无论原来这个属性是什么类型的,都将被转换为一个String类型的值。其语法格式如下:name:指定JavaBean的名称,这个JavaBean必须首先使用指令进行过实例化。property:用于指定要读取的JavaBean组件对象的属性名称。三、 指令如何使用和我们通过例4.2来学习如何使用这两个指令。本例采用HTML+JSP+JavaBean架构。首先运行HTML网页sample2.html,要求用户输入姓名和性别;然后单击“提交”按钮,就会打开JSP页面sample2.jsp,利用之调用JavaBean:Sa

14、mpleBean2,并显示效果。在sample2.jsp中采用了四种方法对进行描述。本章主要内容JavaBean的由来与特点一个简单的JavaBean程序JavaBean的组成与规范在JSP页面中使用JavaBeanJavaBean的范围一个较为复杂的例子JavaBean的范围在学习指令时,我们知道其中的scope属性用来设定JavaBean存在的范围。scope属性可取page、request、session和application四个值,代表JavaBean具有不同的使用范围。application:在整个应用程序范围内有效;page:在当前页面范围内有效;request:在当前请求范围内

15、有效;session:在当前会话范围内有效。计数器实例我们通过一个计数器的例子来介绍。计数器是一般网站必备的工具,它用来统计有多少人次访问网站。开发计数器的方法有很多,我们采用的方法非常简单,就是利用JavaBean存在的范围,以实例的形式演示这四种范围的差别,最终确定使用哪种形式来开发计数器最为恰当。实例中包含一个JavaBean程序和一个JSP页面,其中JavaBean程序用来保存访问量,并供JSP页面调用显示。SampleBean3.javaJavaBean程序SampleBean3.java的源代码如下:package ch4;import java.io.*;public class

16、 SampleBean3public SampleBean3() private int num = 0;public void setNum(int num) this.num = num; public int getNum() num+; return num; 程序中有一个变量num,是int类型,用来表示访问的人次,初始值为0。在getNum()方法中将num变量加1,即当这个方法被调用时,num值就会自动加1。将SampleBean3.java编译形成.class文件。page范围(例4.3)现在使用来调用JavaBean,语句为:由于scope属性的默认值为page,所以此语句等

17、同于:通过例4.3发现页面上的访问人次都为1,这表明JavaBean中的num变量值一直为1。这是因为将JavaBean的范围设定为page,表示它的生命周期只在一个页面里,只能在一个页面中存取它。当进行例中的操作时,Tomcat服务器会将原来的JavaBean实例删除掉,然后再重新产生一个新的JavaBean实例,所以JavaBean的num值始终为1。不管如何访问,网页上始终显示1,显然这个计数器没有达到要求。request范围(例4.4)request范围除了这个网页(page)外,还包括使用动作指令和包含的页面。下面编写一个简单的JSP页面sample4.jsp,如下: 程序中使用获得

18、JavaBean中的num属性值,相当于执行了getNum()方法。在sample5.jsp中使用将sample4.jsp包含进去。将sample4.jsp和sample5.jsp发布在Tomcat服务器中,在浏览器上访问sample5.jsp页面。request范围(例4.4)运行效果显示访问人次是2,这是因为在sample5.jsp中首先调用getNum()方法使splBean的属性值变为1,然后在包含的页面sample4.jsp中又一次隐含调用了getNum()方法,所以最后显示的访问人次为2。这个例子演示了page范围和request范围的区别,但仍不适用于计数器的开发。session

19、范围(例4.5)在内置对象的学习中我们知道当浏览器访问某个页面时,就进行了一个连接,与此同时创建了一个session对象,当浏览器关闭后便自动结束session对象,所以我们常常使用session来记录每个客户的访问状态。将sample3.jsp中的scope属性值改为session,另存为sample6.jsp。通过例4.5发现页面经过刷新、新建窗口的操作,访问人次会接着上次的值进行增加。而经过重新打开一个页面访问以及在网络的另一台机器进行访问的操作,访问人次是从1开始增加。这是因为这两个操作使得session生命周期结束,服务器会产生一个新的JavaBean做计数工作。所以这种计数器也不是

20、所要求的。application范围(例4.6)application对象的主要作用是为多个应用程序保存信息,直至服务器关闭为止。当多个客户点击同一个页面时,JSP引擎会为每个客户启动一个线程,这些线程共享同一个application对象。任何一个客户对此对象中数据的改变都会影响到其他客户。将sample3.jsp中的scope属性值改为application,另存为sample7.jsp。通过例4.6发现无论进行哪一种操作,网页的访问人次都会接着上次的值进行增加。由此可见,application范围的JavaBean生命周期最长,只要Tomcat不重启,它就永远存在于服务器内存中。所以使用application来开发计数器是最合适的。但如果服务器重

温馨提示

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

最新文档

评论

0/150

提交评论