JavaBean的一些总结

在JSP中使用JAVABEAN 假设JSP页面获取用户数据、与数据库交互,最后向用户显示结果。此JSP页面包括应用程序的业务和表示逻辑。业务逻辑包括与数据库交互的代码,而表示逻辑包括将结果格式化进行显示的代码。设计员可能不了解Java的任何知识,但由于页面上会嵌入Java代码,因而在开发表示逻辑时会遇到困难。同样,编写Java代码的程序员可能不熟悉在页面上创建用户界面的所有格式标记。JSP可以使用JavaBean将开发Web应用程序涉及的Web设计员和程序员的角色分开。 阅读详情

最近在学习JavaBean下面是我的一些总结,如果有错的希望大家指出来

一、定义:
     把一个拥有对属性进行set和get方法的类,我们就可以称之为JavaBean。实际上JavaBean就是一个java类,在这个java类中就默认形成了一种规则——对属性进行设置和获得。而反之将说ava类就是一个JavaBean,这种说法是错误的,因为一个java类中不一定有对属性的设置和获得的方法(也就是不一定有set和get方法)。
二、从JavaBean中就引出了一个内省的概念
     内省:把一类中需要进行设置和获得的属性访问权限设置为private(私有的)让外部的使用者看不见摸不着,而通过public(共有的)set和get方法来对其属性的值来进行设置和获得,而内部的操作具体是怎样的?外界使用的人不用不知道,这就称为内省。
三、使用内省解释JavaBean中setProperty()和setProperty()方法的实现原理。实际上也是用反射的那一套做法

package itcast.Test5;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import javax.crypto.spec.PSource;

import org.apache.commons.beanutils.BeanUtils;

/*5、写一个方法,public void setProperty(Object obj, String propertyName, Object value){},
此方法可将obj对象中名为propertyName的属性的值设置为value。*/
//这题中用了内省的简单应用,理解到了JavaBean中setProperty()方法和getProperty()方法的实现
public class SetPropertyTest {

 /**
  * @param args
  * @throws NoSuchMethodException
  * @throws InvocationTargetException
  * @throws IllegalAccessException
  */
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  Point pt1 = new Point(3, 5);
  String propertyName = "x";
  Object value = 7;
  
  getProperty(pt1, propertyName);
  
  setProperty(pt1, propertyName, value);
  //下面是使用BeanUtil工具包进行set和get属性的值
  /*//System.out.println(BeanUtils.getProperty(pt1, propertyName));
  BeanUtils.setProperty(pt1, propertyName, "9");
  System.out.println(pt1.getX());
  //System.out.println(pt1.getX());
*/ }
 //setProperty()方法的实现
 private static void setProperty(Object object, String propertyName, Object value) {
  try {
   //使用java.beans包中的PropertyDescriptor(属性操作符类)
   PropertyDescriptor pd2 = new PropertyDescriptor(propertyName, object.getClass());
   //通过反射来得到Point这个javabean的set方法
   Method methodSetX = pd2.getWriteMethod();//getWriteMethod()得到JavaBean中可写的方法也就是set方法
   methodSetX.invoke(object,value);//对方法进行赋值设置
  } catch (Exception e) {
   // TODO: handle exception
  }
 }
 //getProperty()方法的实现
 private static void getProperty(Object object, String propertyName) {
  
  try {
   PropertyDescriptor pd1 = new PropertyDescriptor(propertyName, object.getClass());
   Method methodGetX = pd1.getReadMethod();
   Object retVal = methodGetX.invoke(object);
   System.out.println(retVal);
   //下面所注析的时一种比较复杂的方法来获得JavaBean中的属性值
  /* BeanInfo beanInfo = Introspector.getBeanInfo(object.getClass());
   //通过beanInfo对象调用getPropertyDescriptors()方法来获得所有的属性描述
   PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
   Object retVal = null;
   通过上面的操作得到了对JavaBean中的所有的属性的描述,下面就对所有的属性进行迭代,通过每个属性的getName()方法来得到属性名,
   和我要找的那个属性名来进行比较,如果找到了,就进行相应的操作
   for (PropertyDescriptor pd : pds) {
    if(pd.getName().equals(propertyName)){
     Method methodGetX = pd.getReadMethod();
     retVal = methodGetX.invoke(object);
     break;
    }
   }*/
   //System.out.println(retVal);
  } catch (Exception e) {
   // TODO: handle exception
  }
  
 }

}

