JavaBean和表单处理

上传人:M****1 文档编号:587736564 上传时间:2024-09-06 格式:PPT 页数:96 大小:1.09MB
返回 下载 相关 举报
JavaBean和表单处理_第1页
第1页 / 共96页
JavaBean和表单处理_第2页
第2页 / 共96页
JavaBean和表单处理_第3页
第3页 / 共96页
JavaBean和表单处理_第4页
第4页 / 共96页
JavaBean和表单处理_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《JavaBean和表单处理》由会员分享,可在线阅读,更多相关《JavaBean和表单处理(96页珍藏版)》请在金锄头文库上搜索。

1、1第七章第七章JavaBean与表单处理与表单处理郑州大学软件学院2JSP程序开发模式v单纯的单纯的JSP页面编程页面编程在单纯的在单纯的JSP编程模式下,通过应用编程模式下,通过应用JSP中的脚本标中的脚本标志,可直接在志,可直接在JSP页面中实现各种功能。页面中实现各种功能。这种模式很容易实现。这种模式很容易实现。缺点:缺点:因为将大部分的因为将大部分的Java代码与代码与HTML代码混淆在一起,代码混淆在一起,会给程序的维护和调试带来很多的困难,而且对于整会给程序的维护和调试带来很多的困难,而且对于整个程序的结构更是无从谈起。个程序的结构更是无从谈起。单纯的单纯的JSP页面编程模式是无法

2、应用到大型、中型甚页面编程模式是无法应用到大型、中型甚至小型的至小型的JSP Web应用程序开发中。应用程序开发中。郑州大学软件学院3v在当今各类在当今各类JSP网站开发标准中,有两种使用网站开发标准中,有两种使用JSP的方式,他们分别被称为模式一和模式二。的方式,他们分别被称为模式一和模式二。模式一是模式一是JSP+JavaBean的结合的结合模式二是模式二是JSP+JavaBeanServlet的结合。的结合。这两种模式是当今大中型应用程序的基础,这两种模这两种模式是当今大中型应用程序的基础,这两种模式中最重要的就是式中最重要的就是JavaBean的开发,的开发,JavaBean用来封装业

3、务逻辑。用来封装业务逻辑。郑州大学软件学院4JSP程序开发模式vJSP+JavaBean编程编程该模式是该模式是JSP程序开发经典设计模式之一,适合小程序开发经典设计模式之一,适合小型或中型网站的开发。型或中型网站的开发。利用利用JavaBean技术,可以很容易地完成一些业务逻技术,可以很容易地完成一些业务逻辑上的操作,例如数据库的连接、用户登录与注销辑上的操作,例如数据库的连接、用户登录与注销等。等。JavaBean是一个遵循了一定规则的是一个遵循了一定规则的Java类,在程序类,在程序的开发中,将要进行的业务逻辑封装到这个类中,在的开发中,将要进行的业务逻辑封装到这个类中,在JSP页面中通

4、过动作标签来调用这个类,从而执行这页面中通过动作标签来调用这个类,从而执行这个业务逻辑。此时的个业务逻辑。此时的JSP除了负责部分流程的控制外,除了负责部分流程的控制外,大部分用来显示页面,而大部分用来显示页面,而JavaBean则负责业务逻辑则负责业务逻辑的处理。的处理。下面将通过一个流程图说明该模式对客户端的请求下面将通过一个流程图说明该模式对客户端的请求进行处理的过程。进行处理的过程。郑州大学软件学院5vJSP+JavaBean编程编程客户端客户端带有带有JSP引擎的引擎的Web服务器服务器用户通过客户端浏览器请求服用户通过客户端浏览器请求服务器务器服务器将最终的结果返回给客服务器将最终

5、的结果返回给客户端浏览器进行显示户端浏览器进行显示JSP页面页面JavaBean业务业务逻辑逻辑数据库数据库在在JavaBean中连接及操中连接及操作数据库,或实现其他业作数据库,或实现其他业务逻辑务逻辑在在JSP页面中调用页面中调用JavaBean服务器接收用户请求后调用服务器接收用户请求后调用JSP页页JavaBean将执行的结果将执行的结果返回返回JSP页面页面服务器读取服务器读取JSP页面中的内容(将页页面中的内容(将页面中的静态与动态内容相结合)面中的静态与动态内容相结合)郑州大学软件学院6v优点:优点:纯净的纯净的JSP页面页面因为业务逻辑和数据库操作已经从因为业务逻辑和数据库操作

6、已经从JSP页面中剥离出页面中剥离出来,来,JSP页面中只需嵌入少量的页面中只需嵌入少量的Java代码甚至不使用代码甚至不使用Java代码。代码。 可重用的组件可重用的组件设计良好的设计良好的JavaBean可以重用,甚至可以作为产品可以重用,甚至可以作为产品销售,在团队协作的项目中,可重用的销售,在团队协作的项目中,可重用的JavaBean将将会大大减少开发人员的工作量,加快开发进度。会大大减少开发人员的工作量,加快开发进度。 方便进行调试方便进行调试复杂的操作都封装在一个或者数个复杂的操作都封装在一个或者数个JavaBean中,错中,错误比较容易定位。误比较容易定位。 易维护易扩展易维护易

7、扩展系统的升级或者更改往往集中在一组系统的升级或者更改往往集中在一组JavaBean中,中,而不用编辑所有的而不用编辑所有的JSP页面。页面。郑州大学软件学院7v应用范围应用范围Model 1模式的表现逻辑和控制逻辑全部逻辑耦合在模式的表现逻辑和控制逻辑全部逻辑耦合在页面中,这种处理方式对一些规模很小只有几个简页面中,这种处理方式对一些规模很小只有几个简单页面的项目比较适用单页面的项目比较适用郑州大学软件学院8q 设计模式为软件设计问题提供标准的解决方案设计模式为软件设计问题提供标准的解决方案q Model 2 是一种设计模式是一种设计模式q MVC 将交互式应用程序组织成三个独立的模块:将交

8、互式应用程序组织成三个独立的模块:q 应用程序模块,用于表示数据和业务逻辑应用程序模块,用于表示数据和业务逻辑q 数据表示数据表示q 控制器,用于发送请求和控制应用程序的流程控制器,用于发送请求和控制应用程序的流程郑州大学软件学院9Model 2 体系结构q MVC 体系结构的各种对象包括:体系结构的各种对象包括:MVC 对象对象控制器控制器模型模型视图视图郑州大学软件学院10Model 2 体系结构q Model 2(MVC) 体系结构的优点:体系结构的优点:可以很灵活地设计可以很灵活地设计和实现模型对象和实现模型对象使用同一模型处理多个请求使用同一模型处理多个请求增加新客户端更容易增加新客

