封装javabean的三种方式

1.JavaBean是什么

JavaBean是一个遵循特定写法的Java类。JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。

它通常具有如下特点:

  • 这个Java类必须具有一个无参的构造函数
  • 属性必须私有化。
  • 私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。

JavaBean范例:

public class User {
     //------------------User类封装的私有属性---------------------------------------
	private int id;
	private String username;
	private String password;
	private String email;
	private String gender;
	private int flag;
	private int role;
	private String code;
	public User(int id, String username, String password, String email, String gender, int flag, int role,
			String code) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
		this.email = email;
		this.gender = gender;
		this.flag = flag;
		this.role = role;
		this.code = code;
	}
	 //---------------------------------------------------------     
     //------------------Person类的无参数构造方法---------------------------------------
     /**
      * 无参数构造方法
      */
	public User () {
	}
 //------------------User类对外提供的用于访问私有属性的public方法---------------------------------------
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	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 getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public int getFlag() {
		return flag;
	}

	public void setFlag(int flag) {
		this.flag = flag;
	}

	public int getRole() {
		return role;
	}

	public void setRole(int role) {
		this.role = role;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
 //------------------重写toString方法---------------------------------------
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + ", email=" + email + ", gender="
				+ gender + ", flag=" + flag + ", role=" + role + ", code=" + code + "]";
	}
}

2.JavaBean的封装方式

范例一:
		//借用getParameter()方法获取浏览器传来的数据
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		String repwd=request.getParameter("repwd");
		String email=request.getParameter("email");
		String gender=request.getParameter("gender");
		
		PrintWriter out = response.getWriter();
		
		//实例化User对象
		User user=new User();
		
		//借用set方法将数据注入JavaBean
		user.setUsername(username);
		user.setPassword(password);
		user.setCode(ActiveCodeUtils.createActiveCode());
		user.setEmail(email);
		user.setFlag(0);
        user.setGender(gender);
        user.setRole(1);

        //打印user对象查看JavaBean封装结果
        System.out.println(user);  
范例二(此方法实现起来较难,只写一个大概的想法):
	    Map parameterMap=request.getParameterMap();
	    for (Map.Entry entry: parameterMap.entrySet()) {
			System.out.println(entry.getKey());
			//可以获取浏览器过来的值的name,例如password,然后将password和set字符串拼接,形成setPassword()方法
			System.out.println(entry.getValue().length);
		}
范例三(需要导如下三个jar包):

封装javabean的三种方式_第1张图片

        //实例化User对象
		User user=new User();
		try {
		    //通过使用beanutils的jar包内的方法,直接将user实体和request.getParameterMap()中的数据传入进去
			BeanUtils.populate(user,request.getParameterMap());
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		System.out.println(user.toString());

你可能感兴趣的:(javaweb)