栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb BeanUtils的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb BeanUtils的使用

为什么需要BeanUtils? 项目存储数据时候的选择

通常情况下,我们会选择使用JavaBean来存储内存中的数据,除非是非常简单的数据没有必要多编写一个JavaBean类的时候才会选择使用Map进行存储。

使用Map存储数据的优缺点

优点:

  1. 灵活性强于javabean,易扩展,耦合度低
  2. 写起来简单,代码量少

缺点:

  1. javabean在数据输入编译期就会对一些数据类型进行校验,如果出错会直接提示。而map的数据类型则需要到代码运行阶段,才会进行处理判断
  2. map的参数名称如果写错,也是需要到代码运行阶段,才能判断出是不是字段写错,不利于调试等。相对而言javabean会在编译期间发现错误
  3. map的参数值如果多传、乱传,也是需要到代码运行阶段,才能判断出是不是字段写错,不利于调试等。相对而言javabean会在编译期间发现错误
  4. 仅仅看方法签名,你不清楚Map中所拥有的参数个数、类型、每个参数代表的含义。 后期人员去维护,例如需要加一个参数等,如果项目层次较多,就需要把每一层的代码都了解清楚才能知道传递了哪些参数
使用JavaBean存储数据的优缺点

优点:

  1. 面向对象的良好诠释
  2. 数据结构清晰,便于团队开发 & 后期维护
  3. 代码足够健壮,可以排除掉编译期错误

缺点:

代码量增多,需要花时间去封装JavaBean类


BeanUtils概述 BeanUtils的简介

BeanUtils是由Apache公司所开发的工具包,目的是为了简化数据封装,方便Java程序员对JavaBean类进行简便的操作。

使用BeanUtils将Map中的数据封装到JavaBean对象中

BeanUtils的作用

将Map中的数据填充到JavaBean对象中

API方法介绍

BeanUtils.populate(JavaBean对象,map对象);

使用步骤

  1. 导入对应的jar包
  2. 调用BeanUtils类的populate方法,传入对应的参数就可以了

Index.html代码




    
    首页


用户名
密码
邮箱
手机号
地址
兴趣爱好 篮球 足球 羽毛球 乒乓球

JavaBean代码

import java.util.Arrays;

public class User {
    private String username;
    private String password;
    private String email;
    private String phone;
    private String address;
    private String[] hobby;

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + ''' +
                ", password='" + password + ''' +
                ", email='" + email + ''' +
                ", phone='" + phone + ''' +
                ", address='" + address + ''' +
                ", hobby=" + Arrays.toString(hobby) +
                '}';
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String[] getHobby() {
        return hobby;
    }

    public void setHobby(String[] hobby) {
        this.hobby = hobby;
    }

    public User(String username, String password, String email, String phone, String address, String[] hobby) {
        this.username = username;
        this.password = password;
        this.email = email;
        this.phone = phone;
        this.address = address;
        this.hobby = hobby;
    }
}

Servlet代码

package com.carson.servlet;

import com.carson.servlet.bean.User;
import org.apache.commons.beanutils.BeanUtils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

public class BeanUtilsDemo extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //一次性获取所有的请求参数,并且将所有的请求参数封装到Map中,请求参数名就是map的key,请求参数值就是map的value
        Map parameterMap = request.getParameterMap();
          

        //将请求参数封装到User对象中: 将parameterMap中的数据存到User对象中
        User user = new User();
        //使用BeanUtils将Map中的数据存储到JavaBean对象中
        try {
            //在使用BeanUtils将Map中的数据存储到JavaBean的时候,会自动进行一些基本的类型转换
            //要求:JavaBean中的属性名和Map中的key要对应,才能封装数据,如果Map中的key和JavaBean的属性名不对应那么这个属性就无法封装
            BeanUtils.populate(user,parameterMap);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(user);
    }
}

创作不易!欢迎点赞/评论!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583228.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号