HTTP请求中缺少元素 – 空或空?

我有一个HTTP请求javax.servlet.http.HttpServletRequest传入一个值,用于在使用JAX-RS的Java Web服务中处理的某些代码中。 Java中的POST函数正在使用application/json 。 有两个可能的值要传递给请求,调用一个X ,另一个Y ,假设两个都是字符串。 该请求要求将两个可能值中的至少一个视为“有效”。

当请求进入时,如果提供X并且Y完全不在请求中,那么检查Y是否存在的正确方法是什么? 你会检查Y.isEmpty()Y == null吗? 提供X并不保证Y存在,反之亦然。

如果没有像这样指定参数,

 http://example.com/context/servlet?x=foo 

然后它将返回null

 String x = request.getParameter("x"); // "foo" String y = request.getParameter("y"); // null 

如果指定了参数,但没有这样的值,

 http://example.com/context/servlet?x=foo&y 

然后它将返回一个空字符串:

 String x = request.getParameter("x"); // "foo" String y = request.getParameter("y"); // "" 

有道理,对吗?

测试请求中是否存在参数

 httpServletRequest.getParameter( "Y" ) == null 

以下代码测试参数的值(如果存在)

 if ( httpServletRequest.getParameter( "Y" ) != null ) { String value = httpServletRequest.getParameter( "Y" ); // Put your test code here. Include a empty value check }