import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.beanutils.BeanUtils; /** * requst流对象工具类 * @author LUSHUIFA242 * */ public class RequestStreamUtil { /** * 将request流中的数据转换成String * @param request * @return */ public static String toString(HttpServletRequest request){ String valueStr = ""; try { StringBuffer sb = new StringBuffer(); InputStream is = request.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String s = ""; while ((s = br.readLine()) != null) { sb.append(s); } valueStr = sb.toString(); } catch (IOException e) { e.printStackTrace(); valueStr = ""; } return valueStr; } /** * 将request流中的数据转换成Map * @param request * @return */ public static Map<String,String> toMap(HttpServletRequest request){ Map<String,String> parameter = new HashMap<String,String>(); String valueStr = toString(request); try { if(null!=valueStr&&!"".equals(valueStr)){ String[] valueArr = valueStr.split("&"); for (String kvStr : valueArr) { String[] kvStrArr = kvStr.split("="); parameter.put(kvStrArr[0], kvStrArr[1]); } }else{ parameter = getParameterMap(request); } } catch (Exception e) { e.printStackTrace(); } return parameter; } /** * 将request流中的数据转换成bean * @param request * @return */ public static Object toBean(HttpServletRequest request,Class<?> beanClazz){ Map<String, String> mapObject = toMap(request); System.out.println("toBean:"+mapObject); Object beanO = null; try { beanO = beanClazz.newInstance(); if(null!=mapObject&&!mapObject.isEmpty()){ BeanUtils.copyProperties(beanO,mapObject); } } catch (Exception e) { e.printStackTrace(); } return beanO; } /** * 从request中获得参数Map,并返回可读的Map * @param request * @return */ public static Map<String,String> getParameterMap(HttpServletRequest request) { // 参数Map Map properties = request.getParameterMap(); // 返回值Map Map<String,String> returnMap = new HashMap<String,String>(); Iterator entries = properties.entrySet().iterator(); Map.Entry<String,String> entry; String name = ""; String value = ""; while (entries.hasNext()) { entry = (Map.Entry) entries.next(); name = (String) entry.getKey(); Object valueObj = entry.getValue(); if(null == valueObj){ value = ""; }else if(valueObj instanceof String[]){ String[] values = (String[])valueObj; for(int i=0;i<values.length;i++){ value = values[i] + ","; } value = value.substring(0, value.length()-1); }else{ value = valueObj.toString(); } returnMap.put(name, value); } return returnMap; } } 其它同学有更好的设计可以随意评论,谢谢!
相关推荐
Java 提供了多种方式来获取 Request 中的请求参数,本文将详细介绍这些方法。 获取所有请求参数 在 Java 中,我们可以使用 `request.getParameterNames()` 方法来获取所有的请求参数名,然后遍历这些参数名,使用 ...
在普元Primeton EOS运算逻辑中获取HttpSession和Httprequest以及application 在普元Primeton EOS运算逻辑中获取HttpSession和Httprequest以及application
这样的处理方式确保了我们可以在中间件中读取到`Request.Body`和`Response.Body`的内容,同时不会影响其他中间件的正常工作。在编写自定义中间件时,需要注意流的读写状态以及资源管理,避免出现意外的异常或数据...
本文将详细讲解如何使用 Easymock 对 Servlet 进行单元测试,特别是针对 `HttpServletRequest` 中获取参数的方法 `getParamsNames()`。 在Servlet编程中,`HttpServletRequest` 是一个核心接口,它提供了处理HTTP...
接下来,我们讨论如何截取request参数。在`OnBeforeResourceLoad`方法中,你可以通过`request`参数访问到`IRequest`对象,这个对象包含了请求的所有信息,如URL、方法(GET或POST)、请求头等。你可以读取并修改这些...
本文讨论了使用request.getInputStream()获取文件流时遇到的问题,并提供了两种获取文件流的方式,分别是使用DataInputStream和ByteArrayOutputStream。同时,文章也提到了在获取文件流时需要注意的两点:第一点是...
data'时request.getParameter()获取不到值的方法”这一主题时,我们首先需要理解为什么在特定情况下,传统的`request.getParameter()`方法无法正常工作,以及如何通过引入Apache Commons FileUpload库来解决这个问题...
Request对象是用于获取客户端发送的请求信息的,包括请求参数、请求头、请求URL等。HttpServletRequest提供了多种方法来获取这些信息,例如: 1. `getParameter(String name)`:获取指定名称的请求参数值,如果不...
通过这种方式,我们可以在Action中直接使用HTTP请求和响应对象,进行诸如读取请求参数、设置响应头、重定向等操作。 获取到request对象后,我们可以访问请求参数,例如: ```java String paramValue = request....
- `request.getParameter("alaramPic")`:从请求中获取名为`alaramPic`的参数,该参数通常由前端页面传递过来,表示要显示的图片的路径或标识。 ##### 3.2 文件流操作 ```java String imagePath = Const.ALARM_FILE...
1. **request.getParameter()**:这个方法用于获取客户端(通常是HTML表单)通过HTTP请求(GET或POST)传递到服务器端的参数。这些参数通常以键值对的形式出现在URL(GET)或请求体(POST)中。例如,当用户在表单中...
这时候,我们需要使用IO流的方式来获取body中的内容。 使用HttpServletRequest获取post请求body内容的方法有多种,下面我们来详细介绍其中的一种方法。 首先,我们需要了解HttpServletRequest对象的getInputStream...
Request对象通常包含了请求方法(如GET、POST等)、URL、请求头、请求体等信息,这些信息都是通过Node.js的http模块获取的。 1. **请求方法(Method)** Request对象的method属性代表了HTTP请求的方法,例如'GET'...
这篇文章主要介绍了.net core在服务器端获取api传递的参数过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在 ActionFilterAttribute 的...
在原生的uni-app中,`uni.request`是用于发送HTTP或HTTPS请求的方法,它可以发起GET和POST等不同类型的网络请求,获取服务器数据。基础的`uni.request`用法包括设置URL、请求方法、请求头、数据体等参数。但实际项目...
- 在`doFilter`方法中,获取请求的输入流,然后使用适当的字符编码进行解码。 2. **设置请求编码**: - 通过`HttpServletRequest`对象的`setCharacterEncoding`方法,可以设置请求的字符编码。但要注意,这个方法...
在后边的代码中应用到请求参数值时,我们可能会遇到request中的json数据为空的问题。这是因为InputStream只能读取一次,如果我们想要重复读取流中的数据,就需要自定义一个HttpServletRequestWrapper。 通过继承...
在JSP中,可以使用`request.getParameter()`来获取这些参数: ```jsp String name = request.getParameter("name"); String age = request.getParameter("age"); ``` 在处理中文参数时,同样需要注意字符编码,...
`useBodyEncodingForURI` 参数表示是否用 `request.setCharacterEncoding` 参数对 URL 提交的数据和表单中 GET 方式提交的数据进行重新编码,在默认情况下,该参数为 `false`。`URIEncoding` 参数指定对所有 GET ...
通常,文件上传可以通过`HttpServletRequest`类中的`getPart()`方法获取`Part`对象,再通过该对象读取文件数据。以下是一个简单的文件上传示例: ```java protected void doPost(HttpServletRequest request, ...