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

Wal*_*lls 6 java servlets jax-rs

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

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

Bal*_*usC 14

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

http://example.com/context/servlet?x=foo
Run Code Online (Sandbox Code Playgroud)

然后它会返回null:

String x = request.getParameter("x"); // "foo"
String y = request.getParameter("y"); // null
Run Code Online (Sandbox Code Playgroud)

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

http://example.com/context/servlet?x=foo&y
Run Code Online (Sandbox Code Playgroud)

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

String x = request.getParameter("x"); // "foo"
String y = request.getParameter("y"); // ""
Run Code Online (Sandbox Code Playgroud)

有道理,对吗?