英科--獲取request 中的所有引數-包括Cookie-摘錄
阿新 • • 發佈:2018-12-18
import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; public class GetHttpServletRequestParams { /** * 獲得request中的所有引數 包括Cookie裡面的引數 * * @param request * @return string object型別的map */ public HashMap<String, Object> getParametersO(HttpServletRequest request) { HashMap<String, Object> hashMap = new HashMap<String, Object>(); if (request == null) { request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); } Map req = request.getParameterMap(); if ((req != null) && (!req.isEmpty())) { Map<String, Object> p = new HashMap<String, Object>(); Collection keys = req.keySet(); for (Iterator i = keys.iterator(); i.hasNext();) { String key = (String) i.next(); Object value = req.get(key); Object v = null; if ((value.getClass().isArray()) && (((Object[]) value).length > 0)) { if (((Object[]) value).length > 1) { v = ((Object[]) value); } else { v = ((Object[]) value)[0]; } } else { v = value; } if ((v != null) && ((v instanceof String)) && !"\"\"".equals(v)) { String s = ((String) v).trim(); if (s.length() > 0) { p.put(key, s); } } } hashMap.putAll(p); // 讀取cookie hashMap.putAll(ReadCookieMap(request)); } return hashMap; } /** * 將cookie封裝到Map裡面 * * @param request * @return */ private static Map<String, String> ReadCookieMap(HttpServletRequest request) { Map<String, String> cookieMap = new HashMap<String, String>(); Cookie[] cookies = request.getCookies(); if (null != cookies) { for (Cookie cookie : cookies) { cookieMap.put(cookie.getName(), cookie.getValue()); } } return cookieMap; } }