2016-08-12 3 views
2

Ich bin neu in Web-Service & während Web-Service zu schaffen, die Anfrage akzeptiert, ich fand 2 Methoden, mit denen ich URL-Parameter lesen:Unterschied zwischen getPathParameters() & getQueryParameters()

getPathParameters() & getQueryParameters () von UriInfo. Als ich beide ausführte, bekam ich dieselbe Ausgabe. Hier ist der Code, den ich versuchte auszuführen:

@GET 
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN }) 
public String processGETReq(@Context UriInfo pUriInfo) { 
    MultivaluedMap<String, String> queryParams = pUriInfo.getQueryParameters(); 
    MultivaluedMap<String, String> pathParams = pUriInfo.getPathParameters(); 
    Set<Entry<String, List<String>>> lQueryParamsSet = queryParams.entrySet(); 
    Set<Entry<String, List<String>>> lPathParamsSet = pathParams.entrySet(); 

    for (Entry<String, List<String>> lQueryEntrySet : lQueryParamsSet) { 
     System.out.println(lQueryEntrySet.getValue()); 
     System.out.println(lQueryEntrySet.getKey()); 
    } 

    for (Entry<String, List<String>> lPathEntrySet : lPathParamsSet) { 
     System.out.println(lPathEntrySet.getValue()); 
     System.out.println(lPathEntrySet.getKey()); 
    } 
} 

Der Ausgang für beide sind gleich. Also bin ich neugierig zu wissen, was der Unterschied zwischen ihnen ist. Versucht, es aus der Dokumentation (http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/UriInfo.html) zu bekommen, hat aber den Unterschied nicht richtig bekommen.

Vielen Dank im Voraus für die Antworten !!

Antwort

2
/clients/123/sales?sort=asc 

clientId=123 ist ein Pfadparameter, sort=asc ist eine Abfrage-Parameter.

+2

Um genauer zu sein: Wenn der Webservice seine URL wie '/ clients/$ {clientid}/sales' definiert hat, dann hätte'/clients/123/sales? Sort = asc' den Pfadparameter 'clientid = 123' und der Abfrageparameter 'sort = asc'. – Thomas