Servlet和BeanUtils框架的联合使用(5)

来源:互联网 发布:淘宝客推广怎么做 编辑:程序博客网 时间:2024/05/07 20:00
package cn.wwh.www.web.request;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.org.apache.commons.beanutils.BeanUtils;

/**
 *类的作用:利用BeanUtils来将数据存储到实例对象中(这个是一个关键技术)
 * 
 *在浏览器中输入:http://localhost:8080/Summer_Exercise7/RequestBeanUtils?name=wwh&age=
 * 22&salary=12000.23&hobbies=football&hobbies=run
 * 
 * @author 一叶扁舟
 *@version 1.0
 *@创建时间: 2014-7-30 下午05:39:32
 */
public class RequestBeanUtils extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


BeanUtils bean = new BeanUtils();
User user = new User();


// 获取客户端输入的所有的参数
Enumeration name = request.getParameterNames();
while (name.hasMoreElements()) {
// 逐一的取出key值
String key = (String) name.nextElement();
// 获取key对应的values值
String[] values = request.getParameterValues(key);

try {
// 将数据逐一的放入到User对象中
bean.setProperty(user, key, values);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


// 将数据写回到服务器中
response.getOutputStream().write(
("<br/>" + user.toString() + "<br/>").getBytes());
System.out.println("" + user.toString());

}

}

User.java:

public class User {
// 名字
private String name;
// 年龄
private int age;
// 薪水
private double salary;
private String[] hobbies;

}


浏览器的地址栏中输入:

http://localhost:8080/Summer_Exercise7/RequestBeanUtils?name=wwh&age= 22&salary=12000.23&hobbies=football&hobbies=run

浏览器输出的结果:

User age=22, hobbies=[football, run], name=wwh, salary=12000.23

这个代码理解上没有任何的难度,但是红色的地方是关键的技术,利用的BeanUtils狂降将所有的数据一次性的设置到User对象中(这种做法非常好)




0 0