JSP九大内置对象&javabean&内省

JSP九大内置对象

1.什么是JSP九大内置对象

在JSP中无需创建就可以使用的9个对象,它们是:
1. out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;
2. config(ServletConfig):对应“真身”中的ServletConfig;
3. page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象;
4. pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;
5. exception(Throwable):只有在错误页面中可以使用这个对象;
6. request(HttpServletRequest):即HttpServletRequest类的对象;
7. response(HttpServletResponse):即HttpServletResponse类的对象;
8. application(ServletContext):即ServletContext类的对象;
9. session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@page session=”false”%>,说明这个页面不能使用session。

在这9个对象中有很多是极少会被使用的,例如:config、page、exception基本不会使用。
在这9个对象中有两个对象不是每个JSP页面都可以使用的:exception、session。

3.JavaBean

JavaBean是一种规范,也就是对类的要求。它要求Java类的成员变量提供getter/setter方法,这样的成员变量被称之为JavaBean属性。
JavaBean还要求类必须提供仅有的无参构造器
它是用来封装实体的

4.内省

内省的目标是得到JavaBean属性的读、写方法的反射对象,通过反射对JavaBean属性进行操作的一组API。例如User类有名为username的JavaBean属性,通过两个Method对象(一个是getUsenrmae(),一个是setUsername())来操作User对象。

5.把map封装到javabean

Map<String,String> map = new HashMap<String,String>();
        map.put("username", "admin");
        map.put("password", "123456");

        BeanInfo beanInfo = Introspector.getBeanInfo(User.class);//获取User类型的BeanInfo实例

        PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();//获取User类型的所有JavaBean属性的属性描述符对象

        User user = new User();//创建User实例
        for(PropertyDescriptor pd : pds)//循环遍历每个属性描述符对象 
        {
            String name = pd.getName();//获取JavaBean属性名
            String value = map.get(name);//获取Map中对应属性的值
            if(value != null)//如果在Map中存在这个属性的值
             {
                Method writeMethod = pd.getWriteMethod();//获取该属性的写方法
                writeMethod.invoke(user, value);//把Map中的值写入到user对象的对应属性中
            }
        }

        System.out.println(user);

还可以使用commons-beanutils来进行封装

使用beanutils需要的jar包:
commons-beanutils.jar;
commons-logging.jar;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值