Merhaba arkadaşlar bu yazımda RESTful Service form üzerinden veri göndereceğiz.Bunun için servis üzerinde POST metodunu kullanacağız.Yeni bir proje oluşturalım ve başlayalım.
1)İlk olarak pom.xml dosyamız içerisinde dependencies taglarını ekleyerek Jersey bağımlılıklarımızı ekleyelim.
[code lang=”xml”]
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>0002-com.enesbyc-RESTful-Form</groupId>
<artifactId>0002-com.enesbyc-RESTful-Form</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!– https://mvnrepository.com/artifact/com.sun.jersey/jersey-server –>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<!– https://mvnrepository.com/artifact/com.sun.jersey/jersey-core –>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.19</version>
</dependency>
<!– https://mvnrepository.com/artifact/com.sun.jersey/jersey-servlet –>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.19</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
[/code]
2)Ardından web.xml dosyamız içerisinde jersey kullanacağımızı belirtelim.
[code lang=”xml”]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>0002-com.enesbyc-RESTful-Form</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.enesbyc</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>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
[/code]
3)Projemize sağ tıklayıp New->Other->JSP File seçerek index.jsp dosyamızı ekleyelim.Bu jsp dosyamız içerisinde bir form oluşturalım ve bu form sayesinde web servisimiz üzerine veri gönderelim.Gönderdiğimiz verilerin name alanlarını web servis üzerindeki ile aynı olmasına dikkat edelim.
[code lang=”html”]
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!– Formun post islemi yapacagini belirtiyoruz. –>
<!– url kismina /rest/send yazilmasini sagliyoruz
bu sayede /rest/send url’ine input alanlari gonderilecek.–>
<form action="rest/send" method="post">
<table>
<!– Web servise productName ve productPrice isminde gönderilmesini sagliyor. –>
<tr>
<td>Product Name</td>
<td><input type="text" name="productName" /></td>
</tr>
<tr>
<td>Product Price</td>
<td><input type="text" name="productPrice" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Send" /></td>
</tr>
</table>
</form>
</body>
</html>
[/code]
4)Servis sınıfımızı oluşturalım ve içerisinde gerekli düzenlemeleri yapalım.
[code lang=”java”]
package com.enesbyc;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
//Url kismina /rest/send geldiğinde yapilacaklari belirtiyoruz.
@Path("send")
public class Service {
//Url kismina /rest/send geldiğinde post işleminde yapilacaklari belirtiyoruz.
//ProductName ve ProductPrice değerlerini FormParam etiketi ile aliyoruz.
//Burada formdan gönderdiğimiz name değerleri ile aliyoruz.
@POST
@Produces(MediaType.TEXT_PLAIN)
public Response sendService(@FormParam("productName") String productName,
@FormParam("productPrice") int productPrice){
String result="Product Name:"+productName+" Product Price:"+productPrice;
return Response.status(200).entity(result).build();
}
}
[/code]
5)Projemizi çalıştıralım ve karşımıza çıkan index.jsp içerisindeki formumuzu dolduralım.Daha sonra verileri gönderdiğimizde web servisimiz üzerinden formdaki gönderdiğimiz verileri ekranda çıktı olarak göreceğiz.

Bir sonraki yazımda görüşmek üzere…