浏览器请求界面
![在这里插入图片描述](https://img-blog.csdnimg.cn/642fc985f73a40ae9db57443cc9a6496.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ3NjQ5NTg1,size_16,color_FFFFFF,t_70)
1.获取参数手动封装数据
@WebServlet("/ServletDemo4")
public class ServletDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
String password = req.getParameter("password");
String[] hobby = req.getParameterValues("hobby");
Student stu = new Student(name, password, hobby);
System.out.println(stu);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
打印结果:
----------------------------------------------------------
Student{name='zhangsan', age='123', hobby=[study, game, book]}
2.通过反射封装数据
@WebServlet("/ServletDemo5")
public class ServletDemo5 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Map<String, String[]> parameterMap = req.getParameterMap();
Set<String> keys = parameterMap.keySet();
Student stu = new Student();
for (String key : keys) {
String[] value = parameterMap.get(key);
try {
PropertyDescriptor pd = new PropertyDescriptor(key, stu.getClass());
Method method = pd.getWriteMethod();
if(value.length>1){
method.invoke(stu,(Object)value);
}else {
method.invoke(stu,value);
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(stu);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
打印结果:
----------------------------------------------------------
Student{name='zhangsan', age='123', hobby=[study, game, book]}
3.通过工具类(包)封装数据【常用】
@WebServlet("/ServletDemo6")
public class ServletDemo6 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Map<String, String[]> parameterMap = req.getParameterMap();
Student stu = new Student();
try {
BeanUtils.populate(stu,parameterMap);
System.out.println(stu);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(stu);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
Student{name='zhangsan', age='123', hobby=[study, game, book]}
BeanUtils工具类资源