Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 浅析JavaBean

阅读目录
  • 一、概述
  • 二、什么是JavaBean?
  • 三、JavaBean的使用

一、概述

JavaBean组件本质上是一个Java类,只是这个类的编码要遵循一些约定。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。本文将对JavaBean涉及的知识点和基本用法进行简单的总结。

二、什么是JavaBean?

JavaBean 是一种JAVA语言写成的可重用组件,本质上是一个类,具有以下特性:
  • 它是一个public类型的类,属性则为private类型的,通过public的方法暴露给其它程序
  • 必须具有一个无参的构造函数
  • 提供setXXX()方法和getXXX()方法让外部程序设置和获取JavaBean属性
一个JavaBean主要由三个部分组成:
  1. 属性:是JavaBean组件内部状态的抽象表示
  2. 方法:就是通常的Java方法,默认情况下所有的方法都可以被外部调用
  3. 事件:Bean与其他软件组织交流信息的主要方式是发送和接收事件
下面代码为一个典型的JavaBean:package com.test;public class Person{private String name="aaa";private int age;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;}} JavaBean可以看成是一个黑盒子,即只需要知道其功能而不必管其内部结构的软件设备。黑盒子只介绍和定义其外部特征和与其他部分的接口,如按钮、窗口、颜色、形状、句柄等。通过将系统看成使用黑盒子关联起来的通讯网络,我们可以忽略黑盒子内部的系统细节,从而有效地控制系统的整体性能。

三、JavaBean的使用

在JSP中可以像使用普通类一样访问JavaBean,在脚本元素中实例化类的对象,调用对象的方法,并提供了三个动作元素来访问JavaBean。 <jsp:useBean>:用于实例化JavaBean或者定位一个已经存在的JavaBean,并把实例的引用赋值给一个变量。<%@ page language="java" pageEncoding="UTF-8"%><html><head><title>在此处插入标题</title></head><body><jsp:useBean id="person" class="com.test.Person" scope="page"/><%=person.getName() %></body></html> <jsp:setProperty>:和<jsp:userBean>一起使用用来设置JavaBean的属性。<%@ page language="java" pageEncoding="UTF-8"%><html><head><title>在此处插入标题</title></head><body><!-- userbean标签的标签提只在userbean标签实例化bean时使用--><jsp:useBean id="person" class="com.test.Person" scope="page"/><jsp:setProperty property="name" name="person" value="xujian"/><%=person.getName() %></body></html> 还可以通过param指定请求对象中参数的名字:<jsp:setProperty property="name" name="person" param="name"/> 在浏览器中输入http://localhost:8080/day_0623/1.jsp?name=songji,页面会显示属性name的值:songji。 <jsp:getProperty>:用来访问一个Bean的属性,并把属性的值转化成一个String,然后发送到输出流中<%@ page language="java" pageEncoding="UTF-8"%><html><head><title>在此处插入标题</title></head><body><!-- userbean标签的标签提只在userbean标签实例化bean时使用--><jsp:useBean id="person" class="com.test.Person" scope="page"/><jsp:setProperty property="name" name="person" value="wangjian"/><jsp:getProperty property="name" name="person"/></body></html> 查看jsp转化的Servlet文件(文件目录:workSpace.metadata.pluginsorg.eclipse.wst.server.core mp2workCatalinalocalhostday_0623orgapachejsp) com.test.Person person = null;synchronized (_jspx_page_context) {person = (com.test.Person) _jspx_page_context.getAttribute("person", PageContext.PAGE_SCOPE);if (person == null){person = new com.test.Person();_jspx_page_context.setAttribute("person", person, PageContext.PAGE_SCOPE);}}out.write(" ");out.write(" ");out.write(" ");org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person"), "name", "wangjian", null, null, false);out.write(" ");out.write(" ");out.write(" ");out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((com.test.Person)_jspx_page_context.findAttribute("person")).getName())));out.write(" ");out.write(" </body> "); 可以看到,<jsp:getProperty property="name" name="person"/>这是转换成上述代码红字体部分,调用了Person类的getName方法,如果该属性没有定义该方法则会报错。本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/120222.htm