我是NanoHttpd的新手。我正在将我的Java EE servlet代码转换为NanoHttpd以供嵌入式使用。请不要推荐像Jetty这样的其他嵌入式服务器,我特别想使用NanoHttpd。
我的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 = request.getParameter("prm1"); //get single value
String serverval2 = request.getParameter("prm2"); //get single value
String[] params = request.getParameterValues("array1"); //get array
在NanoHttpd上,我可以通过以下方式获取单个值:
String serverval1 = ihttpsession.getParms().get("prm1"); //get single value
String serverval2 = ihttpsession.getParms().get("prm2"); //get single value
String[] params = ???
如何在NanoHttpd中获取数组参数?
答案 0 :(得分: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>
对象中只包含一个值