2016-01-23 29 views
0

我是NanoHttpd新手。我將我的Java EE servlet代碼轉換爲NanoHttpd以供嵌入式使用。請不要推薦像Jetty這樣的其他嵌入式服務器,我特別想使用NanoHttpd。在NanoHttpd中讀取POST Ajax數組參數

我的jQuery的Javascript代碼看起來是這樣的:

$.ajax({ 
    type:'POST', 
    url:'', 
    traditional: true, 
    data: { 
     'prm1':'val2', 
     'prm2':'val2', 
     'array1':['array1','array2','array3'] 
    }, 
    success:function(result){}, 
    error:function(xhr,err,stat){} 
}); 

在一個servlet獲得的參數是這樣的:

String serverval1 = ihttpsession.getParms().get("prm1"); //get single value 
String serverval2 = ihttpsession.getParms().get("prm2"); //get single value 
String[] params = ??? 

String serverval1 = request.getParameter("prm1"); //get single value 
String serverval2 = request.getParameter("prm2"); //get single value 
String[] params = request.getParameterValues("array1"); //get array 

在NanoHttpd我可以通過獲取單個值

如何在NanoHttpd中獲取數組參數?

回答

0

我想通了看到幾個NanoHttpd示例代碼後,顯然有很多的方法來獲得請求參數

String serverval1 = ihttpsession.getParms().get("prm1"); //get single value 
String serverval2 = ihttpsession.getParms().get("prm2"); //get single value 

//get parameters as array (alternative method) 
Map<String,List<String>>prms=decodeParameters(ihttpsession.getQueryParameterString()); 
String[] array = prms.get("array1").toArray(new String[prms.get("array1").size()]); 

後來的方法也可以在非陣列參數使用,但顯然將只包含其各自的一個值List<String>對象