学习笔记之内省和JavaBean

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

内省:IntroSpector,意思为检查、视察。对内部进行检查,了解内部细节。主要用于对JavaBean进行操作。

 JavaBean是一种特殊的类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合一定的规则。

譬如:要获取age属性,那么方法名要写成getAge()。

方法名要以get或set,符合这个规则的类就叫JavaBean。

这种javabean的实例对象,称为值对象VO(ValueObject)。

一个符合JavaBean特点的类可以当做普通类一样进行使用,但把它当做JavaBean会更方便。

JDK中提供了JavaBean进行操作的一些API,这套API成为内省。

一个java类不一定要当做javabean来操作;一个javabean一定可以当做一个普通java类来操作。

get方法没有传入参数,有返回类型,访问权限为public;

set方法有传入参数,没有返回类型,访问权限为public。

如果把一个java类当一个javabean来看,javabean的属性是根据get和set方法的名称来推断出来的;

如:

class Person{

      private int x;

      public int getAge(){

           return x;

      }

      public void setAge(int  age){

            this.x = age;

      }

}

person 当做一个javabean来看,那么person类的属性是根据方法名推断出来的,从外部来看,根本看不到java类内部的成员变量。

setId()的属性名-->id

isLast()的属性名-->last

setCPU()的属性名-->CPU

getUPS()的属性名-->UPS

总之,如果set或get后面第一个字母是大写,第二个字母是小写,则把属性名第一个字母改为小写。

下面介绍利用内省获取javabean中某个属性

public class IntroSpectorDemo {
 public static void main(String[] args) throws Exception {
  ReflectPoint2 pt1 = new ReflectPoint2(3,5);
  
  String propertyName="x";
  
  //"x"-->"X"-->"getX"-->"MethodGetX"-->
  Object retVal = getProperty(pt1, propertyName);
  System.out.println(retVal);
  
  Object value = 7;
  setProperties(pt1, propertyName, value);
  //选中pt1.getX(),ALT+/可以自动填上输出语句
  System.out.println(pt1.getX());;

 }

 ①private static void setProperties(Object pt1, String propertyName,
   Object value) throws IntrospectionException,
   IllegalAccessException, InvocationTargetException {
  PropertyDescriptor pd2 = new PropertyDescriptor(propertyName,pt1.getClass());
  Method methodSetX = pd2.getWriteMethod();
  methodSetX.invoke(pt1, value);
 }

 ②private static Object getProperty(Object pt1, String propertyName)
   throws IntrospectionException, IllegalAccessException,
   InvocationTargetException {
//  PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());
//  Method methodGetX = pd.getReadMethod();
//  Object retVal = methodGetX.invoke(pt1);
  
  BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass());
  PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();//得到所有属性描述
  Object retVal = null;
  for(PropertyDescriptor pd1:pds){
   if(pd1.getName().equals(propertyName)){
    Method methodGetX  = pd1.getReadMethod();
    retVal = methodGetX.invoke(pt1);//pt1对象调用methodGetX方法
    break;
   }
  }
  return retVal;
 }

}

①和②是两种不同方法:

①直接用PropertyDescriptor类的构造方法获取指定属性的属性描述,再利用PropertyDescriptor类的对象获取读取属性的方法。

②采用遍历BeanInfo的所有属性的方式来查找某个RelectPoint对象的x属性。在程序中把一个类当做javabean来看,调用IntroSpector.getBeanInfo方法,得到BeanInfo对象。这个封装了这个javabean的所有结果信息。

BeanInfo不能得到某个属性的描述,只能得到所有的属性描述。

STM32F401RCT6最小系统原理图设计 STM32F401RCT6最小系统原理图设计一、主控芯片二、电源电路三、晶振电路三、下载电路四、完整电路图      本文章基于STM32F401RCT6进行最小系统原理图设计,包含主控芯片,电源,晶振电路,下载电路等几部分 一、主控芯片 主控芯片采用STM32F401RCT6,需注意: VBAT在不接电池的情况下需接3.3V,VDDAVREF+需接3.3V,否则会造成芯片供电不正常,无法启动和识别的情况 VDDAVREF+和VCAP1处电容需按照规格书 阅读详情

相关推荐

b站视频链接快速获取

快速获取b站视频数据

qq_45889931的博客 7699

黑马程序员__内省和JavaBean

