2025/12/12

request获取请求数据
请求行
//获取请求方式GET
String method = req.getMethod();
System.out.println("method:"+method);
//获取虚拟目录(项目访问路径)
String contextPath = req.getContextPath();
System.out.println("contextPath:"+contextPath);
//获取URL(统一资源定位符)
StringBuffer requestURL = req.getRequestURL();
System.out.println("requestURL:"+requestURL);
//获取URI(统一资源标识符)
String requestURI = req.getRequestURI();
System.out.println("requestURI:"+requestURI);
//获取请求参数(GET方式)
String queryString = req.getQueryString();
System.out.println("queryString:"+queryString);

method:GET
contextPath:/aa
requestURL:http://localhost:8080/aa/demo4
requestURI:/aa/demo4
queryString:null

请求头:
String getHeader(String name):根据请求头名称,获取值
请求体:
ServletInputStream getInputStream():获取字节输入流
BufferedReader getReader():获取字符输入流

在 Java Web 的 HttpServletRequest 中,无论 GET/POST 请求,都提供了一批通用方法用于获取请求参数、请求信息等核心数据 —— 这些方法不依赖请求方式,是处理 GET/POST 的基础。以下按 “核心参数获取”“请求元信息获取”“其他通用操作” 分类梳理,附使用场景和示例:
核心:通用参数获取方法(最常用)
这是 GET/POST 最核心的通用方法,也是你前序问题中重点关注的 “获取请求参数” 的统一入口,底层会自动适配:
GET 请求:读取 URL 后的 Query String(?key1=value1&key2=value2);
POST 请求:读取请求体中的表单参数(application/x-www-form-urlencoded 格式);
若 POST 请求 URL 也带参数,这些方法会合并 URL 和请求体中的参数(同名时优先返回请求体的值)。
方法 作用 通用示例(GET/POST 均可)
String getParameter(String name) 获取指定名称的单个参数值(无参数返回 null,最常用) String username = request.getParameter("username");
String[] getParameterValues(String name) 获取同名多值参数(如复选框、多选下拉框) String[] hobbies = request.getParameterValues("hobby"); // 返回 ["game", "music"]
Map<String, String[]> getParameterMap() 获取所有参数的键值对(key = 参数名,value = 参数值数组) Map<String, String[]> paramMap = request.getParameterMap();
Enumeration getParameterNames() 获取所有参数名的枚举集合(遍历所有参数) Enumeration names = request.getParameterNames(); while(names.hasMoreElements()) { ... }
通用注意事项:
空值处理:无对应参数时,getParameter() 返回 null,需避免空指针;
类型转换:获取的参数都是 String 类型,需手动转 int/long 等(如 Integer.parseInt(request.getParameter("age")));
编码:POST 需先执行 request.setCharacterEncoding("UTF-8")(获取参数前),GET 依赖 Tomcat 的 URIEncoding 配置(8+ 默认 UTF-8)。

posted on 2025-12-11 21:28  才一斤  阅读(6)  评论(0)    收藏  举报

导航