9、户端更容易MVC 的优点的优点郑州大学软件学院11vModel模型(封装数据)模型(封装数据)代表了某应用程序的核心功能,负责处理用户的代表了某应用程序的核心功能,负责处理用户的数据,实现业务逻辑。同时,模型还为视图的显示数据,实现业务逻辑。同时,模型还为视图的显示提供数据,并可被多个视图所共享。提供数据,并可被多个视图所共享。 模型模型对象对象 表示表示 Web 应用程序的数据元素,用户可与这些数据元素进行交互应用程序的数据元素,用户可与这些数据元素进行交互郑州大学软件学院12vView视图(显示数据,收集数据)和用户打交道。视图(显示数据,收集数据)和用户打交道。主要指与用户交互的界面,即

10、应用程序的外观。它只负责将主要指与用户交互的界面,即应用程序的外观。它只负责将数据转交给控制器;同时还负责展示模型传递给用户的数据,数据转交给控制器;同时还负责展示模型传递给用户的数据,当后台模型更新数据时,视图也应随之更新。当后台模型更新数据时,视图也应随之更新。vController控制器(改变数据,改变模型的状态)控制器(改变数据,改变模型的状态)负责接收用户的请求和数据,然后做出判断将请求和数据交负责接收用户的请求和数据,然后做出判断将请求和数据交到哪一个模型来处理,最后调用视图来显示模型返回的数据。到哪一个模型来处理,最后调用视图来显示模型返回的数据。 视图对象视图对象 提供模型组件

11、以开发用户界面提供模型组件以开发用户界面 控制器对象控制器对象 充当应用程序视图对象和模型对象之间的中间对象充当应用程序视图对象和模型对象之间的中间对象郑州大学软件学院13JSP程序开发模式vJSP+Servlet+JavaBean编程编程在在JSP+JavaBean设计模式的基础上加入设计模式的基础上加入Servlet来来实现程序中的控制层。实现程序中的控制层。在这种模式中,由在这种模式中,由Servlet来执行业务逻辑并负责程来执行业务逻辑并负责程序的流程控制,序的流程控制,JavaBean组件实现业务逻辑,充当组件实现业务逻辑,充当着模型的角色,着模型的角色,JSP用于页面的显示。用于页

12、面的显示。可以看出这种模式使得程序中的层次关系更明显,各可以看出这种模式使得程序中的层次关系更明显,各组件的分工也非常明确。组件的分工也非常明确。下面将通过一个流程图说明该模式对客户端的请求下面将通过一个流程图说明该模式对客户端的请求进行处理的过程。进行处理的过程。郑州大学软件学院14JSP程序开发模式vMVC模式模式MVC(Model-View-Controller,模型,模型视图视图控制器)是一控制器)是一种程序设计概念,它同时适用于简单的和复杂的程序。种程序设计概念,它同时适用于简单的和复杂的程序。使用该模式可将待开发的应用程序分解为使用该模式可将待开发的应用程序分解为3个独立的部分:模

13、个独立的部分:模型、视图和控制器。型、视图和控制器。请求请求 应用服务器应用服务器响应响应JSP页面页面JavaBeanServlet数据库数据库服务器服务器郑州大学软件学院15Model 2 体系结构qModel 2 体系结构的各种对象包括:体系结构的各种对象包括:Model(JavaBeanModel(JavaBean) )封封装装应应用用程程序序状状态态处处理理业业务务逻逻辑辑通知视图的更新通知视图的更新View (JSP)View (JSP)向向控控制制器器发发送送用用户户请请求求显显示示模模型型状状态态接接收收来来自自模模型型的的更更新新Controller(Servlet)Cont

14、roller(Servlet)定义应用程序行为定义应用程序行为映映射射用用户户请请求求到到模模型选择相应的视图型选择相应的视图状态查询状态查询 通知更新通知更新请求业务处理请求业务处理选择视图选择视图郑州大学软件学院16vJSP+Servlet+JavaBean编程对客户端的请求进编程对客户端的请求进行处理的过程行处理的过程客户端客户端带有带有JSP引擎的引擎的Web服务器服务器用户通过客户端浏览用户通过客户端浏览器请求服务器器请求服务器服务器将最终的结果服务器将最终的结果返回给客户端浏览器返回给客户端浏览器进行显示进行显示JSP页面页面JavaBean业务业务逻辑逻辑数据库数据库在在Java

15、Bean中连中连接及操作数据库,接及操作数据库,或实现其他业务或实现其他业务逻辑逻辑服务器接收用户请求服务器接收用户请求后调用后调用ServletServlet根据用户请求根据用户请求调用调用JavaBean处理处理业务业务服务器读取服务器读取JSP页面中的内容页面中的内容(将页面中的静态与动态的内(将页面中的静态与动态的内容相结合)容相结合)请求请求响应响应Servlet调用调用转发转发由由Servlet转发请求转发请求到到JSP页面页面JavaBean将结果返回将结果返回Servlet,在,在Servlet中将结果保存到中将结果保存到请求对象中请求对象中郑州大学软件学院177.3 剖析Ja

16、vaBeanv什么是组件什么是组件?独立的模块独立的模块外界不了解其内部实现外界不了解其内部实现外界通过其提供的接口对组件进行访问外界通过其提供的接口对组件进行访问可以重用可以重用v目前有代表性的组件技术目前有代表性的组件技术COM、COM+、JavaBeans、EJB等等郑州大学软件学院18vJavaBean组件和企业级组件和企业级EJB(EnterpriseJavaBean)组件组件EJB是是J2EE的核心技术,它为开发服务器端应用程的核心技术,它为开发服务器端应用程序组件提供了一个模型,利用这个模型来创建可移序组件提供了一个模型,利用这个模型来创建可移植性与分布式企业应用程序服务器或组件

17、。植性与分布式企业应用程序服务器或组件。 EJB定义了一个用于开发基于组件的企业多重应用定义了一个用于开发基于组件的企业多重应用程序的标准。程序的标准。 EJB是一个用来创建分布式、服务器端以及基于是一个用来创建分布式、服务器端以及基于Java的企业应用程序组件的功能强大的组件模型。的企业应用程序组件的功能强大的组件模型。 郑州大学软件学院19郑州大学软件学院207.3.1 什么是JavaBeanvJavaBean是是Java的可重用组件技术,实质是一种的可重用组件技术,实质是一种符合某些命名和设计规范的符合某些命名和设计规范的Java类类vJavaBean通常通常封装成为具有特定功能或者处理

