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