问题
I have a HTTP Request javax.servlet.http.HttpServletRequest
that is passing in a value to be used in some code being handled in a Java web service using JAX-RS. The POST function in Java is consuming application/json
. There are two possible values to be passed into the request, call one X
and the other Y
, assume both are Strings. The request requires at least one of the two possible values to be considered 'valid'.
When the request comes in, if X
is provided and Y
is left out of the request entirely, what is the proper way to check to see if Y
is there? Would you check to see if Y.isEmpty()
or Y == null
? Providing X
doesn't guarantee Y
is present, and vice versa.
回答1:
If a parameter is not specified at all like so,
http://example.com/context/servlet?x=foo
then it will return null
:
String x = request.getParameter("x"); // "foo"
String y = request.getParameter("y"); // null
If a parameter is specified, but does not have a value like so,
http://example.com/context/servlet?x=foo&y
then it will return an empty string:
String x = request.getParameter("x"); // "foo"
String y = request.getParameter("y"); // ""
Makes sense, right?
回答2:
Tests if a parameter is present in the request
httpServletRequest.getParameter( "Y" ) == null
The following code tests the value of the parameter if it is present
if ( httpServletRequest.getParameter( "Y" ) != null )
{
String value = httpServletRequest.getParameter( "Y" );
// Put your test code here. Include a empty value check
}
来源:https://stackoverflow.com/questions/15028349/missing-elements-in-http-request-null-or-empty