6

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

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

4

2 回答 2

14

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

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"); // ""

有道理,对吧?

于 2013-02-22T16:15:59.260 回答
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
}
于 2013-02-22T16:13:36.870 回答