request接口获取请求参数

  • 前端表单提交数据的时候,假设提交的是120这个数字,其实是以字符串”120”的方式提交到后端的,后端获取到的是字符串

一、测试request接口中的相关方法

  1. /**
  2. * @description: 总结四个非常常用的方法
  3. *
  4. * Map<String,String[]> parameterMap = request.getParameterMap();
  5. * Enumeration<String> names = request.getParameterNames();
  6. * String [] values = request.getParameterValues("name");
  7. * String value = request.getPatameter("name");
  8. */

二、各方法的详解

  • Map<String,String[]> parameterMap = request.getParameterMap();
  • 这个是获取Map
  1. /**
  2. * @method Map<String,String[]> parameterMap = request.getParameterMap();
  3. */
  4. //获取参数Map集合
  5. Map<String, String[]> parameterMap = request.getParameterMap();
  6. //遍历Map集合
  7. //最基本的方式:获取Map集合中所有的Key,遍历
  8. Set<String> keys = parameterMap.keySet();
  9. //遍历Set集合
  10. //迭代器
  11. Iterator<String> it = keys.iterator();
  12. //遍历
  13. while (it.hasNext()) {
  14. String key = it.next();
  15. //System.out.println(key);
  16. //通过key获取value
  17. String[] values = parameterMap.get(key);
  18. //System.out.println(key + "=" + values);
  19. //遍历一维数组
  20. System.out.print(key + "=");
  21. for (String value : values) {
  22. System.out.print(value + ",");
  23. }
  24. //换行
  25. System.out.println();
  26. }

  • Enumeration<String> names = request.getParameterNames();
  • 这个是获取Map集合中的多有key
  1. /**
  2. * @method Enumeration<String> names = request.getParameterNames();
  3. * 直接通过getParameterNames()这个方法,
  4. * 可以直接获取这个Map集合所有的key
  5. */
  6. Enumeration<String> names = request.getHeaderNames();
  7. while (names.hasMoreElements()) {
  8. String name = names.nextElement();
  9. //System.out.println("name");
  10. }

  • String [] values = request.getParameterValues("name");
  • 根据key获取Map集合的values
  1. /**
  2. * @method String [] values = request.getParameterValues("name");
  3. * 直接通过name获取values这个一位数组
  4. */
  5. String[] usernames = request.getParameterValues("username");
  6. String[] userpwds = request.getParameterValues("userpwd");
  7. String[] interests = request.getParameterValues("interest");
  8. //遍历一维数组
  9. for (String username : usernames) {
  10. System.out.println(username);
  11. }
  12. for (String userpwd : userpwds) {
  13. System.out.println(userpwd);
  14. }
  15. for (String interest : interests) {
  16. System.out.println(interest);
  17. }

  • String value = request.getPatameter("name");
  • 获取value这个卫衣数组当中的第一个元素,这个方法最常用
  1. /**
  2. * @method String value = request.getPatameter("name");
  3. * 通过name获取value这个一维数组的第一个元素
  4. * 这个方法使用的最多,因为这个一维数组一般只有一个元素
  5. */
  6. String username = request.getParameter("username");
  7. String userpwd = request.getParameter("userpwd");
  8. //注意:这个方法只获取一维数组的第一个元素
  9. //String interest = request.getParameter("interest");
  10. //既然是CheckBox,调用方法:request.getParameterValues(:interest");
  11. String[] interests02 = request.getParameterValues("interest");
  12. System.out.println(username);
  13. System.out.println(userpwd);
  14. //System.out.println(interest);
  15. for (String interest02 : interests02) {
  16. System.out.println(interest02);
  17. }
  18. }

  1. package request;
  2. import jakarta.servlet.ServletException;
  3. import jakarta.servlet.http.HttpServlet;
  4. import jakarta.servlet.http.HttpServletRequest;
  5. import jakarta.servlet.http.HttpServletResponse;
  6. import java.io.IOException;
  7. import java.util.Enumeration;
  8. import java.util.Iterator;
  9. import java.util.Map;
  10. import java.util.Set;
  11. /**
  12. * @Author: 小雷学长
  13. * @Date: 2022/3/20 - 23:52
  14. * @Version: 1.8
  15. */
  16. /*
  17. usename=zhangsan&userpwd=123&interest=s&interest=d
  18. Map<String,String[]>
  19. key value
  20. ---------------------------
  21. "username" {"zhagnsan"}
  22. "userpwd" {"123"}
  23. "interest" {"s","d"}
  24. */
  25. /**
  26. * @description: 总结四个非常常用的方法
  27. *
  28. * Map<String,String[]> parameterMap = request.getParameterMap();
  29. * Enumeration<String> names = request.getParameterNames();
  30. * String [] values = request.getParameterValues("name");
  31. * String value = request.getPatameter("name");
  32. */
  33. public class requestTest extends HttpServlet {
  34. @Override
  35. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  36. throws ServletException, IOException {
  37. //面向接口编程:HttpServletRequest接口
  38. //获取前端提交的数据
  39. //前端会提交
  40. // usename=zhangsan&userpwd=123&interest=s&interest=d
  41. //以上的数据会被小猫咪封装到request对象中
  42. /**
  43. * @method Map<String,String[]> parameterMap = request.getParameterMap();
  44. */
  45. //获取参数Map集合
  46. Map<String, String[]> parameterMap = request.getParameterMap();
  47. //遍历Map集合
  48. //最基本的方式:获取Map集合中所有的Key,遍历
  49. Set<String> keys = parameterMap.keySet();
  50. //遍历Set集合
  51. //迭代器
  52. Iterator<String> it = keys.iterator();
  53. //遍历
  54. while (it.hasNext()) {
  55. String key = it.next();
  56. //System.out.println(key);
  57. //通过key获取value
  58. String[] values = parameterMap.get(key);
  59. //System.out.println(key + "=" + values);
  60. //遍历一维数组
  61. System.out.print(key + "=");
  62. for (String value : values) {
  63. System.out.print(value + ",");
  64. }
  65. //换行
  66. System.out.println();
  67. }
  68. System.out.println("----------------------");
  69. /**
  70. * @method Enumeration<String> names = request.getParameterNames();
  71. * 直接通过getParameterNames()这个方法,
  72. * 可以直接获取这个Map集合所有的key
  73. */
  74. Enumeration<String> names = request.getHeaderNames();
  75. while (names.hasMoreElements()) {
  76. String name = names.nextElement();
  77. //System.out.println("name");
  78. }
  79. System.out.println("----------------------");
  80. /**
  81. * @method String [] values = request.getParameterValues("name");
  82. * 直接通过name获取values这个一位数组
  83. */
  84. String[] usernames = request.getParameterValues("username");
  85. String[] userpwds = request.getParameterValues("userpwd");
  86. String[] interests = request.getParameterValues("interest");
  87. //遍历一维数组
  88. for (String username : usernames) {
  89. System.out.println(username);
  90. }
  91. for (String userpwd : userpwds) {
  92. System.out.println(userpwd);
  93. }
  94. for (String interest : interests) {
  95. System.out.println(interest);
  96. }
  97. System.out.println("----------------------");
  98. /**
  99. * @method String value = request.getPatameter("name");
  100. * 通过name获取value这个一维数组的第一个元素
  101. * 这个方法使用的最多,因为这个一维数组一般只有一个元素
  102. */
  103. String username = request.getParameter("username");
  104. String userpwd = request.getParameter("userpwd");
  105. //注意:这个方法只获取一维数组的第一个元素
  106. //String interest = request.getParameter("interest");
  107. //既然是CheckBox,调用方法:request.getParameterValues(:interest");
  108. String[] interests02 = request.getParameterValues("interest");
  109. System.out.println(username);
  110. System.out.println(userpwd);
  111. //System.out.println(interest);
  112. for (String interest02 : interests02) {
  113. System.out.println(interest02);
  114. }
  115. }
  116. }