java语言开发的一个可重用组件,分为可视化组件和非可视化组件。
可视化组件:有用户界面,对界面元素进行封装,按钮、文本框等;
非可视化组件:没有用户界面的javaBean,主要用于业务逻辑的封装,提供可重复利用的软件组件;
JSP与JavaBean进行web项目的开发,有以下两个优点:
1、将HTML和java代码分离,方便维护;
2、利用JavaBean的优点,业务逻辑和数据显示分离,将经常使用的代码抽象成一个JavaBean组件,在JSP页面使用时,调用你组件即可。
接下来主要写关于非可视化组件的内容。
JavaBean的编码规则
从编程语言来讲,JavaBean就是符合一定条件的java类的实例。
1、每个属性均有获取和设置的方法。getxxx(),setxxx()。
2、如果属性为boolean类型,对应获取和设置方法为isxxx(),setxxx()。
3、所有属性都是私有成员变量,所有方法都是公有的方法。
4、如果类中定义了含有参数的构造方法,一定要重写无参构造方法。
在JSP中使用JavaBean
主要通过<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>三个动作元素实现。
<jsp:useBean>动作是装载一个在JSP界面中使用的JavaBean。
<jsp:useBean>
<jsp:useBean id="name" class="package.class" scope="page"/>
id属性:指定JavaBean的实例名;
classs属性:指定JavaBean的包名和类名;
scope属性:指定JavaBean实例的作用域,默认为page,有四个值--page、request、session、application;
<jsp:setProperty>
如果在JavaBean中提供了对属性赋值的setxxx()方法,在JSP页面中就可以通过<jsp:setProperty>对已实例化对象的属性赋值。
分为<jsp:useBean>动作内赋值和<jsp:useBean>动作外赋值。
放在<jsp:useBean>动作外的<jsp:setProperty>,无论现有的Bean还是新创建的Bean实例,都会执行。
放在<jsp:useBean>动作内的<jsp:setProperty>,只在新建的Bean实例时才会执行。
<jsp:setProperty name="myName" property="someProperty" value="someValue".../>
name属性:JavaBean实例名。
property属性:参数名。
value属性:设置参数的值。
<jsp:getProperty>
如果在JavaBean中提供了获取属性的getxxx()方法,在JSP页面中就可以通过<jsp:getProperty>获取JavaBean属性的值并转换成字符串,在JSP页面中输出。
<jsp:getProperty name="myName" property="someProperty".../>
name属性:JavaBean实例名。
property属性:参数名。
JavaBean的范围
page范围
使用page范围的JavaBean,只能在创建在它们的页面中才能被访问。当请求响应返回客户端或指向另一资源时,释放该page范围对象的引用。page范围的对象存储在pageContext中。page范围的JavaBean通常用于单一实例的计算或事务。
request范围
request范围的JavaBean在客户端的一次请求中有效。在HTTP中客户端向服务器发送一个请求到服务器返回一个响应,这既是一个request请求过程。在请求过程中,处理的页面并不一定只有一个。
session范围
session范围的JavaBean在客户端与服务器建立连接开始到连接中断的过程中有效,但是当关闭浏览器或超过设置的有效时间时,session范围的JavaBean实例失效。
application范围
application范围的JavaBean一旦建立,除非将其撤销或服务器重新启动,否则JavaBean的实例将一直保存在服务器的内存中。不同的浏览器,不同的客户端,在不同的时间访问这个JavaBean实例都将共享其信息。