18、某封装成为具有特定功能或者处理某个业务个业务(如连接数据库,访问数据库)(如连接数据库,访问数据库)v应用:应用:JSP页面内可以访问页面内可以访问JavaBean的对象以及它的方法的对象以及它的方法。在在JSP的的Web应用中集成应用中集成JavaBean组件组件,由,由JavaBean中中处理业务逻辑处理业务逻辑,然后在,然后在JSP中调用,而中调用,而JSP页面着重网页界面的设计页面着重网页界面的设计,可以实现,可以实现业务逻辑业务逻辑和前台显示和前台显示的部分分离的部分分离。郑州大学软件学院21v使用使用JavaBean的好处的好处:可以使得可以使得JSP页面变得清晰页面变得清晰;节省

19、软件开发时间(可以直接使用已经测试和可信的节省软件开发时间(可以直接使用已经测试和可信的已有组件,避免了重复开发)已有组件,避免了重复开发);降低系统维护的难度降低系统维护的难度vJavaBean的分类的分类可视的可视的JavaBean:传统的传统的JavaBean应用于可视化界应用于可视化界面(如面(如java图形界面中使用的按钮、文本框或列表框图形界面中使用的按钮、文本框或列表框等等)等等)。非可视化的非可视化的JavaBean:封装逻辑、封装数据封装逻辑、封装数据,与与JSP搭配使用。搭配使用。郑州大学软件学院创建一个标准创建一个标准JavaBean的基本语法如下。的基本语法如下。v(1

20、)定义定义JavaBean类类vJavaBean类定义的语法结构如下:类定义的语法结构如下:vpublicclass类名称类名称vv/类成员的定义类成员的定义v/类方法的定义。类方法的定义。v/类属性的定义。类属性的定义。v如何创建JavaBean郑州大学软件学院v其中需要强调的是,类名称与保存的文件其中需要强调的是,类名称与保存的文件名称必须一致,否则就会出现编译错误。同时,名称必须一致,否则就会出现编译错误。同时,类必须声明为公有类,即类必须声明为公有类,即public。v如:如:publicclassCarBeanvvprivateStringmaker;v.v郑州大学软件学院v(2)定

21、义定义JavaBean类的构造函数类的构造函数JavaBean是是Jave类,类,JavaBean就有自己的构造函数,并就有自己的构造函数,并且构造函数的名称必须与且构造函数的名称必须与JavaBean类的名称一致。构造函数类的名称一致。构造函数的主要作用是用来初始化,而且构造函数无参数输入,其语的主要作用是用来初始化,而且构造函数无参数输入,其语法结构如下:法结构如下:publicJavaBean类名称类名称()/初始化初始化.例如:例如:publicCarBean()郑州大学软件学院(3)定义定义JavaBean属性属性vJavaBean是是Jave类,那么它不但有自己类,那么它不但有自己

22、的构造函数,还有自己的属性。的构造函数,还有自己的属性。JavaBean属属性的定义的语法结构如下:性的定义的语法结构如下:vprivate数据类型数据类型属性名称;属性名称;v例如:例如:privateStringmaker;郑州大学软件学院(4)设定设定JavaBean属性值的方法属性值的方法v定义了定义了JavaBean属性之后,还要对其属性值进行设属性之后,还要对其属性值进行设定,其属性值设定的语法结构如下:定,其属性值设定的语法结构如下:vpublicvoidset设定方法名称设定方法名称(数据类型数据类型参数参数)vvthis.变量变量=参数参数;vv例如:例如:vpublicvo

23、idsetMaker(Stringmaker)vthis.maker=Benz;vv值得注意的是:值得注意的是:JavaBean属性值的设定方法名称一属性值的设定方法名称一般以般以set三个字母开头,后面跟上属性设定方法名称。三个字母开头,后面跟上属性设定方法名称。郑州大学软件学院JavaBean的属性简介v的属性与普通的属性与普通Java类的属性的概念不一样,类的属性的概念不一样,JavaBean的属性是以方法定义的形式出现的。的属性是以方法定义的形式出现的。v2.用于对属性赋值的方法称为属性修改器或用于对属性赋值的方法称为属性修改器或setter方法,用于读取属性值的方法称为属性方法,用于

24、读取属性值的方法称为属性访问器或访问器或getter方法。方法。v3.属性修改器必须以小写的属性修改器必须以小写的set前缀开始,后前缀开始,后跟属性名,且属性名的第一个字母要改为大写,跟属性名,且属性名的第一个字母要改为大写,例如,例如,nickName属性的修改器名称为属性的修改器名称为setNickName,password属性的修改器名属性的修改器名称为称为setPassword。郑州大学软件学院v4.属性访问器通常以小写的属性访问器通常以小写的get前缀开始,后跟前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例属性名,且属性名的第一个字母要改为大写,例如,如,nickName

25、属性的访问器名称为属性的访问器名称为getNickName,password属性的访问器名称为属性的访问器名称为getPassword。v的属性名是的属性名是根据根据setter方法与方法与getter方法的名称方法的名称来生成的,来生成的,setter方法或方法或getter方法中除去前缀方法中除去前缀“set”和和“get”后的部分即为属性名,但属性后的部分即为属性名,但属性名的首字母一般要小写。名的首字母一般要小写。郑州大学软件学院(5)读取读取JavaBean属性值的方法属性值的方法v上面讲述了如何设定上面讲述了如何设定JavaBean属性值,那么属性值属性值,那么属性值设定好之后,如

26、何读取呢?设定好之后,如何读取呢?JavaBean属性值读取的属性值读取的语法结构如下:语法结构如下:vpublic类型类型get读取方法名称读取方法名称()vvreturnthis.变量参数变量参数;vv例如:例如:vpublic类型类型getMaker()vvreturnthis.maker;v郑州大学软件学院307.3.2 JavaBean的特征v通常一个标准的通常一个标准的JavaBean有以下特征(编写规范)有以下特征(编写规范):一定使用了一定使用了package语句进行打包语句进行打包JavaBean是一个是一个public类型的类类型的类有一个无参数的构造方法有一个无参数的构造

