`

【转】 JavaBean的自省机制

阅读更多
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。对于自省机制,举例如下:

HTML中内容(注意红色部分):

<form name="form1" method="post" action="chkuser.jsp" onSubmit="return check()">
     登录帐号:
     <input type="text" id="userName" name="userName"><br>
     登录密码:
     <input type="password" id="userPWD" name="userPWD"><br>
     <input type="submit" name="submit" value="提交">
     <input type="reset" name="reset" value="重填">
    </form>   

JSP中内容:
在jsp中使用javabean要使用<jsp:useBean>标签,其id属性可以随意设置为jsp:setProperty和 jsp:getProperty中的name属性,用此id值可以取得相应的属性值(
useBean中的id必须和setProperty中的name一致),scope属性是这个javabean的使用范围,在class属性中定 义javabean的类。
<jsp:useBean id="user" class="test.UserBean" scope="session"></jsp:useBean>
<jsp:setProperty name="user" property="*" />

自省机制:服务器接到请求后,使用<jsp:setProperty name="user" property="*"/>这样方式,可以将请求中参数值赋给javabean user中同名属性。
jsp:setProperty标签可以自动进行类型转换,但是如果使用value="& lt;%=request.getParameter(\"abc\") %>"这样的模式来设置javabean值的时候,<%=request.getParameter(\"abc\") %>返回的一定是String类型,也就是说它的类型转换发生在取出value值之前,不是在向javabean属性赋值的时候再转的。
还有一点,当在请求参数中,没有和javabean属性同名的参数的时候,将不会有任操作,并不会把取得的null值赋给javabean的属性。
JavaBean中内容(注意红色部分):

String userName = null;
String userPWD = null;

可以看到,HTML表单中的参数值会自动赋给JavaBean中的同名属性,而且由于在JSP中设置了user属性,在JSP中出现的以下语句:

String userName = user.getUserName();

String userPWD = user.getUserPWD();

其中的userName和userPWD也可以间接通过JavaBean的自省机制赋值
分享到:
评论

相关推荐

    JavaBean和JSP中的标准动作

    5. **属性的自省机制**:Java 提供了 introspection API,允许程序在运行时检查类的属性、方法和构造器,使得其他组件可以动态地了解和操作 JavaBean。 在 JSP 中,JavaBean 可以通过以下几种标准动作来使用: 1. ...

    JavaBean介绍

    - **自省机制**:JavaBean利用Java反射机制来自动发现其属性和方法,简化了组件之间的交互。 #### 七、总结 JavaBean作为一种重要的Java组件技术,在软件开发领域有着广泛的应用。它不仅简化了代码的编写和维护,...

    JavaBean技术PPT学习教案.pptx

    - **内省(Introspection)**:允许组件自省其属性和操作,方便其他组件发现和使用。 - **通信(Communication)**:组件间可以通过事件进行交互。 - **持久性(Persistence)**:保存组件的状态,以便恢复。 - **属性...

    spring框架学习,由浅入深

    反射机制允许程序在运行时动态地获取类信息并创建或操作对象,而自省机制则用于检查JavaBean的属性和方法。IoC使得开发者可以专注于业务逻辑,而无需关心对象的创建和依赖关系,提高了代码的可测试性和可维护性。 ...

    Spring简介和入门

    自省机制允许JavaBean根据自身属性进行自我描述,从而让Spring容器能够理解其配置并管理其生命周期。 AOP则是为了解决代码中横切关注点(如日志、事务管理)的分散问题,Spring通过代理模式实现AOP,允许开发者定义...

    Java开发常用jar包

    1.commons-beanutils.jar:提供对Java反射和自省API的包装,主要提供了对于 JavaBean进行各种操作。提供了对于JavaBean进行各种操作,克隆对象,属性等等. 2.commons-digester.jar:方便地将XML文档所定义的元素转化为...

    spring 详细介绍 api

    通过Java的反射和JavaBean的自省机制,Spring可以在运行时动态地创建和配置对象。IoC使得开发者可以将关注点从对象的创建和管理转移到业务逻辑上,提高了代码的可测试性和可维护性。例如,通过XML配置文件或者注解,...

    java常用扩展工具jar包详解

    `commons-beanutils.jar`库简化了JavaBean的使用,提供了对Java反射和自省API的封装,主要功能有: - 对JavaBean的属性进行便捷的读写操作,无需手动编写getter和setter方法调用。 - 能够将数据结构(如Map)转换为...

    Java初学必看教程

    8. **多线程编程**:Java提供了内置的多线程支持,书中会介绍Thread类、Runnable接口,以及同步机制如synchronized关键字、wait()和notify()方法,帮助读者理解并发编程的基本原理。 9. **网络编程**:Java的Socket...

    jmx第一个学习例子

    MBean的设计原则利用了反射和自省机制,使得外部实体能够动态地调用方法和获取属性值。 #### MBean Server MBean Server是JMX架构中的管理中心,负责托管和管理所有MBean实例。它提供了注册和查找MBean的机制,...

    java解析json方法总结

    它支持JavaBean、集合、Map、日期和枚举类型,同时支持泛型和自省机制。FastJson不依赖于任何第三方库,可直接在Java SE 5.0及以上版本中运行,而且兼容Android开发环境。FastJson遵循Apache2.0开源协议,其源代码...

    JSP向后台传递参数的四种方式总结

    JavaBean是一种可重复使用的Java组件,通过Java中的自省机制,可以将表单数据自动填充到JavaBean对象中。 - 首先需要定义一个JavaBean类,该类包含与表单字段对应的属性和相应的getter和setter方法。 - 在JSP页面中...

    commons包介绍1

    1. **BeanUtils**: 这个组件提供对Java反射和自省API的封装,使得JavaBean的属性操作更加方便,允许开发者以简洁的方式访问和修改对象属性。 2. **Betwixt**: Betwixt 提供了将JavaBean映射到XML文档和反向映射的...

    apache-commons源码及jar文件

    Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供实现组织复杂的处理流程的“责任链模式”. CLI CLI 提供针对命令行...

    学生注册系统

    - 使用自省的方式将表单中的各项输入值封装到`Student`对象中。 - 调用`Student`对象的`judgeExist`方法检查登录名是否已存在,如果存在则提示用户重新输入新的登录名。 - 如果登录名可用,则调用`Student`对象的...

Global site tag (gtag.js) - Google Analytics