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方法获取属性。

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类,例如: 
 

<%@ page import="mypack.CounterBean" %> 

2、声明JavaBean对象

<jsp:useBean>标签用来声明JavaBean对象,例如: 

<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>标签,例如: 

<jsp:getProperty name="myBean" property="count" /> 

如果要给 JavaBean 的某个属性赋值 ,可以用 <jsp:setProperty>标签,例如: 

<jsp:setProperty     name="myBean"    property="count"  value="0" /> 


4、代码示例

创建JavaBean类:

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

<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对象,例如: 

Person obj=(Person)request.getAttribute(“myBean”); 

session

JavaBean 对象被创建后,它存在于整个Session 的生存周期内,同一个Session 中的 JSP文件共享这个JavaBean对象。 

JavaBean对象作为属性保存在HttpSession 对象中,属性名为JavaBean 的id,属性值为 JavaBean对象。除了可以通过JavaBean 的 id直接引用JavaBean 对象外,也可以通过  HttpSession.getAttribute()  方 法 取 得JavaBean对象,例如:

Person obj=(Person)session.getAttribute(“myBean”); 

Application

JavaBean 对象被创建后,它存在于整个Web应用的生命周期内,Web应用中的所有JSP文件都能共享同一个JavaBean对象。

Person obj=(Person)application.getAttribute(“myBean”); 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值