JSP学习笔记05JavaBean

JavaBean是一种可重用组件技术,可以将内部动作封装起来,用户不许要了解其如何运行,只需要知道如何调用及处理对应的结果即可,可以提高代码可读性,网站应用的可靠性和可维护性。
JSP的设计模式:非MVC模式(Model1)和MVC模式(Model2)。
非MVC模式是一种最初级的模式,它以JSP文件为中心,在此模式中JSP页面不仅负责表现逻辑,也负责控制逻辑。非MVC模式有两种结构。只有JSP页面组成的WEB应用程序和JSP+JavaBean组成的WEB应用程序。
非MVC模式缺点:
HTML和JAVA强耦合在一起,给页面设计带来极大困难,也给阅读代码、理解程序带来干扰。
极难维护与扩展,在JSP页面中直接嵌入访问数据的代码及SQL语句,会使数据库的任何改动都必须打开所有的JSP页面进行维修,改动工作量非常大。
不方便调试,业务逻辑与HTML代码,甚至JavaScript代码强耦合在一起,极难定位错误。
JSP+JavaBean的优点:
纯净的JSP页面,将业务逻辑和数据库操作从JSP页面中剥离出来。
可重用的组建,设计良好的JavaBean可以重用,可重用的JavaBean可以大大减少开发人员的工作量,加快开发进度。
方便进行调试,因为复杂的操作都封装在一个或多个JavaBean中,错误比较容易定位。
易维护易扩展,系统的升级或者更改往往集中在一组JavaBean中,而不用编辑所有的JSP页面。
为了克服Model1的缺陷,引入了三层模型,术语称作MVC模式(Model2)。是基于模型视图控制器(MVC,Model-View-Controller)的设计模式。
用户通过提交请求与Controller组件(通常表现为Servlets)交互。接着Controller组件实例化Model组件(通常表现为JavaBean或者类似的技术),并且根据应用的逻辑操纵它们。Model被创建后,Controller就要确定为用户显示的View(常常表现为JSP),同时View与Model交互操作,并获得显示相关数据。在下一个请求被提交到Controller重复上述操作之前,View可以修改Model的状态。
JavaBean从本质上来说是一种JAVA类,它通过封装属性和方法称为具有独立功能,可重复使用的,并且可与其他控件通信的组件对象。
将JavaBean按功能分类,可分为“可视化的JavaBean”和“非可视化的JavaBean”,可视化的就是在画面上可以显示出来的JavaBean。通过显性接口接收数据并根据接收的信息将数据显示在画面上。非可视化的JavaBean,就是没有GUI图形用户界面。在JSP程序中常用来封装事物逻辑、数据库操作等。
通常用户并不需要知道JavaBean的内部是如何运作的,而只需知道它提供了哪些方法供用户使用。这如同在看电视时并不需要知道电视是怎么将画面显示出来的,而只需要知道按下哪个按钮可以切换频道,或是调整画质即可。
JavaBean的特征
1)该类必须包含没有任何参数的构造函数。
2)该类需要实现java.io.Serializable接口。实现了Serializable接口的对象可以转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。
3)该类必须有属性接口,即每个属性都要有get()和set()属性操作方法。
在JSP中使用JavaBean
在JSP中使用JavaBean最直接的方式就是在page指令中引入JavaBean,接着实例化JavaBean,然后就可以使用。
在JSP中有3个与JavaBean操作相关的标准标签,分别是<jsp : userBean>、<jsp : setProperty>、<jsp: getProperty>。
调用JavaBean

<jsp:useBean id="name" class="classname" scope="page|request|session|application" />

在执行过程中,<jsp:useBean>首先会尝试寻找已经存在的具有相同ID和scope值的JavaBean实例,如果没有就会自动创建一个新的实例。
访问JavaBean属性

<jsp:getProperty>标签可以得到JavaBean的属性值,并将它们转换为java.lang.String类型,最后放置在隐含的out对象中。<jsp:userBean><jsp:setProperty>一起使用,可以获取JavaBean中一个或多个属性值。
<jsp:getProperty name="name" property="propertyName"/>

标签中的name和property属性与类似。
设置JavaBean属性

<jsp:userBean><jsp:setProperty>一起使用,可以给JavaBean设置一个或多个属性值。
 <jsp:setProperty name="beanName" last_syntax/>
 其中,name属性代表了已经存在的并且具有一定生存范围(scope)的JavaBean实例。

【JavaBean的生命周期】

<jsp:useBean>动作元素是JSP的精华之一,使得JSP成为具有强大扩充性和易维护性的体系结构。
Bean的生命周期是一个很重要的概念,分为page、request、session和application这4种,通过设置Bean和scope属性值,可以使不同的程序需求拥有不同的生命周期。

page范围
page范围的JavaBean的生命周期是最短的,当一个网页由JSP程序产生并传送到客户端后,属于page范围的JavaBean也将被清除,至此生命周期告终。刷新页面也会结束生命周期。
request范围
request的生命周期延伸至被include进来的页面或forward出去的网页。request范围的JavaBean的生命周期与JSP程序的request对象同步,当一个JSP程序通过forward操作将request对象传送到下一个JSP程序时,属于request范围的JavaBean也将会随着request对象送出,因此由forward操作所串联起来的JSP程序可以共享相同的JavaBean。
session范围
由于HTTP协议是无状态的通信协议,在WEB服务器没有直接的方法可以维护每个客户端的状态,因此必须使用一些技巧来跟踪使用者。属于session范围的JavaBean的生命周期可以在一个使用者的回话期间存在。由于生命期设为session,因此每次在另一个新的浏览器窗口中运行相同的程序,会发现新浏览器窗口中的技术值是从头开始算起的,这说明了每一个联机都将产生独立的JavaBean对象。
application范围
application范围是JavaBean生命周期中最长的一个,当application范围的JavaBean被实例化后,除非是特意将它删除,否则application范围的生命周期可以说是和JSP引擎相当。当某个JavaBean属于application范围时,所在同一个JSP引擎下的JSP程序都可以共享这个JavaBean。当打开一个新的浏览器窗口并浏览此网页,会发现技术值不会从头开始计算,由于设置JavaBean对象的生命周期为application,所以每一个联机都共享同一个JavaBean。
【使用JavaBean处理表单数据】
JSP网页通过HTML表单属性的辅助,取得用户输入的数据内容,依据用户的需求与特定运算逻辑,在同一份JSP文件中展现不同的网页结果,达到与用户互动的目的。
GetParameter()使用以取得表单属性数据的最简单方法。
form标签的Method属性,Post和Get的差异:
这两种方式的主要差异在于数据的传送方式,前者将所要传送的数据包含在HTTP文件头中,后者则是将数据直接串接在网址栏的后端。两者都可以使用GetParameter()方法取得传送的数据内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值