`

java自学==javabean实例

阅读更多
javaBean是java web开发中的组件技术。一个JavaBean就是一个java类。主要有两种:(1)带有可视化界面的类,如button,combo等(2)没有可视化界面的类,javaweb用的是后者。

   JavaBean完成的工作主要是业务逻辑和数据处理逻辑,这样将显示逻辑和java程序逻辑分开来,减少jsp中的java代码量,而将大量的java代码封装到JavaBean组件中,在jsp页面只要简单的调用JavaBean即可,如用jsp:useBean动作标签。

    JavaBean的编写规则:

(1)应该为一个public类

(2)如果属性名字xxx,则getXxx()为得到属性值,setXxx()为设置属性值。

<jsp:getProperty>标签得到属性的值,实质上是调用JavaBean的get方法。

例如:

useBean.jsp

<%@ page language='java' contentType='text/html;charset=gb2312'
pageEncoding='gb2312'%>
<html>
<head>
  <title>使用useBean动作指令</title>
</head>
<body>



可视化bean

package visibableBean;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.BeanInfo;
import java.beans.EventSetDescriptor;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.MethodDescriptor;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

//可视化bean
public class Bean extends JFrame {

	private JTextField text=new JTextField(20);
	private JTextArea results=new JTextArea(); //文本域
	
	public void print(String s){
		results.append(s+"\n");
	}
	public void use(Class bean){
		results.setText("");
		BeanInfo bi=null;
		try{
			bi=Introspector.getBeanInfo(bean, Object.class);
		}catch(IntrospectionException e){
			print("Couldn't introspect"+bean.getName());
			return;
		}
		PropertyDescriptor[]properties=bi.getPropertyDescriptors(); //所有属性数组
		for(int i=0;i<properties.length;i++){
			Class p=properties[i].getPropertyType(); //属性的类型,返回为Class对象
			if(p==null)continue;
			print("属性类型: "+p.getName()+"\n属性名称: "+properties[i].getName());
			Method readMethod=properties[i].getReadMethod();
			if(readMethod!=null)
				print("getXXX() 方法: "+readMethod);
			Method writeMethod=properties[i].getWriteMethod();
			if(writeMethod!=null)
				print("setXXX() 方法: "+writeMethod);
			
		}
		print("===============");
		print("所有公共方法:");
		MethodDescriptor[] methods=bi.getMethodDescriptors();
		for(int i=0;i<methods.length;i++){
			print(methods[i].getMethod().toString());
			
		}
		print("===============");
		print("Event support");
		EventSetDescriptor[] events=bi.getEventSetDescriptors();
		for(int i=0;i<events.length;i++){
			print("监听类型:"+events[i].getListenerType().getName());
			Method[]lm=events[i].getListenerMethods();
			for(int j=0;j<lm.length;j++)
				print("监听方法: "+lm[j].getName());
			MethodDescriptor []lmd=events[i].getListenerMethodDescriptors();
			//for(int j=0;j<lmd.length;j++)
				//print("M")
			Method addListener=events[i].getAddListenerMethod();
			print("添加监听方法: "+addListener);
			Method removeListener=events[i].getRemoveListenerMethod();
			print("删除监听方法: "+removeListener);
		}
			
		
	}
	public Bean(){
		Container cp=getContentPane();
		JPanel p=new JPanel();
		p.setLayout(new FlowLayout());
		p.add(new JLabel("请输入JavaBean名称"));
		p.add(text);
		cp.add(BorderLayout.NORTH,p);
		cp.add(new JScrollPane(results));
		text.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
				String name=text.getText();
				Class c=null;
				try{
					c=Class.forName(name);
				}catch(ClassNotFoundException ex){
					ex.getMessage();
					return;
				}
				use(c);
			}
			
		}); //文本框添加响应事件
		
		text.setText("com.wsy.visalJavaBean");
	}
	
	public static void main(String[] args) {

		new Bean().setSize(500,300);
		new Bean().setVisible(true);
	}

}



package com.wsy;

import java.awt.event.ActionListener;

public class visalJavaBean {
	private int color;
	private int background;
	private int active;
	public int getActive() {
		return active;
	}
	public void setActive(int active) {
		this.active = active;
	}
	public int getBackground() {
		return background;
	}
	public void setBackground(int background) {
		this.background = background;
	}
	public int getColor() {
		return color;
	}
	public void setColor(int color) {
		this.color = color;
	}
	public void addActionListener(ActionListener l){
		
	}
	public void removeActionListener(ActionListener l){
		
	}
}


执行结果:



全部源码见附件
  • 大小: 89 KB
分享到:
评论

相关推荐

    Java程序设计自学手册光盘

    第3篇为实例篇(第15章~第20章),主要介绍JSP环境基础、JSP语法基础、JSP的内置对象、JavaBean技术和Servlet技术等Java Web领域的基础知识,最后通过一个博客网站介绍Java Web基础知识的综合应用。  本书附有配套...

    《Java程序设计自学手册》源代码

    第3篇为实例篇 第15章 第20章 主要介绍JSP环境基础 JSP语法基础 JSP的内置对象 JavaBean技术和Servlet技术等Java Web领域的基础知识 最后通过一个博客网站介绍Java Web基础知识的综合应用 本资料为书本例子的源代码...

    Java_Web编程新手自学手册.pdf

    本书循序渐进、由浅入深地讲解了Java Web的核心技术,并通过具体实例的实现过程为读者展示了各个知识点的具体使用流程。 扶松柏等主编的共20章,分为4篇。第1~6章是基础篇,讲解了认识Java,Java语法,程序控制...

    Enterprise JAVA BEAN

    学习EJB时编写的小例子,每个例子代表一个知识点。较好的自学材料。

    Java语言程序设计

     本书既可供大专院校用作“Java语言程序设计”课程教材,也可供Java 爱好者作为入门的自学教材。 目录第1章 Java语言基础知识 1.1 Java语言与面向对象的程序设计 1.1.1 面向对象的程序设计思想 1.1.2 Java语言的...

    jsp实用教程第三版课本实例

    全书共分 11章,内容包括JSP简介、JSP语法、JSP内置对象、 JSP与Javabean、Java Servlet、MVC模式、在JSP中使用数据库、文件操作、使用XML以及化妆品销售网、**信息发布网等内容。本书所有知识都结合具体实例进行...

    java-jsp第三版鲍格斯坦版中文翻译版PTF+源代码

    全书共分11章,内容包括JSP简介、JSP语法、JSP内置对象、JSP与Javabean、Java Servlet、MVC模式、在JSP中使用数据库、文件操作、使用XML以及、交友信息发布网等内容。本书所有知识都结合具体实例进行介绍,力求详略...

    JSP动态网页新技术

    第7章介绍了Java组件技术---JavaBean;第8章的内容是JSP的一些高级开发技术,如异常处理、标记库的扩展等;第9、10章分别给出编程实例:JSP的BBS论坛程序、JSP聊天室程序,第11章是JSP的编程技巧集;附录部分提供了6...

    JSP大学实用教程_源代码

    全书共分10章,内容包括JSP简介、JSP语法、内置对象、JSP与Javabean、文件操作、数据库操作、Java Servlet、MVC设计模式、JSP中使用XML等重要内容。本书所有知识都结合具体实例进行介绍,力求详略得当,突出JSP在...

    jsp 大学实用教程

    全书共分10章,内容包括JSP简介、JSP页面、JSP标记、内置对象、JSP与JavaBean、文件操作、数据库操作、Java Servlet、MVC设计模式等。本书不仅可以作为高等院校计算机及相关专业的相关课程的教材,也适合自学者及...

    JSP网络编程从基础到实践 源码

    入门篇的内容注重JSP应用开发的基本理论及相关类的介绍,并辅以实例说明,包括JSP技术概述、JSP的Web开发环境的安装与配置、Web开发基础、JSP语法、JSP的内置对象、JSP的文件操作、JSP中数据库的使用、JavaBean开发...

    JSP动态网页设计技术教程(书中13章源代码)

    本书共分为13章,其中前11章分别介绍了JSP的基本概念,JSP开发工具的安装与配置,JSP中的Java程序和JSP语法,JSP的内置对象,JavaBean、Servlet技术,JSP中的数据库开发技术Struts和Hibernate技术以及JSP组件等内容...

    Struts原理、开发及项目实施

    Struts原理、开发及项目实施 Holen 2002-9-12 &lt;br/&gt;1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点...

Global site tag (gtag.js) - Google Analytics