使用JavaBean

174 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第30天,点击查看活动详情

在学习使用JavaBean之前,我们要先理解什么是JavaBean?为什么要使用JavaBean?

为什么要使用JavaBean?

尽管表达式语言及其隐式对象大大方便了JSP页面的开发,但由于应用程序功能要求越来越强,JSP页面还是变得越来越臃肿且难以控制。

JSP页面可以用脚本的形式包含处理逻辑和数据访问逻辑。但如果有许多业务逻辑要那样处理,那么繁多的脚本将会使JSP页面混乱且难以维护。

JavaBean的概念

JavaBean组件是一些可移植、可重用,并可以组装到应用程序中的Java类。通过在JavaBean中封装事务逻辑、数据库操作等,然后将JavaBean与JSP语言元素一起使用,可以很好地实现后台业务逻辑和前台表示逻辑的分离,使得JSP页面更加可读、易维护。JSP与JavaBean相结合成为最常见的Web应用程序开发方式。

例如,一个网上商店的JSP页面中要求包含购物车功能,可以先编写一个代表购物车的JavaBean,要实现向购物车中添加一件商品的功能,则向JavaBean添加一个public类型的AddItem成员方法,JSP页面直接引用JavaBean实现购物车功能。如果后来又考虑添加商品的时候需要判断库存是否有货物,没有货物不得购买,此时可以直接修改JavaBean的AddItem方法,加入对库存进行判断的语句,这样就完全不用修改JSP页面的代码了。由此可见,通过JavaBean可以很好地实现业务逻辑的封装,提高程序的可维护性。

JSP页面中与JavaBean有关的动作组件

jsp:useBean

jsp:getProperty

jsp:setProperty

每个JavaBean都有一个生命周期范围,Bean只有在它定义的生命周期范围里才能使用,在它的生命周期范围外将无法访问到它。jsp:useBean利用Scope属性来声明JavaBean的生命周期范围。

page:Bean的默认使用范围。Scope值为page的Bean能在包含jsp:useBean元素的JSP文件及此文件中的所有静态包含文件中使用,直到页面执行完毕向客户端发回响应或转到另一个文件为止。

request:作用于任何相同请求的JSP文件中,直到页面执行完毕向客户端发回响应或在此之前已通过某种方式(如重定向、链接等方式)转到另一个文件为止。还可通过使用request对象访问Bean,如,request.getAttribute(beanName)。

session:从创建Bean开始,就能在任何使用相同session的JSP文件中使用这个Bean。这个Bean存在于整个session生命周期内,任何分享此session的JSP文件都能使用同一Bean。在session的生命周期内,对此Bean属性的任何改动,都会影响到在此session内的任意page、任意request对此Bean的调用。前提是必须在创建此Bean的文件里事先用page指令指定了session=true。

application:作用于整个application的生命周期内,从创建Bean开始,就能在任何使用相同application的JSP文件中使用Bean。这个Bean存在于整个application生命周期内,任何在分享此application的JSP文件都能使用同一Bean。在application的生命周期内,对此Bean属性的任何改动,都会影响到此application内另一page、另一request及另一session里对此Bean的调用。

本次文章我们学习了为什么使用JavaBean,JavaBean的概念以及JavaBean的生命周期,我们很好的了解了JavaBean的理论,后续我们也会学习到JavaBean的示例及代码演示。