----------- [url=http://www.itheima.com]android培训[/url]、[url=http://www.itheima.com]java培训[/url]、java学习型技术博客、期待与您交流! ------------ [b]内省Introspector[/b] Java提供用于对JavaBean进行操作的类。 [b]JavaBean[/b]...

学习笔记 147

spark 适配达梦数据库

spark 适配达梦数据库 版本 spark3.0.0 scala2.12.10 DM Database Server 64 V8 步骤一: 引驱动包: SBT方式: "com.dameng" % "Dm8JdbcDriver18" % "8.1.0.157", maven方式: <dependency> <groupId>com.dameng</groupId> <artifactId>Dm8JdbcDriver18</artifac

_@Eva@_的博客 2087

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

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

qq_44111805的博客 3547

FTP新手必看:vsftpd 530登录错误的8种实战解决方案(附详细配置步骤)

本文针对FTP服务配置中常见的vsftpd 530登录错误,提供了8种实战解决方案。从理解错误本质入手,系统性地排查用户列表策略、PAM认证、系统黑名单、Shell限制、目录权限及DNS解析等问题,并附有详细的配置步骤与命令,帮助新手快速定位并解决登录失败难题。

ik678901的博客 696

摇骰子、抽奖转盘酒桌游戏 人生重启模拟器小程序源码分享-开通流量主躺着赚钱

摇骰子、抽奖转盘酒桌游戏 人生重启模拟器小程序源码分享-开通流量主躺着赚钱

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1650

javabean学习笔记

1、JAVA命名规范 包的命名   (全部小写,由域名定义) 类的命名      (单词首字母大写) 属性名称      (首字母小写,其余字母大写) 方法的命名  (首字母小写,字母开头大写) 常量的命名  (全部大写 ,常加下划线) 2、编写JavaBean时,必须满足一些要求: 1.JavaBean必须放在一个包中,即必须包含package 2. JavaBean必须

luckyyulin的专栏 1654

STM32F103待机模式原理与低功耗实战指南

待机模式是嵌入式系统实现超低功耗的核心机制,其本质是通过切断内核域电源(VDD/VDDA)实现微安级静态电流,区别于睡眠/停止模式的状态保持特性。原理上依赖电源域隔离、WKUP引脚事件唤醒与RTC备份域协同,技术价值在于支撑电池供电设备长达数年续航。典型应用场景包括物联网传感器节点、智能电表、便携医疗设备等对功耗极度敏感的终端。工程落地需严格遵循GPIO模拟输入配置、唤醒标志清除、备份域解锁等关键步骤,避免因漏电或误唤醒导致实测电流超标。本文以STM32F103为例,深入解析待机模式的硬件基础与HAL库实现

weixin_32999557的博客 66

JavaBean的创建和使用

jsp的动作useBean 首先,JavaBean是什么? 那么,JavaBean该如何写? OK,接下来,我们写下一个JavaBean:package com.xust.jia.beans;public class User { private String username = null; private String password = null; pub

a18792721831的博客 3万+

GEE土地分类:基于sentinel-2的ResNet深度学习模型的土地分类

本文提出了一种基于深度学习的土地覆盖分类方法,通过集成Google Earth Engine和PyTorch框架实现自动化监测系统。技术方案包括:1) 使用Sentinel-2和Landsat-8卫星影像作为数据源,结合EuroSAT标准数据集;2) 采用ResNet50和U-Net构建深度学习模型;3) 建立端到端处理流程,包含数据预处理、模型训练和评估体系。实验结果表明,该方法在EuroSAT数据集上达到90%的分类准确率,成功应用于农作物监测、城市扩张分析等场景。系统配置基于Python 3.8+环境

此星光明博客 370

037、有源钳位反激变换器(ACF)原理

文章摘要 有源钳位反激变换器(ACF)是一种克服常规反激电路漏感能量处理瓶颈的高效解决方案。文章从实际炸机案例切入,指出RCD钳位电路在高压、宽范围、高功率场景下的局限性。ACF通过增加钳位管和钳位电容,将漏感能量回收而非消耗,实现效率提升2-3%、精准电压钳位和更好EMI性能。文章详细解析了ACF四阶段工作过程、关键波形特征,并指出设计陷阱:漏感需保持1%-3%特定范围、钳位电容ESR要求严格、需专用控制IC支持互补驱动。最后给出实用调试建议,强调ACF适用于65W+功率场景,低压验证后再逐步升压的调试方

Jack010169的博客 253

javabean是什么和总结javabean的两种使用方式

原文:http://www.blogjava.net/flysky19/articles/88180.html 一、 javabean 是什么? Javabean 就是一个类,这个类就定义一系列 get 和 set 方法。 So simple ! Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。 自己的理解: 使用 javabean 和不用 

caojunxiong的博客 1万+

rk3568 点亮双LVDS 屏

承接文章《rk3568点亮LCD(lvds)》中仅仅只能使用亮单LVDS;经过厂商的努力,陆续发布新补丁。目前支持双lvds显示,缺憾是需要自己额外移植相关补丁。受限于通信频率和VOP编码能力,支持最大分辨仍然是1920x1080、60fps。