class Point {
 private int x;
 private int y;
 
 public Point(int x, int y) {
  super();
  this.x = x;
  this.y = y;
 }

 public int getX() {
  return x;
 }

 public void setX(int x) {
  this.x = x;
 }

 public int getY() {
  return y;
 }

 public void setY(int y) {
  this.y = y;
 }
 
}

在JSP中实现JAVABEAN 创建Web应用程序以连接数据库并检索作者名、地址、城市、州及邮政编码等与作者的详细信息。JavaBean组件应接受作者ID、驱动程序名及URL作为参数。信息要从authors表中检索。 阅读详情

相关推荐

用EL操作JAVABEAN属性

Smart SoftWare Inc.想要开发一款维护雇员数据(例如姓、名字、职位)的Web应用程序。该组织决定将雇员数据存储在一个JavaBean中。另外,它还希望该Web应用程序能让用户从此JavaBean中检索数据并用JSP页面和EL显示。

RZer的博客 1160

java 类设置属性名称_在JavaBean中,对每个属性一般定义两个public方法,一个是访问属性的方法,另一个是设置属性的方法,也就是:如果属性是名称为name,其类型是String,那么这两个...

【单选题】在汉字字形的结构系统中,最小的结构单位是【单选题】下面( )方法能够读取给定HttpServletRequest对象的所有Cookie。【单选题】下列定义是许慎为“形声”所下的是( )【判断题】在jsp页面执行表达式${3+var}(其中var未定义)时将会引发编译错误。【判断题】移电子商务活动是电子商务的扩展与延伸。【单选题】需要紧急输血时主要考虑【单选题】核心标签库中,用来实现...

weixin_28979369的博客 503

FUMA实战:5分钟搞定GWAS数据中的Independent SNPs和Lead SNPs筛选

本文详细介绍了如何使用FUMA平台快速筛选GWAS数据中的Independent SNPs和Lead SNPs。通过解析核心概念、分步实战演示和结果解读,帮助研究人员在5分钟内从海量显著关联位点中提炼出独立且具代表性的遗传信号,为后续功能注释和基因定位奠定高效基础。

weixin_29201859的博客 425

对 JavaBean 的特点写法与实战心得详解

javaBean 是一个实体类,JavaBean 通过提供符合一致设计模式的公共方法向成员属性公开内部域,set 和 get 方法获取。JavaBean 是用 Java 语言编写的可重用组件。要编写 JavaBean,类必须是具体的和公共的,并且具有无参数构造函数。JavaBeans 通过提供符合一致设计模式的公共方法,并通过 set 和 get 方法获取成员属性,从而将内部域公开给成员属性。

m0_73493267的博客 1091

EBS开发_创建AP付款

