一、什么是JavaBean

  一个遵循一定规范的普通的Java类

  百度的JavaBean规范:
    (1)JavaBean 类必须是一个公共类,并将其访问属性设置为 public ,
    如: public class user{......}
    (2)JavaBean 类必须有一个空的构造函数
    类中必须有一个不带参数的公用构造器
    (3)一个javaBean类不应有公共实例变量,类变量都为private
    如: private int id;
    (4)属性应该通过一组存取方法(getXxx 和 setXxx)来访问,
    一般是IDE(Eclipse、JBuilder) 为属性生成getter/setter 方法

    自己的理解:

       必须要为成员提供set/get方法(两者提供一种也是可以的,称为只读或者只写属性,例如提供一些计算的方法,结果只能读取,不能修改)
      必须要有默认的无参构造器。
      只有set/get方法,则属性名称就是set/get方法去除set/get后首字母小写了!
      boolean类型读方法可以是is开头或者get开头

      (测试的时候如有必要,可重写toString()方法)

二、为什么要有JavaBean

  为了和 jsp 页面传递数据简化交互过程而产生的,(封装数据、传递数据)

三、如何使用JavaBean

  三个JSP标签:

    <jsp:userBean>:使用范例:

        <jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>

          其中id对JavaBean实例对象名称,class为类完整类名,scope默认值为page,在jsp页面中使用此标签后即可直接使用此对象

    <jsp:setProperty>:例如两种格式,对属性的操作

        <jsp:setProperty name="beanName" property="propertyName" value="string字符串"/>

          <jsp:setProperty name="beanName" property="propertyName" value="<%= expression %>" />

        其中第一种只能用于字符串类型,复合类型应使用第二种,如:value="<%=new Date()%>"

    <jsp:getProperty>

        <jsp:getProperty name="beanInstanceName" property="PropertyName" />

四、工具类BeanUtils的使用

  此工具主要是为了方便的操作JavaBean

  一般的用法主要体现在:

           1)beanUtils 可以便于对javaBean的属性进行赋值。

        2)beanUtils 可以便于对javaBean的对象进行赋值。

        3)beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。

  这是Apache的开源项目,使用的前提是导包

      commons-beanutils-1.9.2.jar

      commons-logging.jar (依赖包)

    常用方法:

  • BeanUtils.setProperty(bean, name, value);其中bean是指你将要设置的对象,name指的是将要设置的属性(写成”属性名”),value(从配置文件中读取到到的字符串值)
  • BeanUtils。copyProperties(bean, name, value),和上面的方法是完全一样的。使用哪个都可以
  • ConvertUtils.register(Converter converter , ..),当需要将String数据转换成引用数据类型(自定义数据类型时),需要使用此方法实现转换。
  • BeanUtils.populate(bean,Map),其中Map中的key必须与目标对象中的属性名相同,否则不能实现拷贝。
  • BeanUtils.copyProperties(newObject,oldObject),实现对象的拷贝

介绍一个小小的封装:将map数据封装到bean中:

  

    public static <T> T toBean(Map map, Class<T> clazz) {
try {
//创建指定类型的JavaBean
T bean = clazz.newInstance();
//使用工具类进行封装
BeanUtils.populate(bean, map);
//把bean返回
return bean;
}catch(Exception e) {
throw new RuntimeException(e);
}
}

简单的应用:

//进行表单数据的封装操作等,调用service的login()方法
User form = CommonUtils.toBean(request.getParameterMap(), User.class);

JavaWeb基础—JavaBean的更多相关文章

  1. javaweb学习--javabean

    阅读电子书<Java Web从入门到精通>密码:461c,学习JavaWeb基础知识 JavaBean类似于.net的实体类,但是规则上稍复杂一些,能实现的功能也多一些 一.介绍 1.规则 ...

  2. JavaWeb基础知识总结

    JavaWeb基础知识总结.   1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供 ...

  3. JavaWeb基础: ServletContext

    基本概念 Web容器在启动时,会为每个Web应用程序都创建一个对应的ServletContext对象,它代表当前Web应用. ServletContext(javax.servlet.http.Ser ...

  4. JavaWeb基础: 学习大纲

    JavaWeb基础: Web应用和Web服务器 JavaWeb基础: Tomcat JavaWeb基础:HTTP协议和基于Restful的架构 JavaWeb基础: Web工程配置文件 JavaWeb ...

  5. 超详细的Java面试题总结(四 )之JavaWeb基础知识总结

    系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...

  6. 关于java基础、多线程、JavaWeb基础、数据库、SSM、Springboot技术汇总

    作者 : Stanley 罗昊 本人自行总结,纯手打,有疑问请在评论区留言 [转载请注明出处和署名,谢谢!] 一.java基础 1.多态有哪些体现形式? 重写.重载 2. Overriding的是什么 ...

  7. javaweb基础(22)_Servlet+JSP+JavaBean实战登陆

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  8. [Java面试三]JavaWeb基础知识总结.

    1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...

  9. [JavaWeb基础] 008.Spring初步配置

    框架简介: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Develop ...

随机推荐

  1. 11 tensorflow在tf.while_loop循环(非一般循环)中使用操纵变量该怎么做

    代码(操纵全局变量) xiaojie=1 i=tf.constant(0,dtype=tf.int32) batch_len=tf.constant(10,dtype=tf.int32) loop_c ...

  2. 团队项目个人进展——Day03

    一.昨天工作总结 冲刺第三天,昨天忙着整理数据结构相关知识,在团队项目上只是花了少部分时间来对地图的样式布局进行调整 二.遇到的问题 无 三.今日工作规划 继续昨天的规划,研究地图定位代码,并通过编写 ...

  3. top,job,user,file,alias

    1.系统进程 2.系统资源管理 3.作业管理 4.用户管理 5.文件权限 6.别名定义       一.系统进程 1.进程的定义 进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了 ...

  4. 记开发个人图书收藏清单小程序开发(十)DB开发——新增图书信息

    昨晚完成了Web端新增图书信息的功能,现在就差DB的具体实现了. 因为我把Book相关的信息拆分的比较多,所以更新有点小麻烦. 首先,我需要创建一个Book Type的Matter: 然后,将图片路径 ...

  5. 转:iBatis简单入门教程

    iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足 ...

  6. 转:线程Thread (1)

    引言 1.理解多线程 2. 线程异步与线程同步 3.创建多线程应用程序 3.1通过System.Threading命名空间的类构建 3.1.1异步调用线程 3.1.2并发问题 3.1.3线程同步 3. ...

  7. 用字典给Model赋值并支持map键值替换

    用字典给Model赋值并支持map键值替换 这个是昨天教程的升级版本,支持键值的map替换. 源码如下: NSObject+Properties.h 与 NSObject+Properties.m / ...

  8. 铁乐学python_Day40_进程池

    进程之间的数据共享 基于消息传递的并发编程是大势所趋, 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据. 这样极大地减少了对使用锁和其他同步手段的需求,还可以扩展到分 ...

  9. struts2.5动态方法绑定问题

    <global-allowed-methods>regex:.*</global-allowed-methods> <?xml version="1.0&quo ...

  10. spring-boot-jpa 自定义查询工具类

    1.pom文件中添加如下配置 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...