Day04JavaWeb【Request】 BeanUtils

apache BeanUtils工具类

  • (1)BeanUtils是什么?
    BeanUtils 是 Apache commons组件的成员之一
  • (2)有什么用?
    主要用于简化JavaBean封装数据的操作
    使用第三方工具,需要导入jar包:
    在这里插入图片描述

BeanUtils工具类-populate分析

使用步骤

  • 1 添加jar到web/WEB-INF/lib目录
    在这里插入图片描述

  • 2 让idea识别
    选中所有jar 右键菜单 =》add As Lib…

  • 3 调用populate()方法

@WebServlet("/demo05")
public class Demo05GetServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //没有使用BeanUtils ,写得很麻烦 ,一个一个地获取,再一个一个的设置
        User user = new User();
        //1.获取所有的参数
        Map<String, String[]> map = request.getParameterMap();
        //2.赋值给一个User对象
        /*
        String[] usernames = map.get("username");
        user.setUsername(usernames[0]);

        String[] passwords = map.get("password");
        user.setPassword(passwords[0]);

        String[] hobbies = map.get("hobby");
        user.setHobby(hobbies);

        String[] sexes = map.get("sex");
        user.setSex(sexes[0]);

        System.out.println(user); */
        try {
            BeanUtils.populate(user,map);//参1,新建的javabean对象,没有值 参2 有key-value的map
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(user);
    }
}

src\com\wzx\beans\User.java

//必须做到让参数的参数名与类的成员变量名一致
public class User {
    private String username;
    private String password;
    private String[] hobby;
    private String sex;

在这里插入图片描述

  • (3)底层原理
    (1) 获取key生成set方法
    username -->setUsername
    (2) 调用同名set方法给成员变量赋值(反射)
    obj.setUsername(map.get(key))

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/108515029