如何获取网址中的key = value对?

时间:2014-02-11 22:12:37

标签: jsp

我有这段代码:

while(paramNames.hasMoreElements()) { 
    String paramName = (String)paramNames.nextElement();
    String paramValue = request.getHeader(paramName);

    out.println(paramName + "=" + paramValue);
}

产生:

course_code3=null schedule_no3=null course_sched3=null

当网址包含以下内容时:

pntc_confirmrsvd.jsp?course_sched3=3&course_code3=CSM101&schedule_no3=201403

为什么我没有在网址中获取key = value对?上面的代码有什么问题?任何帮助将非常感激,因为我已经被这3小时难倒了。 :(

我实际需要做的是这样的事情:

while(paramNames.hasMoreElements())
{ 
    String paramName = (String)paramNames.nextElement();
    String paramValue = request.getHeader(paramName);

    if (paramName.contains("course_code"))
    {
        course_code = paramValue;
    }
    else if (paramName.contains("schedule_no"))
    {
        schedule_no = paramValue;
    }
    else if (paramName.contains("course_sched"))
    {
        course_sched = paramValue;
    }

    out.println("Course: " + course_code + " ,Schedule: " + schedule_no + " , Item: "+course_sched);
}

3 个答案:

答案 0 :(得分:1)

您正在呼叫request.getHeader()以获取参数值。正如其名称所示,getHeader()不返回参数值,而是返回标头值。要获取参数值,请调用... getParameter()

答案 1 :(得分:0)

  

String paramValue = request.getHeader(paramName);

应该是

String paramValue = request.getParameter(paramName);

答案 2 :(得分:0)

您可以使用getParameterMap()来获取包含请求键/值对的Map对象。

完成后,您可以轻松遍历所有键并获取值:

Map<String, String[]> paramMap = request.getParameterMap();
String[] values = null;

for (String key : paramMap.keySet().iterator()) {
  values = paramMap.get(key);
}

我已经离开Java一段时间了,所以我的Map变量声明可能不对。