1

我有一个带有 URL 查询字符串的 java servlet,带有这样的指令

http://hostname/servet?param1=value1&param2=value2

我也像这样构建doPost/doGet

public void doPost(HttpServletRequest req, HttpServletResponse res) {
        try {
            doGet(req, res);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

public void doGet(HttpServletRequest req, HttpServletResponse res) {
        try {
            String sParam1 = req.getParameter("param1")
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我可以通过 getParameter() 访问每个 queryString 参数以进行 GET 操作。但是,当我尝试通过 getParameter() 访问相同的 queryString 以进行 POST 操作时,返回值为 NULL。

所以,我想确认 POST 和 GET 操作的 getParameter 的这种行为。那就是 getParameter 不返回 POST 操作的 queryString 参数?在 POST 操作的情况下,我是否需要手动剖析查询字符串来处理它们?

4

1 回答 1

1

对于 GET 方法,参数作为 URL(查询字符串)的一部分发送,对于 POST 方法,参数作为正文的一部分发送,这就是为什么在 POST 情况下您没有获取参数,因为它们在正文不在 URL 中。

在 POST 操作的情况下,我是否需要手动剖析查询字符串来处理它们?

是的,如果您在发送查询字符串但使用方法 POST 的情况下,您必须自己解析查询字符串,除非您遵守标准并在正文中而不是在 URL 中发送参数。

于 2013-07-23T02:56:46.167 回答