27、方法属性一般是私有的属性一般是私有的(即用即用private修饰修饰)对属性值对属性值xxx的获取的获取有相应的有相应的getXxx()方法,并且此方方法,并且此方法是公有的(即用法是公有的(即用public修饰修饰) 若要获取的属性若要获取的属性xxx为为boolean类型则可以使用类型则可以使用isXxx()()方法方法对属性值对属性值xxx的设置的设置有相应的有相应的setXxx()方法,并且此方方法,并且此方法也是公有的(即用法也是公有的(即用public修饰修饰)需要实现接口需要实现接口。实现了。实现了Serializable接口的对象可以转接口的对象可以转换为字节序列,这些字节序列

28、可以被完全存储以备以后换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。重新生成原来的对象。郑州大学软件学院311.packagejsp.test;2.publicclassUserBean3.privateStringuserName;/用户名用户名4.privateStringpwd;/密码密码5.privateStringname;/真实姓名真实姓名6.privateStringgender;/性别性别7.privateintage;/年龄年龄8.privateStringemail;/电子邮件电子邮件9.privateStringtel;/固定电话固定电话10.pri

29、vateStringmphone;/手机手机11.publicintgetAge()returnage;12.publicvoidsetAge(intage)this.age=age;13.publicStringgetEmail()returnemail; 14.publicvoidsetEmail(Stringemail)this.email=email; 15.publicStringgetGender()returngender;16.publicvoidsetGender(Stringgender)this.gender=gender;17.publicStringgetMphone

30、()returnmphone;18.publicvoidsetMphone(Stringmphone)this.mphone=mphone;19.publicStringgetName()returnname;20.publicvoidsetName(Stringname)this.name=name;郑州大学软件学院3221.publicStringgetPwd()22.returnpwd;23.24.publicvoidsetPwd(Stringpwd)25.this.pwd=pwd;26.27.publicStringgetTel()28.returntel;29.30.publicvo

31、idsetTel(Stringtel)31.this.tel=tel;32.33.publicStringgetUserName()34.returnuserName;35.36.publicvoidsetUserName(StringuserName)37.this.userName=userName;38.39.郑州大学软件学院33Eclipse中编写JavaBean1.Eclipse 新建新建Web Project2.在在src文件夹上新建文件夹上新建package,如前例中的,如前例中的3.在在package上新建类,如前例中的上新建类,如前例中的UserBean郑州大学软件学院34E

32、clipse中编写JavaBean郑州大学软件学院35郑州大学软件学院36郑州大学软件学院37郑州大学软件学院38郑州大学软件学院39郑州大学软件学院40v一个一个JavaBean编写完以后,需要将它编译成编写完以后,需要将它编译成“.class”文件文件,并将此,并将此“.class”文件文件( (连连同其目录同其目录) )放到本次应用的放到本次应用的WEB-INFclasses目录目录之下之下(直接在直接在Apache下使用时下使用时)。v注意注意:用:用Eclipse编写会自动地把编写会自动地把.class放到相放到相应的应的class目录下目录下使用JavaBean郑州大学软件学院41

33、在JSP中使用JavaBeanv需要使用以下几个动作元素需要使用以下几个动作元素标签标签: 在网页中创建一个在网页中创建一个Bean对象对象标签标签: 用于为用于为Bean对象对象中的属性赋值中的属性赋值标签标签: 用于获取用于获取Bean对象中对象中属性的值属性的值郑州大学软件学院427.3.1 调用JavaBeanv该标签用来在该标签用来在JSP页面中创建一个页面中创建一个JavaBean实例。实例。语法如下:语法如下:其中:其中:id指定该指定该JavaBean的实例变量的名称的实例变量的名称scope指定该指定该Bean变量的有效范围变量的有效范围request指在任何执行相同请求的指

34、在任何执行相同请求的JSP文件中使用文件中使用Bean,直,直到页面执行完毕,到页面执行完毕,session指从创建该指从创建该Bean开始,在相同开始,在相同session下的下的JSP页页面中可以使用该面中可以使用该Bean;application指从创建该指从创建该Bean开始,在相同开始,在相同application下的下的JSP页面中可以使用该页面中可以使用该Bean郑州大学软件学院43属属 性性用用 法法id命名引用该命名引用该Bean的变量。如果能够找到的变量。如果能够找到id和和scope相同的相同的Bean实例,实例,jsp:useBean动作将使用已有的动作将使用已有的Be

35、an实例而不是创建新的实例实例而不是创建新的实例class指定指定Bean的完整包名的完整包名scope指定指定Bean在哪种上下文内可用在哪种上下文内可用,可以取可以取page,request,session和和application四个四个值之一值之一 page(是默认值是默认值)表示该表示该Bean只在当前页面内可用只在当前页面内可用(保存在当前页面的保存在当前页面的PageContext内内) request表示该表示该Bean在当前的客户请求内有效在当前的客户请求内有效(保存在保存在ServletRequest对象内对象内) session表示该表示该Bean对当前对当前HttpSe

36、ssion内的所有页面都有效内的所有页面都有效 application表示该表示该Bean对所有具有相同对所有具有相同ServletContext的页面都有效的页面都有效scope很重要,是因为很重要,是因为jsp:useBean只有在不存在具有相同只有在不存在具有相同id和和scope的对象时才会的对象时才会实例化新的对象;如果已有实例化新的对象;如果已有id和和scope都相同的对象则直接使用已有的对象,都相同的对象则直接使用已有的对象,此时此时jsp:useBean开始标记和结束标记之间的任何内容都将被忽略开始标记和结束标记之间的任何内容都将被忽略type指定引用该对象的变量的类型,它必

37、须是指定引用该对象的变量的类型,它必须是Bean类的名字、超类名字、该类所实类的名字、超类名字、该类所实现的接口名字之一。请记住变量的名字是由现的接口名字之一。请记住变量的名字是由id属性指定的属性指定的beanName.class文件的名称、文件的名称、Bean包名或包含该包名或包含该Bean的串行化文件。仅当的串行化文件。仅当Bean不存在于指不存在于指定的作用域时,才使用词属性。与定的作用域时,才使用词属性。与Type合用。合用。郑州大学软件学院44比较比较在同一个页面输出效果一样在同一个页面输出效果一样使用动作元素使用动作元素可以指定作用域;在可以指定作用域;在脚本段的作用域只限定在当

38、前脚本段的作用域只限定在当前JSP页面。页面。对于多个页面共享对于多个页面共享Bean情况,如果使用脚本段,每情况,如果使用脚本段,每个页面都要实例化一个新的对象,会增加系统开销个页面都要实例化一个新的对象,会增加系统开销郑州大学软件学院45补充 JavaBean vv该标签用来在该标签用来在JSP页面中创建一个页面中创建一个JavaBean实例,实例,并指定它的名字及作用范围。语法如下:并指定它的名字及作用范围。语法如下: 郑州大学软件学院46id属性vid属性代表属性代表JavaBean对象的变量名对象的变量名v可为同一可为同一Bean类指定不同的类指定不同的id值,例如:值,例如:郑州大

39、学软件学院47class 属性vclass属性属性JavaBean的的类类名名Count Bean不属于包不属于包Count Bean属于属于test包包郑州大学软件学院48vclass属性分两种情况:属性分两种情况:如果在如果在scope指定的范围内,该指定的范围内,该JavaBean对象不存对象不存在,则创建这个在,则创建这个JavaBean对象,相当于执行以下语对象,相当于执行以下语句句Count id1=new Count();Count id2=new Count();若该若该JavaBean对象已经存在,则不创建新对象,而对象已经存在,则不创建新对象,而是直接获得已存在对象的引用。

40、是直接获得已存在对象的引用。郑州大学软件学院49scope 属性vscope属性表明属性表明JavaBean对象存在的范围,可对象存在的范围,可为如下几个值:为如下几个值:page(默认)(默认)requestsessionApplication以上作用范围使越来越大。以上作用范围使越来越大。郑州大学软件学院50vrequest和和page的生命周期都是短暂的,他们之间的区别的生命周期都是短暂的,他们之间的区别就是:一个就是:一个request可以包含多个可以包含多个page页页(include,forward以及以及filter)。v举个简单的例子:举个简单的例子:郑州大学软件学院51v运行

41、可以正常显示数据,因为作用范围是运行可以正常显示数据,因为作用范围是request,相当于,相当于调用了调用了request.setAttribute()方法,方法,jsp2页通过来获得这个页通过来获得这个bean.如果把如果把request改为改为page,就会抛出就会抛出NullPointerExceptioin.一个请求可以跨好几个一个请求可以跨好几个JSP(include和和forword)和和Servlet(如如filter).不过这里有一个需要注意的就是区别不过这里有一个需要注意的就是区别和和.如果上面的如果上面的改为改为,即使即使scope为为page也是正确的也是正确的,是编译

42、时包含是编译时包含,是运行是运行时包含时包含.前者就相当于宏前者就相当于宏,编译时替代编译时替代,后者相当于函数后者相当于函数,运行运行时返回时返回.郑州大学软件学院52下面看看具体的下面看看具体的scope四个值的含义四个值的含义:vPage:保存在保存在pageContext对象中,有对象中,有page范围的范围的JavaBean实例只能在当前创建这个实例只能在当前创建这个JavaBean的的JSP文件中进行操作,这个实例只有在请求返回给文件中进行操作,这个实例只有在请求返回给客户端后或者转移到另外的客户端后或者转移到另外的JSP页面后才会释放掉。页面后才会释放掉。page范围的范围的Ja

43、vaBean常用于进行一次性操作的常用于进行一次性操作的JavaBean,这样的,这样的Bean用的最多,比如大部分表用的最多,比如大部分表单提交,单提交,Bean的一些计算处理等都可以使用的一些计算处理等都可以使用page范范围的围的JavaBean郑州大学软件学院53page 作用域v客户每次请求访问客户每次请求访问JSP页面时,都会创建一个新的页面时,都会创建一个新的JavaBean对象。对象。vJavaBean对象的有效范围仅是客户请求访问的当前对象的有效范围仅是客户请求访问的当前页面。页面。vJavaBean对象在下列情况下会结束生命期:对象在下列情况下会结束生命期:客户请求访问的当

44、前页面执行完毕并向客户端发回响客户请求访问的当前页面执行完毕并向客户端发回响应。应。客户请求访问的当前页面通过客户请求访问的当前页面通过标记将请标记将请求转发到另一个文件。求转发到另一个文件。郑州大学软件学院54request 作用域v客户每次请求访问客户每次请求访问JSP页面时,都会创建一个新的页面时,都会创建一个新的JavaBean对象。对象。vJavaBean对象的有效范围是:对象的有效范围是:客户请求访问的当前客户请求访问的当前JSP网页网页和当前和当前JSP网页共享同一个客户请求的页面,即当前网页共享同一个客户请求的页面,即当前JSP网页中网页中指令以及指令以及标记包含的其它标记包含

45、的其它JSP文文件件v当所有共享同一个客户请求的当所有共享同一个客户请求的JSP页面执行完毕并向客户端发页面执行完毕并向客户端发回响应时,回响应时,JavaBean对象结束生命期。对象结束生命期。郑州大学软件学院55vRequest有有request范围的范围的JavaBean实例可以在处理请求所实例可以在处理请求所有有JSP页面中都存在,这个对象只有在请求全部处页面中都存在,这个对象只有在请求全部处理完毕后才会被释放掉,理完毕后才会被释放掉,request范围的范围的JavaBean常用于共享同一次请求的常用于共享同一次请求的JSP页面中,比如判断用户登录功能,如果用户名页面中,比如判断用户

46、登录功能,如果用户名密码合法就可以密码合法就可以forward到一个合法页面中,否则就到一个合法页面中,否则就forward到一个出错页面,当然转移后的页面仍然能到一个出错页面,当然转移后的页面仍然能够得到用户的输入。够得到用户的输入。郑州大学软件学院56session 作用域v只有当不同客户请求访问只有当不同客户请求访问JSP页面时,才会创建一个页面时,才会创建一个新的新的JavaBean对象。对象。vJavaBean对象的有效范围是同一个对象的有效范围是同一个Session中的所中的所有有JSP文件。文件。vJavaBean对象被创建后,存在于整个对象被创建后,存在于整个Session的的

47、生命周期内。生命周期内。郑州大学软件学院57vSessionJavaBean对象是保存在对象是保存在session范围的范围的JavaBean实例的生存周期是整个实例的生存周期是整个session,只有当,只有当session过期后才能释放掉,过期后才能释放掉,这样常用于共享同一这样常用于共享同一session的的JSP页面,页面,比如购物车一般就是放在比如购物车一般就是放在session中的或者登陆后的中的或者登陆后的用户信息等也可以在用户信息等也可以在session中,中,注意注意%page标签中不要设置标签中不要设置session=false,否则,否则在这个在这个JSP页面中页面中se

48、ssion将不会起作用,幸好将不会起作用,幸好JSP默认默认session=true,所以可以不必管它了。,所以可以不必管它了。 郑州大学软件学院58application 作用域v在整个在整个Web应用中只会创建一个应用中只会创建一个JavaBean对象。对象。vJavaBean对象的有效范围是对象的有效范围是Web应用中的所有应用中的所有JSP文件。文件。vJavaBean对象被创建后,存在于整个对象被创建后,存在于整个Web应用的应用的生命周期内。生命周期内。郑州大学软件学院59vapplication-JavaBean对象保存在对象保存在application对象中,对象中,有有app

49、lication范围的范围的JavaBean对象的生存周期是对象的生存周期是整个整个application。这就意味着这样的。这就意味着这样的JavaBean的的生存周期是整个应用程序,当生存周期是整个应用程序,当web Server停掉才会停掉才会消失掉。消失掉。这样的常用于共享同一这样的常用于共享同一application的的JSP程序中,程序中,比如程序中一些经常用到配置东西如数据库连接比如程序中一些经常用到配置东西如数据库连接URL,全局的计数器或者是聊天室中人员信息等。,全局的计数器或者是聊天室中人员信息等。 郑州大学软件学院60执行过程在scope中找到bean对象?收到请求有无t

50、ype?id引用class对象class可被实例化?noyesyes异常no类型转换转换成功?异常yesnono处理元素内容郑州大学软件学院61访问JavaBeanv标签用来获取标签用来获取Bean对象的属性值,并对象的属性值,并显示在页面上,其语法如下显示在页面上,其语法如下:name指出了要获取哪个指出了要获取哪个bean的属性值的属性值,取值与取值与useBean中中 id值相同值相同;property指出要获取该指出要获取该bean的哪个属性值的哪个属性值注意:注意:在使用在使用之前,必须有由之前,必须有由所创建所创建的的Bean对象对象 如果使用如果使用来检索的值是空值,那么将会产生

51、来检索的值是空值,那么将会产生NullPointerException例外;如果使用程序段或表达式来检索值,例外;如果使用程序段或表达式来检索值,那么在浏览器上出现的是将是那么在浏览器上出现的是将是null(空值空值) 郑州大学软件学院62例:例:还可以使用表达式调用其属性,还可以使用表达式调用其属性,例如在计算器实例中,下面两种表达式是等价的例如在计算器实例中,下面两种表达式是等价的郑州大学软件学院63设置JavaBean的属性v标签用来设置标签用来设置Bean对象的属性值。对象的属性值。vJSP语法格式如下:语法格式如下:jsp:setPropertyname=beanInstanceNa

52、meproperty=*|property=propertyNameparam=parameterName|property=propertyNamevalue=string|/郑州大学软件学院64v通过通过Bean提供的提供的setXXX()方法方法设置设置Bean的简单属的简单属性和索引属性,语法如下:性和索引属性,语法如下:其中其中propertyDetails可为如下之一可为如下之一property=“*”property=“propertyName”property=“propertyName” param“paramNameproperty=“propertyName value

53、propertyValue 郑州大学软件学院65设置JavaBean的属性设置设置Bean对象的属性的语法有多种:对象的属性的语法有多种:(1).简单简单bean属性设置属性设置其中:其中:name指出是在操作哪个指出是在操作哪个bean,property指出对该指出对该bean的哪个属性赋值的哪个属性赋值,value用来指定给属性赋的值用来指定给属性赋的值。例:例:郑州大学软件学院66v它有两种用法:它有两种用法:第一,可以在第一,可以在jsp:useBean元素的外面元素的外面(后面后面)使用使用jsp:setProperty。.不管不管jsp:useBean是找到了一个现有的是找到了一个

54、现有的Bean,还是新创建了一个,还是新创建了一个Bean实例,实例,jsp:setProperty都会执行。都会执行。第二,把第二,把放入放入jsp:useBean元素的内部。元素的内部。.只有在新建只有在新建Bean实例时才会执行,如果是使用现实例时才会执行,如果是使用现有实例,则不执行有实例,则不执行。 郑州大学软件学院67package bean;public class SampleBean private String sample=Hello,World;public void setSample(String s) if(s!=null) sample=s;public Str

55、ing getSample() return sample;属性属性sample的初始值:的初始值:属性属性sample的新值:的新值:郑州大学软件学院68Eg. 一个描述学生的beans,在一个JSP页面中获得一个这样的beans,其有效范围是page。在JSP页面中使用动作标签设置、获取该beans的属性。郑州大学软件学院69:创建beans的源文件1.public class Student 2. String name=null;3. long number;4. double height,weight;5. public String getName()6. return name

56、;7. 8. public void setName(String newName)9. name=newName;10. 11. public long getNumber()12. return number;13. 14. public void setNumber(long newNumber)15. number=newNumber;16. 17. public double getHeight()18. return height;19. 20. public void setHeight(double newHeight)21. height=newHeight;22. 23.

57、public double getWeight()24. return weight;25. 26. public void setWeight(double newWeight)27. weight=newWeight;28. 29.郑州大学软件学院701.2.3.4. 5. 6.7.名字是:名字是:8.9.学号是:学号是:10.11.jsp:setProperty name= zhang property=height value= /12.身高是:身高是:米米13.14.体重是:体重是:公斤公斤15.16.17.郑州大学软件学院71v注意:注意:如果将表达式的值设置为如果将表达式的值设置

58、为beans属性的值,表达式属性的值,表达式值的类型必须和值的类型必须和beans的属性的类型一致。如果将的属性的类型一致。如果将字符串设置为字符串设置为beans的属性的值,这个字符串会自的属性的值,这个字符串会自动被转化为动被转化为beans的属性的类型。的属性的类型。郑州大学软件学院72(2).将单个属性值和输入参数关联将单个属性值和输入参数关联用用param代替代替value表示将一个表示将一个form表单中传入参数表单中传入参数的值赋给的值赋给bean的某个属性。的某个属性。其中:其中:name指出是在操作哪个指出是在操作哪个bean,property指出对该指出对该bean的哪个属

59、性赋值的哪个属性赋值,而而param表示传入参数的名字。表示传入参数的名字。郑州大学软件学院73姓名:姓名:年龄:年龄:package bean;public class TestBean private String userName; private int age; public int getAge() return age; public void setAge(int age) this.age = age; public String getUserName() return userName; public void setUserName(String userName) t

60、his.userName = userName; 郑州大学软件学院74通过表单来指定通过表单来指定beans的属性值。由于客户可能提交的属性值。由于客户可能提交汉语的姓名,所以我们将文件中的汉语的姓名,所以我们将文件中的getUserName()方法做以下改进:方法做以下改进:1.public String getUserName() ()2. try byte b=userName.getBytes(ISO-8859-1);3. userName=new String(b);4. return userName;5. 6. catch(Exception e)7. return userNa

61、me;8. 9. 郑州大学软件学院75(3)输入参数和输入参数和bean属性值相同,可以简化属性值相同,可以简化这种用法将这种用法将form表单中传入参数的值赋给表单中传入参数的值赋给bean的的某个属性。某个属性。 要求要求:form表单中参数的名称要与表单中参数的名称要与propertyName一致一致郑州大学软件学院76姓名:姓名: 年龄:年龄:package bean;public class TestBean private String userName; private int age; public int getAge() return age; public void se

62、tAge(int age) this.age = age; public String getUserName() return userName; public void setUserName(String userName) this.userName = userName; 注意:注意:propertyproperty的属性名、的属性名、formform中参数的中参数的名字、名字、BeanBean中的属性名、方法名要对应中的属性名、方法名要对应郑州大学软件学院77标签(4).将将bean的所有属性与表单中参数关联的所有属性与表单中参数关联在这种用法中在这种用法中,JSP容器会一个个检查

63、传入的参数容器会一个个检查传入的参数,如果某个传入参数的名字和如果某个传入参数的名字和bean中某个属性的名中某个属性的名字相同,则将该参数的值赋给字相同,则将该参数的值赋给bean中中的属性的属性。使用这种方式可以一次为多个属性赋值使用这种方式可以一次为多个属性赋值郑州大学软件学院78姓名:姓名: 年龄:年龄:package bean;public class TestBean private String userName; private int age; public int getAge() return age; public void setAge(int age) this.a

64、ge = age; public String getUserName() return userName; public void setUserName(String userName) this.userName = userName; 郑州大学软件学院79 Please enter your username: public class LanguageBean private String name; public void setName(String name) this.name = name; 执行过程郑州大学软件学院80veg.首先建立一个名为具有计算访客人数功能的首先建立

65、一个名为具有计算访客人数功能的JavaBean类类Counter并且在程序中定义一个名为并且在程序中定义一个名为setCounter的方法用来设置属性值的方法用来设置属性值Count,并且定义为取得属性的方法,并且定义为取得属性的方法getCounter。 1.package bean;2.public class Counter 3. public Counter() 4. 5. private int Count=0;6. public void setCounter(int count)7. Count=count;8. 9. public int getCounter()10. ret

66、urn +Count;11. 12.郑州大学软件学院81运行效果1.在在page范围范围2.在在request范围范围3.在在session范围范围4.在在Application范围范围郑州大学软件学院82使用JavaBean处理表单数据v操纵操纵HTML表单步骤表单步骤1、 写写JSP原文件,创建一些原文件,创建一些HTML的表单并命名。的表单并命名。2、 在在Java文件里写文件里写Bean,定义属性,定义属性,GET或者或者SET方法来配合已经被你指定好名字的表单。方法来配合已经被你指定好名字的表单。3、 回到回到JSP原文件中,增加原文件中,增加标签来创标签来创建一个或者调用一个现成的

67、建一个或者调用一个现成的Bean。4、 增加增加标签设置标签设置HTML表单中需要表单中需要SET方法的方法的Bean的属性。的属性。5、 增加增加标签设置标签设置HTML表单中需要表单中需要GET方法的方法的Bean的属性。的属性。6、 如果需要处理更多的用户数据,用如果需要处理更多的用户数据,用request对象。对象。郑州大学软件学院83eg1.用户通过用户通过form表单提交数据,提交的数据被处表单提交数据,提交的数据被处理后,再在理后,再在Jsp文件中显示处理文件中显示处理让用户输入个人信息让用户输入个人信息将其一一输出将其一一输出eg2.使用使用Jsp+JavaBean形式处理表单

68、。形式处理表单。让用户输入个人信息让用户输入个人信息服务器取得这些信息之后,利用这个服务器取得这些信息之后,利用这个Javabean中的中的方法将其一一输出方法将其一一输出 郑州大学软件学院847.5.3 使用GET/POST方法传递参数v第一种第一种GET它将表单内容附加它将表单内容附加URL之后,中间用问号连接,然后之后,中间用问号连接,然后传送至指定的程序做处理。传送至指定的程序做处理。v第二种第二种POST,这个方法是将表单内容作为一个数,这个方法是将表单内容作为一个数据体而不是据体而不是URL的一部分传送给服务器的。所以的一部分传送给服务器的。所以URL中看不到表单的内容。中看不到表

69、单的内容。郑州大学软件学院85v在在Form里面,可以使用里面,可以使用post也可以使用也可以使用get。它们都是。它们都是method的合法取值。的合法取值。v区别:区别:1.这两者传递参数时所用的编码不一定是一样的。对于这两者传递参数时所用的编码不一定是一样的。对于get方法,方法,浏览器对数据的浏览器对数据的URL encode的编码方式是有浏览器设置来决定,的编码方式是有浏览器设置来决定,而而post方法,开发人员可以指定。方法,开发人员可以指定。 2.get是从服务器上获取数据,是从服务器上获取数据,post是向服务器传送数据。是向服务器传送数据。 get是是把参数数据队列加到提交

70、表单的把参数数据队列加到提交表单的ACTION属性所指的属性所指的URL中,中,值和表单内各个字段一一对应,在值和表单内各个字段一一对应,在URL中可以看到。中可以看到。post是通是通过过HTTP post机制,将表单内各个字段与其内容放置在机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到内一起传送到ACTION属性所指的属性所指的URL地址。用户看地址。用户看不到这个过程。不到这个过程。3.get传送的数据量较小,不能大于传送的数据量较小,不能大于2KB。post传送的数据量较大,传送的数据量较大,一般被默认为不受限制。一般被默认为不受限制。4.get安全性非常低,安

71、全性非常低,post安全性较高。安全性较高。 郑州大学软件学院86根据根据HTTP协议规范,每个协议规范,每个HTTP请求主要包含以下信息请求主要包含以下信息郑州大学软件学院87v请求头格式请求头格式a)通用头通用头(general-header):Cache-Control:客户端希望服务端如何缓存自己的请求数据,如:客户端希望服务端如何缓存自己的请求数据,如Cache-Control:no-cache,Cache-Control:max-age=0;Connection:客户端是否希望与服务端之间保持长连接,如:客户端是否希望与服务端之间保持长连接,如Connection:close,Co

72、nnection:keep-alive;Date:只有当请求方法为:只有当请求方法为POST或或PUT方法时客户端才可能会有些字段;方法时客户端才可能会有些字段;Pragma:包含了客户端一些特殊请求信息,如:包含了客户端一些特殊请求信息,如Pragma:no-cache客户端希望代理或应用服务器不应缓存与该请求相关的结客户端希望代理或应用服务器不应缓存与该请求相关的结果数据;果数据;Via:一般用在代理网关向应用服务器发送的请求头中,表明该来自客户端的请求经过了网关代理,:一般用在代理网关向应用服务器发送的请求头中,表明该来自客户端的请求经过了网关代理,格式为:格式为:Via:请求协议版本请

73、求协议版本网关标识网关标识其它信息其它信息,如如:Via:1.1webcache_250_:80(squid)b)请求头请求头(request-header):Accept:表明客户同端可接受的请求回应的媒体类型范围列表。星号:表明客户同端可接受的请求回应的媒体类型范围列表。星号“*”用于按范围将类型分组,用用于按范围将类型分组,用“*/*”指示可接受全部类指示可接受全部类型;用型;用“type/*”指示可接受指示可接受type类型的所有子类型,如类型的所有子类型,如“Accept:image/gif,image/jpeg,*/*”;Accept-Charset:客户端所能识别的字符集编码格式

