Jax-rs uri matching example

RESTful web services:

REST stands for REpresentational State Transfer. Unlike SOAP it is a web standards based architecture and not protocol. It uses HTTP protocol for data communication. REST provides the facility to represent a resource in various formats like text, JSON and XML.

Note: JSON is the most popular format.

Jax-rs uri matching jersey example

TestWS.java

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.MediaType; 
 
@Path("/helloTest")
public class TestWS {
 @GET
 public Response getMassege1() {		 
  String output = "RESTful WS Jersey example. Hello World."; 
  return Response.status(200).entity(output).build(); 
 }
 
 @GET
 @Path("/world")
 @Produces(MediaType.TEXT_PLAIN)  
  public Response getMassege2() {		
  String output = "RESTful WS Jersey example. Hello World."; 
  return Response.status(200).entity(output).build(); 
 }
 
 @GET
 @Path("/{param}")
 @Produces(MediaType.TEXT_PLAIN)  
  public Response getMassegeWithParam(@PathParam("param") String msg) { 
  String output = "RESTful WS Jersey example. Hello " + msg; 
  return Response.status(200).entity(output).build(); 
 }
 
 @GET
 @Path("{id : \\d+}")
 @Produces(MediaType.TEXT_PLAIN)  
  public Response getMassegeWithParamRegex(@PathParam("id") String id) {
  String output = "RESTful WS Jersey example. Hello your id is : " + id; 
  return Response.status(200).entity(output).build(); 
 }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>	
  <servlet>
  	<display-name>JAX-RS REST Servlet</display-name>
  	<servlet-name>JAX-RS REST Servlet</servlet-name>
  	<servlet-class>
  	 com.sun.jersey.spi.container.servlet.ServletContainer
  	</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>JAX-RS REST Servlet</servlet-name>
  	<url-pattern>/services/*</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

index.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>WS Test</title>
  </head>
 
  <body>
   <a href="services/helloTest">Normal URI Matching (Class level)
   </a> 
   <br/>
   <a href="services/helloTest/world">Normal URI Matching (Method level)
   </a> 
   <br/>
   <a href="services/helloTest/jai">URI Matching and Parameter
   </a> 
   <br/>
   <a href="services/helloTest/04">URI Matching and Regular Expression
   </a> 
  </body>
</html>

Output:

jax-rs example2.1
 
Click on “Normal URI Matching (Class level)” link.
jax-rs example2.2
 
Download this example.