--以下代码于20181002在Tony环境测试通过 /* BEGIN   --mo_global.init('SQLAP');   apps.fnd_global.apps_initialize(user_id => 1110, resp_id => 50597, resp_appl_id => 20003);   --mo_global.set_policy_context(...

蜗牛先生快跑的博客 4767

IAR for ARM 搭建STM32F103C8T6工程模板(实战指南)

本文详细介绍了如何在IAR for ARM开发环境中为STM32F103C8T6微控制器搭建完整的工程模板。从环境准备、固件库获取、目录结构设计到工程配置与编译调试,提供了实战指南和常见问题解决方案,帮助开发者快速建立稳定的STM32开发环境。

fun88的博客 989

Java Bean

Java Bean特性 支持反射机制 支持事件——利用事件可以将相应的信息通知给bean 支持属性:可以自定义属性,利用标准标签与JSP页面交互数据 支持持久性:可以保存Java Bean,需要时可重新载入 遵循规范 必须是public类 JSP页面调用的方法,必须赋予public访问权限(java权限修饰符的概念) get、set方法 编辑器一般都可以自动生成 不熟悉可以自己写 权限是pu...

技术蜗牛 230

Ubuntu系统全盘备份——TimeShift的安装与使用

所以如果有那天你不小心作了个大死,并且幸运到还能打开GNOME桌面和Timeshift(只要不是执行sudo rm -f /*这样的自杀程序)的时候,点击你要恢复的那个备份文件再点击Restore,经过短暂的重启后你的系统就成功恢复了。打开软件后,会有一些初始化设置,只需要一直点击 Next。根据自己电脑的内存大小决定是自动备份还是手动备份。当然,对于虚拟机用户来说,没有比在客户机直接拷贝虚拟磁盘文件更棒的方式了。点击左上角的 Create,就会执行备份操作。最下面的意思就是说不会自动备份需要手动操作。

琉璃轻纱的博客 4707

JavaBean学习总结

Javabean的使用 1.一个Javabean即可以说对应一张数据库表,比如一张user表,则为userbean,在userbean中添加需要用到的字段名作为变量定义getting与setting方法 2.而对数据库表的操作(增删改查),则可以说是对javabean的增删改查操作,所以是依据着Javabean的方法来处理的,比如对userbean的数据分页显示出来

雨墨轩痕 4183

python3.12 在用django5.0创建超级用户时,遇到AttributeError: module ‘hashlib‘ has no attribute ‘pbkdf2_hmac‘的问题

产生问题的原因是python3.12的hashlib没有自带pbkdf2_hmac函数,该函数是加密算法的一种,只要通过别的函数导入pbkdf2_hmac即可。还有一种方法是将django默认使用的pbkdf2_hmac改为hashlib自带的sha2或其他算法返回加密的密码,笔者以后会尝试用此类办法解决问题。2.找到报错文件的位置/usr/local/lib/python3.12/site-packages/django/utils/crypto.py。保存修改的文件,重新执行创建超级用户的命令成功。

weixin_67057943的博客 852

NXP KW45开发实战:如何在MCUXpresso IDE中正确配置J-Link并解决设备识别问题

本文详细介绍了在MCUXpresso IDE中配置J-Link以支持NXP KW45无线MCU开发的实战指南。从环境准备到J-Link深度配置,再到烧录流程优化和高级调试技巧,帮助开发者高效解决设备识别问题并提升开发效率。特别推荐使用JLinkRemoteServer.exe进行多设备并行调试,并提供了烧录速度优化和低功耗调试的实用技巧。

gray5的博客 864

第五章 JAVA Bean技术

5.1 JavaBean技术 JavaBean技术是javaweb程序的重要组成部分,是一个可重复使用的软件组件,是用Java语言编写的、遵循一定的标准类,,他封装了数据和业务逻辑,供JSP(或servlet,下一章介绍)调用,完成数据封装和数据处理功能。   ###JAVABEAN 的设计 设计javabean就是编写java类,但与普通类不同,有其特殊的设计规则和要求。 javabea

qq_36933589的博客 380

IP2315高效同步降压充电IC在快充应用中的硬件与软件控制策略

本文深入解析IP2315高效同步降压充电IC在快充应用中的硬件与软件控制策略,涵盖其核心特性、硬件电阻调节技巧、I2C动态控制方案、散热设计优化及典型问题排查。IP2315支持多种快充协议,如Type-C PD、华为FCP等,适用于便携设备快速充电需求,并通过I2C实现灵活的充电参数设置,提升充电效率与安全性。

weixin_29248313的博客 540

JavaBean简介及使用

一、JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,有以下的优点: 1.可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP页面中,会使整个程序代码又多又复杂,造成日后维护上的困难。

Joywy的专栏 23万+

YOLOv8改进 | 主干网络 | 在backbone添加Swin-Transformer层【论文必备】

YOLOv8改进,Swin-Transform,YOLOv8添加Swin-Transform

kay_545 2367

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JavaBean的使用实例、原理

最近拿起之前看过的WEB书准备再翻看翻看,到了JavaBean这里觉得有必要写一点东西帮助刚接触的小白。一、JavaBean的含义       JavaBean是使用Java语言开发的一个可重用组件,能使Html代码与JAVA代码分离,并节省开发时间,简单的说就是一个包含了setter和getter以及至少一个无参构造方法的JAVA类,在框架中或其他方面也管它叫做PO,VO,TO等。例如:pack...

JUST DO IT,就是干IT! 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JavaBean详解

JavaBean的概念 JavaBean是一种可重复使用、且跨平台的软件组件。JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。 JSP与JavaBean搭配使用的优点 使得HTML与Java程序分离,这样便于维护代码。如果把所有的程序代码都写到JSP网页中,会使得代码繁杂,难以维护。 可以降低开发JSP网页人员对Java编程能

technologyleader的专栏 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

javaBean

javaBean 概述 起初,JavaBean的目的是为了将可以重复使用的代码进行打包,在传统的应用中,JavaBean主要用于实现一些可视化界面,如一个窗体、按钮、文本框等,这样的JavaBean称之可视化的JavaBean。随着技术的不断发展与项目的需求,目前JavaBean主要用于实现一此业务逻辑或封装一些业务对象,由于这样的JavaBean并没有可视化的界面,所以又称之为非可视化的Jav...

没有到不了的明天 7036

JavaBean

<br />JAVABEAN是什么和总结JAVABEAN的两种使用方式06-7-23<br />一、 javabean 是什么?<br />Javabean 就是一个类,这个类就定义一系列 get<Name> 和 set<Name> 方法。 So simple !<br />Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。<br />自己的理解:<br />使用 javabean 和不用 javabean 的区别:<br />一个 javabean 就是为 jsp 页面上的元素一一开辟

1700

什么是JavaBean,JavaBean作用

JavaBean定义: 一个Java类满足以下2点 ,就可以称为JavaBean: public 修饰的类 ,public 无参构造 所有属性(如果有) 都是private,并且提供set/get (如果boolean 则get 可以替换成is) javaBean分两种 第一种:封装数据的JavaBean 这种JavaBean也被叫做实体类,一般来说对应的是数据库中的一张表,例如这样的↓: public class UserDemo { private int id; private Strin

qq_45895520的博客 1万+

JavaBean技术之JavaBean工具、规范和属性

一、JavaBean概述 JavaBean组件就是利用Java语言编写的组件,它好比一个封装好的容器,使用者并不知道其内部是如何构造的,但它却具有适应用户要求的功能,每个JavaBean都实现了一个特定的功能,通过合理地组织不同功能的JavaBean,可以快速生成一个全新的应用程序。如果将一个应用程序比做一间空房间,那么这些JavaBean就好比房间中的家具。 JavaBean的技术特点: 1.一次性编写 一个成功的JavaBean组件重用时不需要重新编写,开发者只需要根据需求修改和升级代码即可。 2.任何

qq_44111805的博客 3549

javabean java,使用JAVABEAN报错,求救解决办法

当前位置:我的异常网» Java Web开发»使用JAVABEAN报错,求救解决办法使用JAVABEAN报错,求救解决办法www.myexceptions.net网友分享于:2013-02-16浏览:10次使用JAVABEAN报错,求救环境JDK+TOMCAT+SQLSERVER 2000问题:JSP文件调用JAVABEAN错误(JAVABEAN能够正确编译并能够正确生成CLASS...

weixin_42162171的博客 704

JavaBean是什么

Java 之父 James Gosling 在设计 Java 语言,为 Java 组件中封装数据的 Java 类进行命名时,看到了桌子上的咖啡豆,于是灵机一动,就把它命名为“JavaBean”。从此,"JavaBean"开始了它罪恶的一生。 定义 JavaBean 是遵守 Java API 规范的 Java类,它是一个可以重复使用的组件。 JavaBean必须满足以下三个条件: 是一个公共类,并提供公有的无参构造方法 属性必须私有化 必须有对应的get/set方法 只要是满足了以上3个要求的、是用Jav

CYW2019_HUST的博客 2382

JavaBean总结

一、JavaBean出现的目的 由于只用JSP开发会发现使用了很多的Scriptlet,会使得jsp文件非常混乱。如果使用了JavaBean,则可以大大减少JSP中代码量。 JSP的理想状态是只负责显示,而不负责处理。 二、JavaBean介绍 JavaBean说的通俗点就是一个Java类用于JSP中。通过或者import导入。 JavaBean导入的类的约定:

xiazdong 5929
上一篇: 几个java编程的典型例子
下一篇: MyEclipse10.0优化
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Seven的代码实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值