74、,格式:客户端所能识别的字符集编码格式,格式:“Accept-Charset:字符集字符集1:权重权重,字符集,字符集2:权重权重”,如:,如:“Accept-Charset:iso-8859-5,unicode-1-1;q=0.8”;Accept-Language:客户端所能识别的语言,格式:客户端所能识别的语言,格式:“Accept-Language:语言语言1:权重权重,语言,语言2:权重权重”,如:,如:”Accept-Language:zh,en;q=0.7”;Host:客户请求的主机域名或主机:客户请求的主机域名或主机IP,格式:,格式:“Host:域名或域名或IP:端口号端口号”

75、,如:,如:“Host::80“,请求行中若,请求行中若有则必须有该请求头;有则必须有该请求头;User-Agent:表明用户所使用的浏览器标识,主要用于统计的目的;:表明用户所使用的浏览器标识,主要用于统计的目的;Referer:指明该请求是从哪个关联连接而来;:指明该请求是从哪个关联连接而来;Accept-Encoding:客户端所能识别的编码压缩格式,如:客户端所能识别的编码压缩格式,如:“Accept-Encoding:gzip,deflate”;If-Modified-Since:该字段与客户端缓存相关,客户端所访问的:该字段与客户端缓存相关,客户端所访问的URL自该指定日期以来在服

