浏览器请求界面

1.获取参数手动封装数据
@WebServlet("/ServletDemo4")
public class ServletDemo4 extends HttpServlet {@Overrideprotected 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);}@Overrideprotected 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 {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.获取所有参数的信息Map<String, String[]> parameterMap = req.getParameterMap();Set<String> keys = parameterMap.keySet();//2.将数据封装到学生对象中Student stu = new Student();//遍历集合for (String key : keys) {String[] value = parameterMap.get(key);//获取学生对象的属性描述器[可以获取对应变量的相应方法]try {PropertyDescriptor pd = new PropertyDescriptor(key, stu.getClass());//获取setXxx方法;把属性名首字母变大写,加上一个set前缀,作为方法名Method method = pd.getWriteMethod();//执行方法给属性赋值;需要判断属性对应的值是否>1[]if(value.length>1){//参数个数不匹配,因此会报异常wrong number of arguements//正确的调用方法是先将String数组强制转换成Object,然后传参数method.invoke(stu,(Object)value);}else {method.invoke(stu,value);}//System.out.println(stu); 每次属性赋值都打印} catch (Exception e) {e.printStackTrace();}System.out.println(stu);}}@Overrideprotected 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 {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.获取所有参数的信息Map<String, String[]> parameterMap = req.getParameterMap();//2.将数据封装到学生对象中Student stu = new Student();//利用BeanUtils工具类,给学生对象的属性赋值try {BeanUtils.populate(stu,parameterMap);System.out.println(stu);} catch (Exception e) {e.printStackTrace();}System.out.println(stu);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}Student{name='zhangsan', age='123', hobby=[study, game, book]}

BeanUtils工具类资源

Request获取参数封装方式相关推荐

  1. request.getParameter和SpringMVC后台控制层获取参数的方式

    **1. request.getParameter** 转载于:http://blog.csdn.net/moreorless/article/details/4199677 一. 简单的对比 req ...

  2. springbootGetmapping获取参数的方式

    Springboot中Getmapping使用PathVariable.HttpServletRequest.RequestParam获取参数 今天在学习Springboot中遇得到了一个问题,放一段 ...

  3. springboot 中 Getmapping获取参数的方式

    Springboot中Getmapping使用PathVariable.HttpServletRequest.RequestParam获取参数 @PathVaribale 获取url中的数据 @Req ...

  4. SpringBoot 通过AJAX获取参数的方式 List集合

    声明: GET和POST方式我将所有我能想到的组合都进行了一边测试,发现GET只能传递不含有List<自定义类型>的JSON数据 POST没有限制. 前端: <script type ...

  5. jsp页面获取参数的方法(url解析、el表达式赋值、session取值)【原创】

    最近使用myEclispse做网站,使用jsp+js+css做页面,网站中常用到从列表进入详情页面的跳转,下面对详情页面的值填充方式做一个简单总结: 1.url中使用request获取参数 jsp上方 ...

  6. 【第二十二讲】获取参数名

    [第二十二讲]获取参数名 文章目录 [第二十二讲]获取参数名 将 `Bean2.java` 编译后,失去参数 加 `-parameters` 编译后有参数 加 `-g` 编译后有参数 获取参数 封装接 ...

  7. 经典代码-request请求获取参数(post和get两种方式)

    request请求获取参数(post和get两种方式) https://blog.csdn.net/u012110719/article/details/44672111

  8. SpringMVC获取参数的几种方式

    SpringMVC获取参数的几种方式 前言: 年末了,忙了一年了却发现系统的整理的东西很少,一些基础的东西都未做整理,这里就将它随便整理一下,增加一些印象,当然在网上看到一些好的资料也会整理下来以备后 ...

  9. struts2的action从request获取参数值的几种方式

    使用jquery框架的ajax能够方便的向后台传递参数,以$.post为例,参数有2种方式字符串和键值对:$.post(url, "name=aty&age=25")和$. ...

最新文章

  1. php 偷偷转移别人权重,判断百度蜘蛛偷偷进行301转移权重 给新站提权
  2. 收发机中数字中频的设计
  3. spring依赖注入原理(转载)
  4. vs创建html页面提示未找到,VS2015 打开html 提示 未能完成操作 解决办法
  5. thinkphp自定义模板标签(一)
  6. java 大文件下载_Java大文件下载不全问题
  7. Ubuntu 汉字显示一半的修复
  8. flutter推荐路由器插件:go_router
  9. meteor 检测运行环境,手机或者桌面
  10. 1024shop 各个微服务 UML时序图
  11. 解决微信、QQ在一加手机系统中无法限制后台的问题
  12. 如何把PDF拆分成单页文档
  13. shell中大于号和小于号
  14. 信息学奥赛一本通 1033:计算线段长度
  15. 从零基础到拿到网易Java实习offer,我做对了哪些事
  16. TMT/MOBIE成像光谱仪的概念设计阶段杂散光分析
  17. java pdf转html插件pdf2htmlex
  18. 【数据库】数据分析专项练习题库-SQL试卷一
  19. 同时设置min-height和max-height后el-scrollbar滚动监听失效?
  20. 软件构造 Lab3 CircularOrbit 实验日记

热门文章

  1. AT2368-[AGC013B]Hamiltonish Path【构造】
  2. P3698-[CQOI2017]小Q的棋盘【树形dp】
  3. P2387-[NOI2014]魔法森林【LCT】
  4. P3808,P3796-[模板]AC自动机(简单版/加强版)
  5. jzoj2700-数字【数论,LCM】
  6. P3957-跳房子【单调队列,dp,二分】
  7. 【jzoj3734,Usaco2014Open银组】双导航(gpsdual)
  8. 【主席树】更为厉害(P3899)
  9. 【AC自动机】屏蔽词删除(ybtoj AC自动机-4)
  10. 动态规划训练19、最短路 [Help Jimmy POJ - 1661 ]