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 }