当前位置: 首页 > news >正文

成都企业网站建设网页广告调词平台

成都企业网站建设,网页广告调词平台,北京建展科技发展有限公司,wordpress页面位置0x00 前言 对于非专业程序员的安全人员来说,因为没有代码项目的积累,很多知识体系都不完善,所以有必要在一些常用的内容进行学习的总结。 在很多的调用链中都会用到**“动态调用setter以及getter”**这个知识点,比如经典的CB链&a…

0x00 前言

对于非专业程序员的安全人员来说,因为没有代码项目的积累,很多知识体系都不完善,所以有必要在一些常用的内容进行学习的总结。
在很多的调用链中都会用到**“动态调用setter以及getter”**这个知识点,比如经典的CB链,fastjson调用链等。为了避免进行重复的分析,所以单独拎出来这个进行详解,查漏补缺,如有遗漏或者错误的地方,还请斧正。

0x01 java中的Bean

首先占用一点位置说一下Bean是什么,Bean就是类。很简单,但是如果不知道,一些文章你就看不太懂。

0x02 静态调用setter,getter方法

在Java的类中(bean)中,通常属性都是会进行封装的,会对外暴露setter,getter方法。我们可以通过setter或者getter方法去对属性进行赋值,或者读取属性的值。

封装可以参考,虽然很浅,简单的了解即可。:封装-菜鸟教程

这里先建一个Person类,展示一下封装。位置:JavaBasis/src/main/java/com/dudu/cls/Person.java

在这里插入图片描述

在已知对象的setter和getter我们可以通过这样的方式来进行调用:

测试Demo位置:JavaBasis/src/main/java/com/dudu/demo/PersonDemo.java

在这里插入图片描述

0x03 动态调用setter以及getter

有这样一种需求,如果我需要进行动态的调用setter和getter方法,并且,我想要通过外部输入的方式来实现这个过程,那么有什么方式可以做到呢。请看下面方式

1.通过反射实现

反射是所有动态调用setter和getter方法的基础,也就是底层依赖的内容,不论是CB,还是fastjson都是万变不离其宗的。

这里通过自己写一个自定义的方法来实现动态的setter和getter对属性进行赋值。

1.1 set方法

首先来看代码,位置在./JavaBasis/src/main/java/com/dudu/tools/MyInvoke.java

通过自己写的一个比较简单的demo,就可以实现通过输入属性名进行setter赋值

在这里插入图片描述

1.2 get方法

getter方法是同理的,位置也是在./JavaBasis/src/main/java/com/dudu/tools/MyInvoke.java

通过动态传入属性的名称,从而获取属性的值的操作

在这里插入图片描述

1.3 Demo测试

测试demo位置:com\dudu\demo\MyInvokeDemo.java

在这里插入图片描述

2.PropertyUtils

PropertyUtils是commons-beanutils库提供的一个工具类,通过此类可以快速的进行适配使用动态调用setter以及getter方法,不需要自己处理过多的Bug。

1.1 PropertyUtils的基本使用

通过PropertyUtils这个类中提供的方法就可以实现动态的调用Bean的setter和getter方法,只需要名称即可。

首先需要通过maven导入commons-beanutils库

<dependencies><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.4</version></dependency>
</dependencies>

PropertyUtils有两个方法,一个是setProperty,一个是getProperty。这里看一下demo,位置:JavaBasis/src/main/java/com/dudu/demo/PropertyUtilsDemo.java

通过setProperty方法调用了指定属性的setter方法,以及getProperty方法获取了对应属性的值:
在这里插入图片描述

下面是运行结果。

在这里插入图片描述

1.2 PropertyUtils不仅仅是操作属性的值

PropertyUtils不仅仅是操作属性的值,这句话怎么理解,PropertyUtils可以直接操作以setter,或者getter打头的方法。

这里为了区分,创建了Person2,内容如下图所示,位置:JavaBasis/src/main/java/com/dudu/cls/Person2.java

这个类中,有一个以get打头,并且不是操作属性的方法。

在这里插入图片描述

通过PropertyUtils.getProperty进行调用。位置:JavaBasis/src/main/java/com/dudu/demo/PropertyUtilsDemo2.java

在这里插入图片描述

那么如果在get打头的方法中,出现可以利用的内容,那么就可以走PropertyUtils库。

以上

http://www.khdw.cn/news/37121.html

相关文章:

  • 网站目录是什么百度快照如何优化
  • 做网站注意什么qq群引流推广平台免费
  • 绍兴公司企业名单seo优化培训机构
  • 胶州哪家公司做网站交换链接营销的典型案例
  • 网站营销看法平台推广方式有哪些
  • 工程信息建程网青岛seo
  • 内蒙古地区做推广网站自媒体seo是什么意思
  • 高端建站价格友情链接出售
  • 中国建设银行嵊州市支行网站厦门seo关键词优化
  • 英文站 wordpress培训心得体会范文500字
  • dw手机销售网站制作百度推广怎么样才有效果
  • 郑州交友网站建设网站优化公司哪家效果好
  • 网站建设费用标准对网站和网页的认识
  • 叮当设计官网武汉网络推广seo
  • 网站开发毕设论文百度移动应用
  • 电子商务网站开发方案香港域名注册网站
  • 做柜子喜欢上哪些网站看企业网站营销
  • 帮别人做网站需要什么能力crm系统网站
  • 高密做网站的公司做网站找哪个公司好
  • 自己做微信优惠券需要网站企业网站类型有哪些
  • html搭建网站做推广网络
  • wordpress 音乐播放器 歌词seo自然排名关键词来源的优缺点
  • 女与男爱做电影网站免费百度一下官方网址
  • 做地接的网站什么是软文文案
  • 文化建设新闻河南网站推广优化排名
  • asp网站打开做一个网站需要什么
  • 百度网站怎么做的兰州网站优化
  • 企业做网站的费用计入什么科目网络营销做得好的企业有哪些
  • 做羽毛球网站安卓优化大师官方版
  • 潍坊做电商的网站怎么做网络营销推广