java反射实例

Java代码审计前置知识——Java 反射机制 Java反射机制可以无视类方法、变量去访问权限修饰符(如protected、private等),并且可以调用任何类的任意方法、访问并修改成员变量值。换而言之,在能够控制反射的类名、方法名和参数的前提下,如果我们发现一处Java反射调用漏洞,则攻击者几乎可以为所欲为。(一)什么是反射反射(Reflection)是Java的特征之一。C/C++语言中不存在反射,反射的存在使运行中的Java程序能够获取自身的信息,并且可以操作类或对象的内部属性。那么什么是反射呢? 阅读详情

java中的反射机制一直被很多框架所应用,但我们很少接触,所以显得很神秘。今天我根据我做的一个实际的列子和大家一起来讨论下如何使用method来反射类的方法。

项目描述:在web工程中,数据库内有一张student表,简单对student表进行IUSD操作,

目的:只使用一个Servlet(或者action, 也不使用动态的Action)使用动态的action也可以实现此功能,但我觉得使用反射,视图层的代码简单得多,并且与业务逻辑无管,很好的进行了松耦.

代码:1 servlet 层里的

//获得页面的信息
        String sName = request.getParameter("sname");--页面中sname的值
        String sid = request.getParameter("sid");--页面中sid的值
        String sdesc = request.getParameter("sdesc");--页面中sdesc的值
        String mothod = request.getParameter("mothod"); --页面中的隐藏表单 请确保它与我们的实体逻辑类的方法名一致,
        //封装界面信息
        JstudentBean stu= new JstudentBean (); --JstudentBean 是一个简单的javabean 封装student的信息
        stu.setId(slid);
        stu.setName(sName);
        stu.setDesc(sdesc);
        //调用映射类 实现业务逻辑处理
       stuMethed meth = new stuMethed();
        meth.excute(mothod,stu);

2:映射控制类

public class stuMethed{
    stuDelegate delegate = null; --stuDelegate 它调用持久层的类来完成student的持久化操作
    public stuMethed() { --构造时注入工作对象(使用spring可以很方便的实现构造注入解耦)
        delegate = new stuDelegate ();
    }

    public Object excute(String methodfid,JstudentBean cla){
        Object obj = null;
        try {
            Method method = stuDelegate .class.getMethod(methodfid,
                    new Class[] {JstudentBean .class}); --得到与页面中的methodfid 名字相同的 方法的引用

第一个参数是 stuDelegate  中的方法名,第二个参数是 改方法中的参数

            obj = method.invoke(delegate,new Object[]{cla}); --调用  methodfid  的方法
        } catch (Exception ex) {
        }
        return obj;
    }
}

3:业务逻辑与持久层联系的类 实际工作的是这个类,我这里就简单写几个方法,你写的时候注意调用持久层的对象来实现student的持久化操作(持久化操作可以是DAO模式,或hibernate,或ejb 随便你选择)

public class stuDelegate {

 public void addstu(JstudentBean cla){}

public void deletestu(JstudentBean cla) {}

public void findstubyPk(JstudentBean cla) {}

public void updatestu(JstudentBean cla) {}

}

你在stuDelegate 写的方法名就是在jsp页面中mothod 隐藏域中可以选择的值,如果你想增加其他的方法,只需要在stuDelegate 中增加一个与页面中mothod 字段值对应的方法,其他的代码都不用更改,是不是比动态的action还方便呢,一个简单的反射控制类,使我们的servlet里的代码简介,明了。反射真的是很不错的东西,,

其实很多框架中大量的使用了反射,来简化程序的开发。这个列子是我学习spring和ejb中偶然想到的。一写还真写成功了。代码比较简陋,希望得到大家的指点。。。

东西比较乱,也不知道有没有把我想表达的意识表达清楚,有什么不懂的地方,或者你有更好的解决办法,请不要吝啬你的文字,留言告诉我。。

 

Power Automate实战:用SharePoint REST API批量处理列表数据(附JSON解析技巧) 本文深入探讨了如何利用Power Automate调用SharePoint REST API实现列表数据的批量自动化处理。文章详细解析了API的协同工作原理、高效的数据获取与筛选技巧,并重点分享了JSON数据解析的核心难点与实战解决方案,旨在帮助企业用户构建稳定可靠的数据处理流程,提升运营效率。 阅读详情

相关推荐

如何用Python+Librosa实现轴承异响检测?5步搞定工业设备故障预警

