Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在转储java.util.Map的内容-未按预期工作_Java_Servlets_Collections - Fatal编程技术网

正在转储java.util.Map的内容-未按预期工作

正在转储java.util.Map的内容-未按预期工作,java,servlets,collections,Java,Servlets,Collections,我想根据@Greg Kopff发布的回复来回答这个问题 基本上,我要做的是将request.getParameterMap()方法返回的映射的内容转储到输出 我将得到以下奇怪的映射作为输出(我认为其值是字符串或字符串数组的对象引用的地址) {submit=[Ljava.lang.String;@1fe4169,color=[Ljava.lang.String;@178920a, chek_games=[Ljava.lang.String;@bbfa5c,foo=[Ljava.lang.Strin

我想根据@Greg Kopff发布的回复来回答这个问题

基本上,我要做的是将request.getParameterMap()方法返回的映射的内容转储到输出

我将得到以下奇怪的映射作为输出(我认为其值是字符串或字符串数组的对象引用的地址)

{submit=[Ljava.lang.String;@1fe4169,color=[Ljava.lang.String;@178920a, chek_games=[Ljava.lang.String;@bbfa5c,foo=[Ljava.lang.String;@131de9b} 我尝试了以下代码-

public class CoffeeSelect extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Map requestParams = req.getParameterMap(); resp.getWriter().println(requestParams); } } 公共类CoffeeSelect扩展了HttpServlet{ 受保护的void doPost(HttpServletRequest-req,HttpServletResponse-resp)引发ServletException,IOException{ Map requestParams=req.getParameterMap(); resp.getWriter().println(requestParams); } } 下面是我的HTML

绿色 红色 蓝色


如何尊重这些对象引用,或者让我这样说;我在这里遗漏了什么吗?

这个
[L
符号告诉我们它是一个
字符串[]
的字符串表示形式。HTTP允许您做类似的事情

(想想多选

考虑到这一点,参数映射不是
Map
,而是
Map
(我不知道实现是否真的使用泛型,它只是一个显式表示)

因此,要转储参数,您需要:

a) 假设您不会为同一个参数获取多个值;循环参数名称,并使用
request.getParameter


b) 如果您接受多个值,请循环参数名称并序列化数组。

哦,我知道了。可能我应该阅读集合和Java的更多内容。谢谢。我会接受这一点作为5分钟内的最佳答案。我猜它已锁定。集合的使用是正确的,您只是猜错了值的类别。但是,是的,完全了解pr编程语言/API需要付出努力。是的。我理解并同意你的观点。我更习惯于Perl/Python/PHP和Rails语法/语义,最近我转向了J2EE中的一个新项目。这就是为什么Java的OO特性会面临许多无数问题的原因。问题是,该项目已经启动,我非常困惑现在是学习API的时候了……:(.大约7年前我用Java编程,但现在我已经一清二楚了…哈哈….顺便说一句,大多数地图类实现了
可序列化
。也许这就是获得转储的方法。 public class CoffeeSelect extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Map requestParams = req.getParameterMap(); resp.getWriter().println(requestParams); } } <form action="SelectCofee.Do" method="post"> <select id="coffe_color" name="color"> <option value="green">Green</option> <option value="red">Red</option> <option value="blue">Blue</option> </select> <br/><br/> <input type="checkbox" id="chek_games" name="chek_games" value="chess" /> <input type="checkbox" id="chek_games" name="chek_games" value="badminton" /> <input type="checkbox" id="chek_games" name="chek_games" value="cricket" /> <input type="hidden" id="foo" name="foo" value="bar" /> <input type="submit" name="submit" value="Submit" /> </form>