Missing Elements in HTTP Request - Null or Empty?

丶灬走出姿态 提交于 2019-12-29 07:47:07

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!