本文详细介绍了如何利用Python和Librosa库,通过5个步骤构建工业轴承异响检测与故障预警系统。从音频采集、预处理、频谱特征提取,到构建机器学习模型并进行实时监测,提供了完整的代码级解决方案。该方法能有效识别轴承早期故障特征,实现低成本、高效的设备预测性维护。

rnn9storyteller的博客 634

java反射详解实战代码

Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

一不小心的程序员 679

LabVIEW与三菱PLC通讯实战:ActiveX控件在FX5U上的应用技巧

本文深入探讨了如何利用三菱MX Component中的ActiveX控件,在LabVIEW中实现与FX5U系列PLC的高效、稳定通讯。文章从环境配置、ActiveX控件生命周期管理、数据读写性能优化及容错机制等实战角度,分享了构建工业级健壮通讯程序的核心技巧与架构设计思路。

qsc9012345的博客 890

Java反射获取Request请求中的参数并封装到指定的JavaBean

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34274029的博客 549

Seedance2.5本地部署指南:从环境配置到生产优化的完整实践

在 AI 内容生成领域,本地部署方案正逐渐成为开发者和技术团队关注的焦点。Seedance2.5 作为一款支持图像和视频生成的 AI 工具,其完全离线运行的能力解决了云端服务在数据隐私、使用成本和访问稳定性方面的痛点。对于需要处理敏感内容、频繁生成素材或希望完全掌控生成流程的技术人员来说,掌握本地部署方法具有实际价值。 本文将以 Seedance2.5 的本地部署为例,详细介绍从环境准备、依赖配置到运行验证的完整流程,同时深入分析关键参数配置、常见问题排查方法以及生产环境下的优化建议。通过实际部署过程,理解

weixin_33139275的博客 733

fluent linux运行算例,Fluent算例精选|03利用VOF和蒸发-冷凝模型

通过学习本算例您将获得?1、学会基本的VOF模型设置流程2、学会利用蒸发-冷凝模型来模拟传热沸腾目录1摘要42传热沸腾模型介绍43前处理44求解设置54.1启动Fluent54.2网格缩放64.3求解器设置74.4多相流模型设置84.5能量方程求解设置94.6紊流模型设置104.7添加材料114.8多相流中相设置124.9操作条件设置144.10边界条件设置154.10.1heatsource边界...

weixin_33278819的博客 3186

一个通过反射改变request的请求参数的方法

现在在做的项目需要用一个WebWork拦截器从request的请求参数中读取一些数据并把它们从parameterMap中remove掉。一开始这样写:Map requestParams=request.getParameterMap();......requestParams.remove("key");运行时会报错误:Cannot find message associated with

大北房 6720

Voxel Hashing技术解析:如何解决TSDF内存爆炸问题?

本文深入解析Voxel Hashing技术如何有效解决TSDF内存爆炸问题。通过动态内存分配和空间哈希函数设计,该技术将内存占用降低96.6%,同时保持高精度重建。文章详细介绍了GPU加速实现、现代系统演进及实践指南,为实时3D重建提供工程解决方案。

m2n3b4v5c6的博客 715

使用反射将request参数封装到javabean中

package com.kexin.utils; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import org.apache.commons.beanutils.BeanUtils; /** * 将用户提交的表单转换到bean对象中 * @author KeXin * */...

小黄鸭的博客 1666

rk3568 android 11.0 userdata 改为ext4格式

功能:解决设备在恢复出厂设置进行擦除数据的时候卡住问题。 1.修改userdata分区为ext4格式 diff --git a/device/rockchip/common/scripts/fstab_tools/fstab.in b/device/rockchip/common/scripts/fstab_tools/fstab.in index 583e75579d..036336835d 100755 --- a/device/rockchip/common/scripts/fstab_tools/

chgh1306的专栏 2578

Android实现自动输入文本效果 (附完整源码)

Android实现自动输入文本效果 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 416

Java反射实例

  Java反射经典实例 Java Reflection Cookbook Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中学习这套精彩的机制。1. 得到某个对象的属性Code highlighting produced

xuan_oscar的专栏 6629

基于Simulink的异步电机参数在线辨识与自适应控制仿真

本文基于Simulink平台,详细介绍了异步电机参数在线辨识与自适应控制系统的仿真实现。针对异步电机运行中参数时变问题,采用模型参考自适应系统(MRAS)实时辨识转子电阻和互感,并结合自适应PI控制策略动态调整控制器参数。通过搭建完整的矢量控制(FOC)仿真模型,验证了系统在稳态辨识、参数摄动和动态响应等工况下的性能:参数辨识误差<1.2%,转速跟踪误差<20rpm,动态响应时间<10ms。文章还提供了详细的Simulink建模步骤、核心代码实现及性能分析,为高级电机控制系统的设计与优化提