76、务端是否被修改过,如果修改过则自该指定日期以来在服务端是否被修改过,如果修改过则服务端返回新的修改后的信息,如果未修改过则服务器返回服务端返回新的修改后的信息,如果未修改过则服务器返回304表明此请求所指表明此请求所指URL未曾修改过,如:未曾修改过,如:“If-Modified-Since:Fri,2Sep200619:37:36GMT”;If-None-Match:该字段与客户端缓存相关,客户端发送:该字段与客户端缓存相关,客户端发送URL请求的同时发送该字段及标识,如果服务端的标识与客户端的标识请求的同时发送该字段及标识,如果服务端的标识与客户端的标识一致,则返回一致,则返回304表明此

77、表明此URL未修改过,如果不一致则服务端返回完整的数据信息,如:未修改过,如果不一致则服务端返回完整的数据信息,如:“If-None-Match:0f0a893aad8c61:253,0f0a893aad8c61:252,0f0a893aad8c61:251”;Cookie:为扩展字段,存储于客户端,向同一域名的服务端发送属于该域的:为扩展字段,存储于客户端,向同一域名的服务端发送属于该域的cookie,如:,如:“Cookie:MailUserName=whouse”;c)实体头实体头(entity-header):(此类头存在时要求有数据体此类头存在时要求有数据体)Content-Enco

