当前位置:编程学习 > JAVA >>

JavaBean 详解

JavaBean
JavaBean是一种可重复使用、且跨平台的软件组件。
JavaBean可分为两种:一种是有用户界面 (UI ,User  Interface )的JavaBean ;还有一种是没有用户界面,主要负责处理事务 (如数据运算,操纵数据库)的JavaBean 。JSP通常访问的是后一 种JavaBean。 其本身是满足规范的一种java类。
 
优点
使得HTML与Java程序分离,这样便于维护代码 。如果把所有的程序代码都写到JSP 网页中,会使得代码繁杂,难以维护 
可以降低开发JSP 网页人员对Java编程能力的要求 
JSP侧重于生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率
 
MVC设计模式
使用JavaBean开发需要使用MVC(Model模型, View展示, Controller控制)模式。
用户看见视图(View),如表单,点击请求后,这个请求首先被控制器所接受(如:Servlet),servlet收到请求后,根据请求的内容来控制谁去处理这个请求,也就是模型(就是个各类),模型对请求处理完后,流程返回控制器,控制器决定返回的视图还是失败的视图。验证其实就是一个微型的MVC。
 
 
特性: 
JavaBean是一个公共的 (public)类 
JavaBean有一个不带参数的构造方法(可添加带参数的构造方法)
JavaBean 通过setXXX方法设置属性,通过getXXX方法获取属性。
[java]  
public class CounterBean{   
      private int count=0;   
      public CounterBean(){}   
      public int getCount(){   
                return count;   
      }   
      public void setCount(int count){   
                this.count=count;   
      }   
}   
 
jsp使用
1、导入JavaBean类  
通过 <%@  page    import> 指令导入JavaBean类,例如: 
 
[html]  
<%@ page import="mypack.CounterBean" %>   
2、声明JavaBean对象
<jsp:useBean>标签用来声明JavaBean对象,例如: 
[html] 
<jsp:useBean id="myBean" class="mypack.CounterBean" scope="session" />   
id="beanInstanceName" 在所定义的范围中确认Bean的变量,使之能在后面的程序中使用此变量名来分辨不同的Bean ,这个变量名对大小写敏感,必须符合所使用的脚本语言的规定,这个规定在Java Language 规范已经写明。如果Bean 已经在别的 “<jsp:useBean>”  标记中创建,则当使用这个已经创建过的Bean时  ,id的值必须与原来的那个id值一致;否则则意味着创建了同一个类的两个不同的对象。 
3 、访问JavaBean属性 
JSP 提供了访问JavaBean 属性的标签,如果要将 JavaBean 的某个属性输出到网页上 ,可以用 <jsp:getProperty>标签,例如: 
[html]  
<jsp:getProperty name="myBean" property="count" />   
如果要给 JavaBean 的某个属性赋值 ,可以用 <jsp:setProperty>标签,例如: 
[html] view plaincopy
<jsp:setProperty     name="myBean"    property="count"  value="0" />   
 
4、代码示例
创建JavaBean类:
[java]  
package com.study.bean;  
  
public class Person {  
    private String name = "csdn";  
    private int age = 100;  
    private String adress = "hangzhou";  
      
    public Person(){  
          
    }  
      
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public int getAge() {  
        return age;  
    }  
  
    public void setAge(int age) {  
        this.age = age;  
    }  
  
    public String getAdress() {  
        return adress;  
    }  
  
    public void setAdress(String adress) {  
        this.adress = adress;  
    }  
  
}  
在jsp使用定义的JavaBean
[html]  
<body>  
        <jsp:useBean id="person" class="com.study.bean.Person" scope="session">  
        </jsp:useBean>  
        <jsp:setProperty property="name" name="person" value="Neal"/>  
        <jsp:setProperty property="age" name="person" value="200"/>  
        <jsp:setProperty property="adress" name="person" value="zhejiang"/>  
        <jsp:getProperty property="name" name="person"/><br>  
        <jsp:getProperty property="age" name="person"/><br>  
        <jsp:getProperty property="adress" name="person"/><br>  
    </body>  
在tomcat实现其实就是getAtttibute(“person”).getName();在jsp中使用jsp的代码其实是就是使用传统的java语句一样,只是表现形式一样罢了。其基础就是new Person().getName();在这里可以联想到为什么要规范set()与个体()了。
scope
scope属性决定了JavaBean 对象存在的范围 scope的可选值包括: 
    –page  
    – request 
    – session  ()
    – application ()
page:
客户每次请求访问JSP页面时,都会创建一 个JavaBean对象。JavaBean对象的有效 范围是客户请求访问的当前JSP 网页。JavaBean对象在以下两种情况下都会结束 
生命期: 
    – 客户请求访问的当前JSP 网页通过<forward> 
       标记将请求转发到另一个文件 
    – 客户请求访问的当前JSP页面执行完毕并向客 
       户端发回响应。 
request:
一个请求内,当所有请求的jsp页面执行完毕并返回响应后,javaBean消失.
JavaBean对象作为属性保存在HttpRequest对象中,属性名为JavaBean 的id ,属性值为JavaBean 对象 , 因此也可以通过HttpRequest.getAttribute()方 法 取 得JavaBean对象,例如: 
[java]  
Person obj=(Person)request.getAttribute(“myBean”);   
 
session
JavaBean 对象被创建后,它存在于整个Session 的生存
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,