登陆案例BeanUtils的基本使用和介绍

BeanUtils工具类,简化数据封装

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

LoginServlet:

复制代码
@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(); //使用beanutils封装 try { BeanUtils.populate(loginuser,map); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); }
//4、调用UserDao的login方法 UserDao userDao = new UserDao(); User user = userDao.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对象中

复制代码
public class BeanutilsTest {
    @Test
    public void test(){
        User user = new User();
        try {
            BeanUtils.setProperty(user,"username","张三");
            String username = BeanUtils.getProperty(user, "username");
            System.out.println(username);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
        System.out.println(user);
        
    }
}
复制代码

 

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