78、ding:客户端所能识别的编码压缩格式,如:客户端所能识别的编码压缩格式,如:“Content-Encoding:gzip,deflate”;Content-Length:客户端以:客户端以POST方法上传数据时数据体部分的内容长度,如:方法上传数据时数据体部分的内容长度,如:“Content-Length:24”;Content-Type:客户端发送的数据体的内容类型,如:客户端发送的数据体的内容类型,如:“Content-Type:application/x-www-form-urlencoded”为以普通为以普通的的POST方法发送的数据;方法发送的数据;“,则表明数据体由多部分组成,分

79、隔符为,则表明数据体由多部分组成,分隔符为“;郑州大学软件学院88v POST方法发出POST请求的Html页1.2. 3. 4. 5. 6. 7. User Name:8. Password:9. 10. 11. 12.郑州大学软件学院89v POST方法POST请求文本1.POST2.Accept: */*3.content-type: application/x-www-form-urlencoded4.Content-length:305.Connection: Keep-Alive6.user=JBuilder&password=Borland郑州大学软件学院90v GET方法等价的

80、发出GET请求的Html页1.2. 3. 4. 5. 6. 7. User Name:8. Password:9. 10. 11. 12.郑州大学软件学院91vGET方法GET/MyWeb/index.jsp?user=JBuilder&password=BorlandAccept:*/*Connection:Keep-Alive等价的GET请求文本郑州大学软件学院v网上书店定购系统网上书店定购系统郑州大学软件学院郑州大学软件学院v该实例包含两个该实例包含两个JSP文件和文件和v5个个JavaBean:v和程序的业务逻辑都封装在这和程序的业务逻辑都封装在这5个个JavaBean中。中。郑州大学

