登陆案例_BeanUtils基本使用自己BeanUtils介绍

登陆案例_BeanUtils基本使用自己BeanUtils介绍

BeanUtils工具类,简化数据封装:

  导入jar包:commons-beanutils-1.8.0.jar

LoginServlet:

复制代码
package com.itcast.web;

import com.itcast.dao.UserDao;
import com.itcast.domain.User;
import org.apache.commons.beanutils.BeanUtils;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.设置编码
        /*req.setCharacterEncoding("UTF-8");
        //2.获取请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        //3.封装user对象
        User loginUser = new User();
        loginUser.setUsername(username);
        loginUser.setPassword(password);
        */
        //2.获取所有请求参数
        Map<String, String[]> map = req.getParameterMap();
        //3.创建user对象
        User loginUser = new User();
        //3.2使用beanUtils封装
        try {
            BeanUtils.populate(loginUser, map);
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        } catch (InvocationTargetException e) {
            throw new RuntimeException(e);
        }


        //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);
    }
}
复制代码

 

用于封装JavaBean的

  1、JavaBean:标准的Java类

    1、要求:

      1、类必须被public修饰

      2、必须提供空参的构造器

      3、成员变量必须使用private修饰

      4、提供公共setter和getter方法

    2、功能:封装数据

  2、概念:

    成员变量:

    属性:setter和getter方法截取后的产物

      例如:getUsername() --> Username  --> username

  3、方法:

    1、setProperty();:设置属性值

    2、getProperty();:获取属性值

    3、populate(Object obj,Map map):将map集合的键值对信息,封装到对应的JavaBean对象中

复制代码
package com.itcast.test;

import com.itcast.domain.User;
import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;

import java.lang.reflect.InvocationTargetException;

public class BeanUtilsTest {

    @Test
    public void test(){
        User user = new User();
        try {
            BeanUtils.setProperty(user, "hehe", "zhangsan");
            System.out.println(user);

            String hehe = BeanUtils.getProperty(user, "hehe");
            System.out.println(hehe);
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        } catch (InvocationTargetException e) {
            throw new RuntimeException(e);
        } catch (NoSuchMethodException e) {
            throw new RuntimeException(e);
        }
    }
}
复制代码

 

posted @   monkey大佬  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示