Form ile Servlet’e Data Yollamak

Form ile Servlet’e Data Yollamak

* Merhaba arkadaşlar , Servlet&Jsp yazılarımıza 4.cü yazı ile devam ediyoruz.

Bugün bir Html form’u üzerinden Servlet’imize nasıl veri yollarız , Servlet’imizi bu veriyi nasıl alır ve Htpp methodları hakkında bir yazı olucak.

* Bir senaryo üzerinden gidecek olursak eğer ;

  • Kullanıcıya gösterecegimiz Html form’umuzu tasarlayıp kullanıcıdan veri girmesini isteyeceğiz.
  • Html formumuzun action kısmında tetiklenecek olan Servlet’imizin adını vericez.
  • Html formumuzun method parametresini ayarlıyacağız.
  • Servlet’imizide bu method tipine göre doGet() , doPost() gibi methodları tanımlayacağız.
  • ServletRequest arabirimi sayesinde ise gelen request bilgilerini alıp herhangi işlem yapıp response olarak cevap döneceğiz.

* Öncelikle Html formumuzu tasarlayalım , formumuz basit olarak html element’lerinden olusan basit bir form olucak. Şöyle ki ;

* Html formunda dikkat etmemiz gereken birkaç husu ;

  • Formumuzda bulunan action özelliğinde bu formu karşılayacak olan Servlet’in url’sini yazmamız gerekmekte.
  • Method tipi olarak ise get yada post yazmamız yeterli.Bu methoda göre Servlet sınıfımızda doXXX() methodunu yazmalıyız.
  • <input> etiketi içindeki name özelliğindeki değer ile Servlet sınıfında bu veriyi almış olucaz.

Birkaç ek bilgi ;

  • Eğer method tipi belirtmez isek default olarak Htpp get methodu çalışıtırılır.
  • Method tipi olarak get yada post verip Servletimizde ona karşılık gelen doXXX() methodunu yazmazsak method not support gibi hata alırız

Şimdi de form’umuzu karşılaycak olan Servlet’imize bakalım ;

Servlet’imizde neler yaptık bir bakalım ;

  • İlk olarak response olarak bir html/text  tipinde veri döndüreceğimizi belirttik .Döndüreceğimiz veri pdf,png yada başka MIME tipi veri olabilir.
  • ServletRequest arabiriminin sağladığı getParamater(String) ile request üzerinden form elemanlarına ulaştık ve verilerimizi aldık. Burada dikkat etmemiz gereken nokta <input> etiketinde name özelliğine verdimiz deger üzerinden ulaştık.Eğer böyle bir value ile eşleşmez ise null döner.
  • Burada atlamayacağımız bir nokta ise getParamaterValues(String) methodudur .Eğer birden fazla value varsa bize bunları bir dizi olarak döner.Örneğimizde diller birden fazla değer içerdiği için bunu kullandık.
  • Daha sonra response’den akışa yazmak için PrintWriter nesnesi alıp bilgileri dönüyoruz.

Sonuçlar ;

Screenshot from 2014-08-23 14:12:50 Screenshot from 2014-08-23 14:18:55

 

 

 

 

 

 

 

 

 

 

 

 

 

* Yukarıda dediğimiz gibi eğer method olarak belirlediğimiz Http tipine(get,post) Servletimizde yer vermezsek hata almış olucaz. Bunu form’daki method tipini get yaparak görebilirsiniz ;

Screenshot from 2014-08-23 14:19:36

 

* Servletimizin doGet() methodu olmadıgı icin boyle bir hata aldık.

* Eğer form ve Servlet’imizde get methodu ile çalışırsak , url’de parametreleri görebiliriz şöyle ki;

http://localhost:8080/ServletForm?ad=Mert&soyad=Celtikoglu&dil=Turkce&dil=Ingilizce

* Güvenlik bakımında post >> get .

* Post methodunda ise request parametreleri görünmez. Bir login sayfası için get methodunu tercih etmek pek akıllıca değil

* Son olarak web.xml dosyamızı da verelim ;

Yazımızın sonuna geldik arkadaslar , bir sonraki yazıda görüşmek dileğiyle . ~ Alican Akkus

Mutlu kalın , kod’la kalın ve bol bol Çay için

 

1357 Total Views 1 Views Today