81、软件学院vBookDetails.java包含包含getBookID()和和getBookName()两个方法两个方法v存放本站点的所有图书。包含存放本站点的所有图书。包含getBook()方法方法v封装了用户信息封装了用户信息(uesername,password,usermail)并维护曾)并维护曾经访问过的图书。包括经访问过的图书。包括addBookOrdered()方法,方法,把定购图书放到列表中;获取把定购图书放到列表中;获取booksOdered变量变量的迭代子的迭代子getBookOdered()郑州大学软件学院v,cookie操作类,该类封装了对操作类,该类封装了对cookie

82、操作,并负责维护操作,并负责维护User对象。对象。该类是本系统的统一入口。该类是本系统的统一入口。visFistAccess()根据根据cookie判断用户是否第一次访问,如果不是第一次判断用户是否第一次访问,如果不是第一次访问,取出访问,取出cookie内记录的用户信息,并根据这些信息实例化内记录的用户信息,并根据这些信息实例化User类类vlogin()用户登录,将信息写入用户登录,将信息写入cookie,并实例化,并实例化User类类vsaveCookie()写写cookie的通用方法的通用方法vgetCookieBValue()读读cookie的通用方法的通用方法vorderBooks()将用户定购的图书写入将用户定购的图书写入CookievbooksOrdered()把图书放到用户的历史订购链表中把图书放到用户的历史订购链表中vunicodeToChinese()将将unicode转化为汉字编码,解决汉字乱码问题转化为汉字编码,解决汉字乱码问题vchineseToUnicode()将汉字编码转化换为将汉字编码转化换为unicode编码,解决汉字乱编码,解决汉字乱码问题码问题

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号