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

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

    ```java /**
  • @description: 总结四个非常常用的方法 *
  • Map parameterMap = request.getParameterMap();
  • Enumeration names = request.getParameterNames();
  • String [] values = request.getParameterValues(“name”);
  • String value = request.getPatameter(“name”); */ ```

    2、各方法的详解

  • Map<String,String[]> parameterMap = request.getParameterMap();
  • 这个是获取Map ```java /**
  • @method Map parameterMap = request.getParameterMap(); */ //获取参数Map集合 Map parameterMap = request.getParameterMap();

//遍历Map集合 //最基本的方式:获取Map集合中所有的Key,遍历 Set keys = parameterMap.keySet();

//遍历Set集合 //迭代器 Iterator it = keys.iterator(); //遍历 while (it.hasNext()) { String key = it.next(); //System.out.println(key);

  1. //通过key获取value
  2. String[] values = parameterMap.get(key);
  3. //System.out.println(key + "=" + values);
  4. //遍历一维数组
  5. System.out.print(key + "=");
  6. for (String value : values) {
  7. System.out.print(value + ",");
  8. }
  9. //换行
  10. System.out.println();
  11. }
  1. ---
  2. - [x] `Enumeration<String> names = request.getParameterNames();`
  3. - [x] 这个是获取Map集合中的多有key
  4. ```java
  5. /**
  6. * @method Enumeration<String> names = request.getParameterNames();
  7. * 直接通过getParameterNames()这个方法,
  8. * 可以直接获取这个Map集合所有的key
  9. */
  10. Enumeration<String> names = request.getHeaderNames();
  11. while (names.hasMoreElements()) {
  12. String name = names.nextElement();
  13. //System.out.println("name");
  14. }

  • String [] values = request.getParameterValues("name");
  • 根据key获取Map集合的values ```java /**
  • @method String [] values = request.getParameterValues(“name”);
  • 直接通过name获取values这个一位数组 */ String[] usernames = request.getParameterValues(“username”); String[] userpwds = request.getParameterValues(“userpwd”); String[] interests = request.getParameterValues(“interest”);

//遍历一维数组 for (String username : usernames) { System.out.println(username); }

for (String userpwd : userpwds) { System.out.println(userpwd); }

for (String interest : interests) { System.out.println(interest); }

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

  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. }