一、简介

JavaBean组件是一些可移植、可重用并可组装到应用程序中的Java类,类必须是具体的和公共的。

符合下列设计规则的任何Java类均是以JavaBean:

1.对数据类型“protype”的每个可读属性,Bean下必须有下面签名的一个方法:public proptype getProperty(){}

2.对数据类型“protype”的每个可写属性,Bean下必须有下面签名的一个方法:public void setProperty(proptype x){}

3.定义一个不带任何参数的构造函数。

二、JavaBean与JSP的结合

JSP在动态Web应用开发中得到了越来越多的应用,JSP提供的9个内置对象极大的方便了JSP页面的控制与开发,但由于应用程序功能要求越来越强,JSP页面变得越来越臃肿且难以控制。也正因如此JSP与JavaBean相结合逐渐成为最常见的Web应用程序开发方式。

(一)、JSP中JavaBean相关标记

JSP页面中与JavaBean有关的标记有<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>三个。

(1)、<jsp:useBean>

该标记声明一JavaBean实例,该实例具有一定生存范围及一个唯一id,JSP页面通过这个唯一的id来识别JavaBean并通过id.method类似语句操作JavaBean。

eg:声明类Student,id为s1。

 <jsp:useBean id="s1" class="Student" scope="application"></jsp:useBean>

scope属性值指明JavaBean的作用域,其默认值为page。

(2)、<jsp:setProperty>

该标记用于设定一个已经被创建的JavaBean组件的属性值。

eg:设定Student组件s1的classno属性

 <jsp:setProperty name="s1" property="classno" value="56789"></jsp:setProperty>

name属性值对应JavaBean组件的id值;property属性指定想设定属性值的属性名;value属性指定属性值,该值可为字符串也可为表达式。

(3)、<jsp:getProperty>

该标记用于返回一个已经被创建的JavaBean组件的属性值。

eg:获取Student组件s1的name属性的属性值

 <jsp:getProperty name="s1" property="name"></jsp:getProperty>
等价于:
<%=s1.name %>

(二)、JavaBean的Scope属性说明

每个JavaBean均有一个生存范围,而每个JavaBean只能在它定义的范围中才可使用,在其定义的范围外将无法访问。

<jap:useBean>利用Scope属性来声明JavaBean的生存范围。

JSP为JavaBean设定的范围可以是:page、request、session及application。

(1)、page

page是JavaBean默认生存范围。

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

(2)、request

Scope值为request的JavaBean作用于任何相同请求的JSP文件中,直至页面执行完毕向客户端发回响应或在此之前已经通过某种方式(重定向、链接等)转到另一文件为止。

还可通过使用request对象访问JavaBean。

(3)、session

Scope值为session的JavaBean,从创建JavaBean开始,就能在任何使用相同session的JSP文件中使用这个Bean,该Bean存在于整个session生存期内,任何分享此session的JSP文件都能使用同一Bean。

在session的生存周期内,对该Bean的任何改动均会影响到在此session内的任意page、request对该Bean的调用。当然前提是必须在创建此Bean的文件里事先用page指令指定了session=true。

(4)、application

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

Java EE JavaBean组件的更多相关文章

  1. Java EE.JavaBean

    JavaBean是一组可移植.可重用.并可以组装到应用程序中的Java类.一个Model类(属性+构造函数).

  2. 什么是Java EE

    Java:是一门编程语言,可以用来编写各种应用程序. Java EE:是一个标准中间件体系结构,旨在简化和规范分布式多层企业应用系统的开发和部署. Java EE是一个标准中间件体系结构 Java E ...

  3. Java EE—最轻量级的企业框架?

    确保高效发展进程的建议 很久以前,J2EE,特别是应用程序服务器被认为过于臃肿和"重量级".对于开发人员来说,使用此技术开发应用程序会非常繁琐且令人沮丧.但是,由于 J2EE 框架 ...

  4. 在 Java EE 组件中使用 Camel Routes

    摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE 组件中开始使用 Apache Camel Routes. [编者按]作者 ...

  5. Java Web开发技术教程入门-JavaBean组件与Servlet

    补更:阅战阅勇第7/8/9Days笔记 昨天我们了解了JDBC技术的一些日常操作,对于数据库而言,不仅仅的只有"增,删,改,查".博主觉得最重要的是SQL语句的优化,一个" ...

  6. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  7. Java 新特性(5) - Java EE 5 新特性

    Java EE 5 由 Java Community Process 通过 Java Specification Request 244 发布,这个 “总纲” JSR 指出了详细描述 Java EE ...

  8. Java EE发展史

    前言 最近的这段时间一直在学习Java EE,刚刚完成了从0到1的蜕变,所以顺便整理一下我所了解到的Java EE,给刚入门学习的新人一些头绪,而所谓“启示录”,就是这个意思. 一.Java EE是什 ...

  9. java EE 新手入门了解

    郑重申明:本文转载至https://blog.csdn.net/Neuf_Soleil/article/details/80962686,在此深表感谢! 为什么选择java? 想必有很多初学者会像我一 ...

随机推荐

  1. CS20Chapter2

    constants操作 import tensorflow as tf a = tf.constant([2, 2], name='a') b = tf.constant([[0, 1], [2, 3 ...

  2. Spring Boot 构建一个 RESTful Web Service

    1  项目目标: 构建一个 web service,接收get 请求 http://localhost:8080/greeting 响应一个json 结果: {"id":1,&qu ...

  3. Android 把url生成二维码并贴到给定的底图上

    主要是用到了com.google.zxing jar包生成二维码的功能,这个jar包需要自己接下载 直接上代码 public static Bitmap CreateBinaryCodeImageBy ...

  4. Maven 逆向工程

    pom.xml <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupI ...

  5. python 基础 切片 迭代 列表生成式

    对list 进行切片 如列表 L = ['Adam', 'Lisa', 'Bart', 'Paul'] L[0:3] ['Adam', 'Lisa', 'Bart'] L[0:3]表示,从索引0开始取 ...

  6. (解释文)My SQL中主键为0和主键自排约束的关系

    上一篇我们说了关于自排如果主键是0的问题,在这里我搞清楚了原因,导致这种情况是因为在SQL中对自排设置了初始值: 从这里可以看到这两个变量一个是自增的初始值,一个是增量,这里都是1,所以在设置自增的时 ...

  7. mysql 基本的操作数据库命令

    注意:命令操作都是分号结尾 1 .连接mysql: mysql -u  用户名   -p 密码 2.展示所有数据库: show  databases; 3.进入数据库: use   数据库名字; 4. ...

  8. PHP实现多继承 trait 语法

    原文地址:http://small.aiweimeng.top/index.php/archives/50.html PHP没有多继承的特性.即使是一门支持多继承的编程语言,我们也很少会使用这个特性. ...

  9. PHP操作redis之String(字符串)、List(列表)(一)

    Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key – value 缓存产品有以下三个特点: Redis支持数据的持久 ...

  10. 【win7下安装node.js错误:roling back action】与【"grunt" 不是内部或外部命令】 解决方法

    [win7下安装node.js错误:roling back action] 解决方法: Node.js 服务器端的JavaScript Node.js 是一个基于Chrome JavaScript 运 ...