getParameter对post和get操作的行为是什么?

时间:2013-07-23 02:54:51

标签: java servlets http-post http-get request.querystring

我有一个带有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()为POST操作访问相同的queryString时,返回的值为NULL。

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

1 个答案:

答案 0 :(得分:1)

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

  

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

是的,如果您正在发送查询字符串但使用方法POST,则必须自己解析查询字符串,除非您遵守标准并在主体内部而不是在URL。