amy_mhd的博客 73

java反射创建实例_Java反射创建实例

Java反射创建实例package com.wkcto.chapter08.demo02;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;/*** 通过反射创建对象(创建实例)* newInstance()** @author 蛙课网**/public class Tes...

weixin_39997037的博客 271

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

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

WINCC7.3破解文件

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

java反射创建实例_java反射方式创建实例

在谈到实例的时候,很多人对这个概念还不能说出所以然。其实实例就是一个具体的对象,像我们之前学习的类、数组都可以创建实例。反射相对而言也是比较抽象的概念,所以我们是能够把它实例化的。下面简单对实例进行了解,然后分别带来无参和有参的反射实例实例化方法。1.实例说明new 一个对象是实例,可以把这个new出来的对象叫做实例,说白了就是这个new出来的“东西”,叫它对象也可以,叫它实例也可以,对象和实例在...

weixin_42415036的博客 597

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

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

Java反射实例化对象

Java 反射实例化对象 1、通过反射实例化对象 首先要获取目标类的class对象,可以通过以下三种方法 2、getConstructors和getDeclaredConstructors的区别 3、getFields和getDeclaredFields的区别

qq_45369827的博客 3951

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java反射实例_JAVA反射实例

Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中学习这套精彩的机制。1. 得到某个对象的属性public Object getProperty(Object owner, String fieldName) throwsExcept...

weixin_39722965的博客 171

java反射的原理,反射创建类实例的几种方式

java反射的原理,反射创建类实例的几种方式

xiaowangbadan0_0的博客 970

Java反射系列--通过反射实例化对象

本文用示例介绍Java通过反射来实例化对象的方法。

IT利刃出鞘的博客 7061

java 反射实例_java 反射的实例

JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.概括一下:反射就是让你可以通过名称来得到对象(类,属性,方法)的技术。例如我们可以通过类名来生成一个类的实例;知道了方法名,就可以调用这个方法;知道了属性名就可以访问这个属性的值。1、获取类对应的C...

weixin_39953481的博客 355

java反射怎么用_如何使用JAVA反射/JAVA反射实例

JAVA反射技术,在平时我们的开发中虽然很少会用到例如读取配制文件可能就用到这个技术,但在我们所使用的框架源码中是经常会用到的。1、常用举例:package com.test.instancedemo;class X{};public class GetClassDemo02{public static void main(String args[]){Class> c1 = null...

weixin_34524593的博客 399

java反射实例_Java 反射实例

packagecom.reflect.test;importjava.lang.reflect.Array;importjava.util.Properties;public classTest {public static voidmain(String[] args) {try{/*Class> superUserClass = userClass.getSuperclass();Cla...

weixin_39759989的博客 154

java反射创建实例_java反射小实例

利用反射实现对配置文件的更改达到更改方法的目的文件夹目录首先Student类中有个sleep方法pro.properties定义了参数最后是RelectTestMain。package com.reflex.test;import java.io.IOException;import java.io.InputStream;import java.lang.reflect.InvocationTa...

weixin_39884872的博客 347

反射 java 例子 get_Java反射实例

Java反射(Reflection)就是在运行 Java 程序时,可以加载、探知、使用编译期间完全未知的类。也就是说,Java 程序可以加载一个运行时才得知类名的类,获得类的完整构造方法,并实例化出对象,给对象属性设定值或者调用对象的方法。本文我们就来通过Java反射实例来理解Java中的反射机制。一、利用反射获取类信息的方式、获取当前类的所有方法和获取当前类及其父类的所有方法实体类package...

weixin_35315019的博客 334

Java反射之实例构造

网上很多写反射的,但是对于内部类的反射涉及的非常少,尤其是这种私有的内部类。也许有人认为私有内部类是不能被外部实例化的,但是强大的反射功能突破了Java本身的一些规则。

helloworlddm的博客 738

java进阶之:反射获得某个实例对象

背景 当数据库里某个model实例,含有嵌套结果的复杂字段时,需要精确查找,(不仅仅通过某些字段查找时)需要匹配到每个字段的key-value。通过反射方式可以获得某个model实例的全部属性及值。 java代码 import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.dat

luxiaopengyou的博客 1586
上一篇: oracle 中的伪列
下一篇: validator框架简单使用
touch_92java
博客等级 码龄19年 4粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值