BeanUtils工具类简化数据封装

文章目录

    • 一、基本概念
    • 二、使用方法

一、基本概念

用于封装JavaBean(标准的Java类)的,功能是用来封装数据

要求:

1)类必须被public修饰
(2)必须提供空参的构造器
(3)成员变量必须使用private修饰
(4)提供公共setter和getter方法

类似:
BeanUtils工具类简化数据封装_第1张图片

二、使用方法

1setProperty():通过属性操作
(2getProperty():通过属性操作
(3populate(Object obj , Map map):将map集合的键值对信息,封装到对应的 JavaBean 对象中
成员变量:
属性:setter和getter方法截取后的产物
例如:getUsername() --> Username--> username

实际上 JavaBean 操作的是属性而不是成员变量

  1. 操纵 setProperty() 和 getProperty()
    BeanUtils工具类简化数据封装_第2张图片
    通过成员变量操作:
    BeanUtils工具类简化数据封装_第3张图片
    通过属性操纵:
public class BeanUtilsTest {
     

    @Test
    public void test(){
     

        User user = new User();
        try {
     
            BeanUtils.setProperty(user,"test","male");
            System.out.println(user);

            String gender = BeanUtils.getProperty(user, "test");
            System.out.println(gender);
        } catch (IllegalAccessException e) {
     
            e.printStackTrace();
        } catch (InvocationTargetException e) {
     
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
     
            e.printStackTrace();
        }
    }
}

BeanUtils工具类简化数据封装_第4张图片
2. 操纵 populate 方法
这里有两个 BeanUtils,选择框起来的这个

BeanUtils工具类简化数据封装_第5张图片

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
     


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     
        //1.设置编码
        req.setCharacterEncoding("utf-8");
        //2.获取所有请求参数
        Map<String, String[]> map = req.getParameterMap();
        //3.创建User对象
        User loginUser = new User();
        //3.2使用BeanUtils封装
        try {
     
            BeanUtils.populate(loginUser,map);
        } catch (IllegalAccessException e) {
     
            e.printStackTrace();
        } catch (InvocationTargetException e) {
     
            e.printStackTrace();
        }
        //4.调用UserDao的login方法
        UserDao dao = new UserDao();
        User user = dao.login(loginUser);

        //5.判断user
        if(user == null){
     
            //登录失败
            req.getRequestDispatcher("/failServlet").forward(req,resp);
        }else{
     
            //登录成功
            //存储数据
            req.setAttribute("user",user);
            //转发
            req.getRequestDispatcher("/successServlet").forward(req,resp);
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     
        this.doGet(req,resp);
    }
}

你可能感兴趣的:(Request,和,Response,学习,封装,java)