登陆案例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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix