了解ServletRequest

时间:2013-05-07 23:23:08

标签: html jsp servlets

我正在尝试了解ServletRequest的工作原理。

例如: http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameterNames()

States“返回String对象的枚举,其中包含此请求中包含的参数的名称”

我已经看过这样的实例

Enumeration test_enum = request.getParameterNames();
            StringBuilder sb = new StringBuilder();
            while (test_enum.hasMoreElements()) {
                String paramName = cleanString((String)test_enum.nextElement());
                String paramValue = cleanString(request.getParameter(paramName));
                if (alteredValues.containsKey(paramName)) paramValue = alteredValues.get(paramName);
                try {
                    paramValue = URLEncoder.encode(paramValue, "UTF-8");
                } catch (UnsupportedEncodingException e) {
                }
                sb.append("&").append(paramName).append("=").append(paramValue);
            }

所以我理解这个目标是找到所有参数并以URL格式列出。

我不明白的是getParameterNames()如何在页面上找到参数,它是否仅查找具有name属性的任何元素并将其计为参数?

在这种情况下,什么是合格的参数?

1 个答案:

答案 0 :(得分:1)

当您对服务器上的资源发出HTTP GETHTTP POST请求时,您的浏览器会创建一个请求包。该请求包具有某些身体部位。在其中一个正文部分中,它包含您在提出请求之前输入的所有表单字段。

例如,此图片是示例HTTP GET请求包:

enter image description here

在上图中,您可以看到bookId=1234&author=Tan+Ah+Teck行。该行是参数行。因此,在servlet中,您可以使用request.getParameterNames(),它将为您提供所有参数的枚举