我有一个HTTP请求javax.servlet.http.HttpServletRequest
,它传入一个值,用于使用JAX-RS在Java Web服务中处理的某些代码中。 Java中的POST函数正在使用application/json
。有两个可能的值要传递给请求,调用一个X
而另一个Y
,假设两个都是字符串。该请求要求至少两个可能值中的一个被视为“有效”。
当请求进入时,如果提供了X
并且Y
完全不在请求中,那么检查Y
是否存在的正确方法是什么?你会检查Y.isEmpty()
还是Y == null
?提供X
并不保证Y
存在,反之亦然。
答案 0 :(得分:13)
如果没有像这样指定参数,
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"); // ""
有道理,对吧?
答案 1 :(得分:1)
测试请求中是否存在参数
httpServletRequest.getParameter( "Y" ) == null
以下代码测试参数的值(如果存在)
if ( httpServletRequest.getParameter( "Y" ) != null )
{
String value = httpServletRequest.getParameter( "Y" );
// Put your test code here. Include a empty value check
}