weixin_35723192的博客 3006

POJO和JavaBean的区别

POJO POJO(Plain Ordinary Java Object),简单普通的java对象。主要用来指代那些没有遵循特定的java对象模型,约定或者框架的对象。没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。 POJO的基本内容: 有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的

Chary的Blog 2784

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

javaBean和Servlet区别

 一、什么是javaBean在JSP中调用JAVA类和使用JAVABEAN有什么区别?你可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类。特殊在可以通过调用JavaBean而其他类,你可以和一般java中一样使用.   Bean   的参数中还可以指定范围,      该Bean在服务器的JVM   中将只有一个实例.     Bean是和WebServer相关的,  

xiaoqinglang的专栏 4163

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JavaBean是什么和总结JavaBean的两种使用方式

转载于:http://www.blogjava.net/flysky19/articles/88180.html 一、 javabean 是什么? Javabean 就是一个类,这个类就定义一系列 get 和 set 方法。 So simple ! Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。 自己的理解: 使用 javabean 和不用 javabean 的区别: 一个 javabean 就是为 jsp 页面上的元素一一开辟一个空间,然后根据需要赋值、读值。而如果不用 javab

这货净瞎扯的博客 5383

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java学习笔记--JavaBean,快速生成标准javabean通用快捷键,封装总结,JAVABean的参与,添加,查询功能运行原理

JavaBean,快速生成标准javabean通用快捷键,封装总结,JAVABean的参与,添加,查询功能运行原理

THRUSTER11111的博客 2593

JavaBean学习笔记

一、什么是JavaBea 二、JavaBean的属性 三、在JSP中使用JavaBean 四、<jsp:useBean>标签 五、<jsp:useBean>执行原理 六、带标签体的<jsp:useBean>标签 七、```<jsp:setProperty>```标签

wuyinlei的博客 814

JSP和JavaBean

文章目录一. 认识JavaBean二. JavaBean的概述1. JavaBean的作用2. Javabean的定义3. Javabean分类(1). 封装业务逻辑的Javabean(LoginDao.java封装了登录逻辑)(2). 封装数据的Javabean(实体类)三. 解决部分错误的方法1. 出现的问题2. 解决的办法(1). a. 可能是JDK、tomcat版本问题(2). b. 清空各种缓存(3). c. 删除之前的tomcat,重新解压缩,配置tomcat,重启计算机(4). d. 如果类

巧克力布丁的博客 1524

javaBean和Servlet的区别

可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类。特殊在可以通过<jsp:useBean/>调用JavaBean。而其他类,可以和一般java中一样使用。Bean的参数中还可以指定范围, <jsp:useBeanscope="application"/>该Bean在服务器的JVM中将只有一个实例.Bean是和WebServer相关的,...

sinolover的专栏 8841

javabean是什么和总结javabean的两种使用方式 javabean 是什么?

http://www.blogjava.net/jzgl-ever/articles/218518.html 一、 javabean 是什么? Javabean 就是一个类,这个类就定义一系列 get 和 set 方法。 So simple ! Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。 自己的理解: 使用 javabean 和不用 java

1529

Java学习笔记:JavaBean

这一节都是零零碎碎的语法 1、吐槽Java中没有属性的语法。 2、JavaBean官方规范100多页。 Chain Setter 现在流行一种“链式编程”的风格。 public class Person { private int age; private String name; public int getAge() { return age; } public Person setAge(int age) { ...

薛定谔的猫 1209

J2EE学习笔记之JavaBean

J2EE学习笔记之JavaBean JavaBean概述:      JavaBean是一个简单的Java类,具有Java类的一切特征。如封装、继承、多态等。JavaBean可分为两类,一类是有用户接口的JavaBean,另一类则是没有用户接口的JavaBean;一般在JSP中使用的是没有用户接口(UI)的JavaBean。   使用JavaBean主要是用来封装业务逻辑(如数据运算、数据库

Code_Thinking的专栏 666

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万+

java异常和javabean_javabean

[求助]javabean[求助]javabean我是个新手,请大家多关照!我刚学JSP,在JavaBean上遇到了一点问题,我想问问*.java该放在哪个目录,在.jsp文件中如何访问!!!搜索更多相关主题的帖子:color="red">javabeancolor='#FF8000'>----------------解决方案...10热度JavaBean求助JavaBean求助我的是T...

weixin_29957793的博客 328
上一篇: 利用myeclipse的重构自动抽取成方法
下一篇: 学习笔记之BeanUtils工具包及common-logging的下载及应用
wangpanbaoding
博客等级 码龄18年 42粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值