我想理解别人写的java程序,我不知道java。我写了一个简短的方法来转储请求对象的属性。public void dumpRequest(HttpServletRequest request) { String[] attrNames = new String[100]; // hard coded int ani = 0; Enumeration rns = request.getAttributeNames(); while (rns.hasMoreElements()) { out.println("attribute name: " + rns.nextElement()); attrNames[ani] = rns.nextElement().toString(); ani = ani + 1; } out.println("" + ani + " atributes"); String cn; for (int n = 0; n < ani; n++) { cn = attrNames[n]; out.println("** " + cn + " - " + request.getAttribute(cn)); } out.println("++++++++++++++++++++++");}令我震惊的是,我意识到与我的代码输出相比,NetBeans 变量选项卡在请求对象上显示的属性多两倍。枚举似乎记录在这里:https : //tomcat.apache.org/tomcat-4.1-doc/catalina/docs/api/org/apache/catalina/util/Enumerator.html我究竟做错了什么?
1 回答

蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
在此块中调用 nextElement 方法两次:
while (rns.hasMoreElements()) {
out.println("attribute name: " + rns.nextElement());
attrNames[ani] = rns.nextElement().toString();
ani = ani + 1;
}
你应该调用 nextElement 一次。把它放在变量中,然后使用该变量。
添加回答
举报
0/150
提交
取消