JavaWeb BeanUtils的使用
2021/11/22 17:12:09
本文主要是介绍JavaWeb BeanUtils的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
为什么需要BeanUtils?
项目存储数据时候的选择
通常情况下,我们会选择使用JavaBean来存储内存中的数据,除非是非常简单的数据没有必要多编写一个JavaBean类的时候才会选择使用Map进行存储。
使用Map存储数据的优缺点
优点:
- 灵活性强于javabean,易扩展,耦合度低
- 写起来简单,代码量少
缺点:
- javabean在数据输入编译期就会对一些数据类型进行校验,如果出错会直接提示。而map的数据类型则需要到代码运行阶段,才会进行处理判断
- map的参数名称如果写错,也是需要到代码运行阶段,才能判断出是不是字段写错,不利于调试等。相对而言javabean会在编译期间发现错误
- map的参数值如果多传、乱传,也是需要到代码运行阶段,才能判断出是不是字段写错,不利于调试等。相对而言javabean会在编译期间发现错误
- 仅仅看方法签名,你不清楚Map中所拥有的参数个数、类型、每个参数代表的含义。 后期人员去维护,例如需要加一个参数等,如果项目层次较多,就需要把每一层的代码都了解清楚才能知道传递了哪些参数
使用JavaBean存储数据的优缺点
优点:
- 面向对象的良好诠释
- 数据结构清晰,便于团队开发 & 后期维护
- 代码足够健壮,可以排除掉编译期错误
缺点:
代码量增多,需要花时间去封装JavaBean类
BeanUtils概述
BeanUtils的简介
BeanUtils是由Apache公司所开发的工具包,目的是为了简化数据封装,方便Java程序员对JavaBean类进行简便的操作。
使用BeanUtils将Map中的数据封装到JavaBean对象中
BeanUtils的作用
将Map中的数据填充到JavaBean对象中
API方法介绍
BeanUtils.populate(JavaBean对象,map对象);
使用步骤
- 导入对应的jar包
- 调用BeanUtils类的populate方法,传入对应的参数就可以了
Index.html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>首页</title> </head> <body> <form action="/class12_beanUtils/beanUtilsDemo" method="post"> 用户名<input type="text" name="username"/><br/> 密码<input type="password" name="password"/><br/> 邮箱<input type="text" name="email"/><br/> 手机号<input type="text" name="phone"/><br/> 地址<input type="text" name="address"/><br/> 兴趣爱好 <input type="checkbox" name="hobby" value="basketball"/>篮球 <input type="checkbox" name="hobby" value="football"/>足球 <input type="checkbox" name="hobby" value="yumaoball"/>羽毛球 <input type="checkbox" name="hobby" value="pingpangball"/>乒乓球<br/> <button>提交</button> </form> </body> </html>
JavaBean代码
import java.util.Arrays; public class User { private String username; private String password; private String email; private String phone; private String address; private String[] hobby; public User() { } @Override public String toString() { return "User{" + "username='" + username + '\'' + ", password='" + password + '\'' + ", email='" + email + '\'' + ", phone='" + phone + '\'' + ", address='" + address + '\'' + ", hobby=" + Arrays.toString(hobby) + '}'; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } public User(String username, String password, String email, String phone, String address, String[] hobby) { this.username = username; this.password = password; this.email = email; this.phone = phone; this.address = address; this.hobby = hobby; } }
Servlet代码
package com.drimwai.servlet; import com.drimwai.servlet.bean.User; import org.apache.commons.beanutils.BeanUtils; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; public class BeanUtilsDemo extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //一次性获取所有的请求参数,并且将所有的请求参数封装到Map中,请求参数名就是map的key,请求参数值就是map的value Map<String, String[]> parameterMap = request.getParame terMap(); //将请求参数封装到User对象中: 将parameterMap中的数据存到User对象中 User user = new User(); //使用BeanUtils将Map中的数据存储到JavaBean对象中 try { //在使用BeanUtils将Map中的数据存储到JavaBean的时候,会自动进行一些基本的类型转换 //要求:JavaBean中的属性名和Map中的key要对应,才能封装数据,如果Map中的key和JavaBean的属性名不对应那么这个属性就无法封装 BeanUtils.populate(user,parameterMap); } catch (Exception e) { e.printStackTrace(); } System.out.println(user); } }
创作不易!欢迎点赞/评论!!
这篇关于JavaWeb BeanUtils的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南