JAX-RS @QueryParam Example

We know there are two ways to pass the parameter in a GET request of the REST Service.
First way is using @PathParam and the Other way is using @QueryParam. We have already learnt how to use @PathParam annotation, Now lets look into @QueryParam in this tutorial.

@QueryParam helps us getting the Query Parameter which will be passed when we call the webservice.

Folder Structure

  1. Create a Dynamic Web Project RestfulExample and create a package for our src files “com.javainterviewpoint
  2. Place the required jar files under WEB-INF/Lib 

    jersey-bundle-1.18.jar
    asm-3.1.jar

  3. Create the Java classes QueryParam_Example.java under  com.javainterviewpoint folder.
  4. Place the web.xml  under the WEB-INF directory

@QueryParam Example

import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;

@Path("/QueryParamExample")
public class QueryParam_Example 
{
	@GET
	public Response getQueryParameters(
			@QueryParam("parameter1")String parameter1,
			@QueryParam("parameter2")List parameter2)
	{
		String output = "Parameter1 :"+parameter1+" Parameter2 : "+parameter2.toString();
		return Response.status(200).entity(output).build();
	}
}

Hit on the URI :
http://localhost:8080/RESTful_Example/rest/QueryParamExample?parameter1=”Java”&parameter2=”Interview”&parameter2=”Point”
Output

Parameter1 :"Java" Parameter2 : ["Interview", "Point"]

Here we have passed 2 values for “parameter2” its values is got using a list.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID" version="2.4">
 <display-name>Restful Web Application</display-name>
 <servlet>
 <servlet-name>jersey-serlvet</servlet-name>
 <servlet-class>
 com.sun.jersey.spi.container.servlet.ServletContainer
 </servlet-class>
 <init-param>
 <param-name>com.sun.jersey.config.property.packages</param-name>
 <param-value>com.javainterviewpoint</param-value>
 </init-param>
 
 <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>jersey-serlvet</servlet-name>
 <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>
</web-app>

We register our jersey container “com.sun.jersey.spi.container.servlet.ServletContainer” in the servlet-class of our web.xml and we will mention the source files location as the value to the init param “com.sun.jersey.config.property.packages” so that the container will scan for annotations of the class files within that package.

Leave a Reply

Your email address will not be published. Required fields are marked *