Restful Web Services (JAX-RS) @FormParam notasyonu (annotations) ile bir web form sayfasında gönderilen değerlerin elde edilmesini sağlarız. Diğer örnekleirmizde olduğu gibi hemen Maven’da oluşturduğumuz projenin web.xml ve pom.xml ayarlarını yapalım.
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 |
... <dependencies> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.8</version> </dependency> </dependencies> ... |
web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <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>org.onurarslan.rest</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> |
index.html
1 2 3 4 5 6 7 8 9 |
<html> <body> <form action="rest/user/add" method="post"> <p>Ad Soyad: <input type="text" name="name" /></p> <p>Yaş: <input type="text" name="age" /></p> <input type="submit" value="Add User"> </form> </body> </html> |
index.html de oluşturduğumuz form aracılığı ile Ad Soyad ve Yaş değerlerini web servisin rest/user/add adresine gönderiyoruz.
FormParam_UserRestService.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.Response; @Path("/user") public class FormParam_UserRestService { @POST @Path("/add") public Response addUser(@FormParam("name") String adSoyad, @FormParam("age") int yas) { return Response.status(200).entity("Ad Soyad: " + adSoyad + "\nYas: " + yas).build(); } } |
Yukarıda ki sınıfta /user/add yoluna http yöntemi post olan veriler gönderildiğinde addUser metodu çalışacaktır. Bu method bu istekte 2 adet form parametresi almaktadır. @FormParam ile tanımlanan name ve age index.html den gelen değerlerdir. Bu değerleri sırasıyla adSoyad ve yas değişkenleri tutmaktadır. Metot sonunda bu değerler ekrana yazdırılmaktadır.
URI: rest/user/add
1 |
Ad Soyad: onur Yas: 21 |
index.html’de form verileri girildikten sonra Add User tıklandığında ekrana yukarıda ki yazı gelmektedir.