1、request.getparameter();
1 //只接收前台穿過來的一個指定的參數 2 String value=request.getparameter("key");
2、request.getParameterMap();
說白了前端提交到Servlet或者Action里面的參數Map,如果你是以表單提交,那么request.getParameterMap()中將包含你表單里面所有input標簽的數據,以其name為key,以其value為值,如果你是以ajax提交的話,就是你自己組織的所有參數了。
有時候頁面傳來多個參數的情況下,要寫多個request.getParameter(name)進行逐個接收,但是當傳過來的參數非常多的時候,代碼就顯得有些臃腫了,下面舉個例子:
1 //這個也是支付寶回調的信息
2 @RequestMapping("alipay_callback.do") 3 @ResponseBody 4 public Object alipayCallback(HttpServletRequest request){ 5 Map<String,String> params = Maps.newHashMap(); 6 //getParameterMap()一般多用於接收前台表單多參數傳輸的數據
7 Map requestParams = request.getParameterMap(); 8 for(Iterator iter = requestParams.keySet().iterator();iter.hasNext();){ 9 String name = (String)iter.next(); 10 String[] values = (String[]) requestParams.get(name); 11 String valueStr = ""; 12 for(int i = 0 ; i <values.length;i++){ 13
14 valueStr = (i == values.length -1)?valueStr + values[i]:valueStr + values[i]+","; 15 } 16 //把數據全部加進map集合中
17 params.put(name,valueStr); 18 } 19 logger.info("支付寶回調,sign:{},trade_status:{},參數:{}",params.get("sign"),params.get("trade_status"),params.toString());
如果覺得本博客還不錯的話,歡迎進群一起討論:點我進群
下面是request的主要屬性:
setAttribute(String name,Object):設置名字為name的request 的參數值
getAttribute(String name):返回由name指定的屬性值
getAttributeNames():返回request 對象所有屬性的名字集合,結果是一個枚舉的實例
getCookies():返回客戶端的所有 Cookie 對象,結果是一個Cookie 數組
getCharacterEncoding() :返回請求中的字符編碼方式
getContentLength() :返回請求的 Body的長度
getHeader(String name) :獲得HTTP協議定義的文件頭信息
getHeaders(String name) :返回指定名字的request Header 的所有值,結果是一個枚舉的實例
getHeaderNames() :返回所以request Header 的名字,結果是一個枚舉的實例
getInputStream() :返回請求的輸入流,用於獲得請求中的數據
getMethod() :獲得客戶端向服務器端傳送數據的方法
getParameter(String name) :獲得客戶端傳送給服務器端的有 name指定的參數值
getParameterNames() :獲得客戶端傳送給服務器端的所有參數的名字,結果是一個枚舉的實
例
getParameterValues(String name):獲得有name指定的參數的所有值
getProtocol():獲取客戶端向服務器端傳送數據所依據的協議名稱
getQueryString() :獲得查詢字符串
getRequestURI() :獲取發出請求字符串的客戶端地址
getRemoteAddr():獲取客戶端的 IP 地址
getRemoteHost() :獲取客戶端的名字
getSession([Boolean create]) :返回和請求相關 Session
getServerName() :獲取服務器的名字
getServletPath():獲取客戶端所請求的腳本文件的路徑
getServerPort():獲取服務器的端口號
removeAttribute(String name):刪除請求中的一個屬性