Hello Servlet

Merhaba arkadaşlar , bugün Servlet&Jsp yazı dizimizin üçüncüsü ile beraberiz.

Bugün ilk Servlet’imizi yazmış ve klasik olarak Hello Servlet demiş olucağız . Birazda web.xml yapısına bakınmış olucaz.

Ve ek olarak örnek açısından Servlet’imizde Remote Host ve Port numarasını da  olarak göstemiş olucaz.

* Hatırlayacagınız üzere javax.servlet ve javax.servlet.htpp paketlerinde servletleri yazmamızı sağlayan sınıflar bulunurdu.

* Unutmayacagımız diğer bir madde ise her Servlet’in javax.servlet.Servlet interface‘ni implement ettiğidir.Bu interface Servlet için lifecycle methodlarını tanımlar.

* Eğer genel service methodunu kullanmak istiyorsak sınıfımızı Servlet Api’de bulunan GenericsServlet sınıfından extends etmemiz gerekicektir.

* Genelde biz HttpServlet sınıfını kullanarak servlet’lerimizi olusturucaz.

* HttpServlet sınıfı özel Http methodlarını karşılamak için doGet() , doPost ve doXXX() gibi methodları tanımlar.

Öncelikle ilk Servlet’imizi daha dogrusu ilk projemizi nasıl oluşturucağımızı görsellerle pekiştirelim. İde olarak İntellij kullanıyoruz

 

Screenshot from 2014-08-21 23:45:50

* New Project -> Web Application -> Create web.xml seçili olsun -> Son olarak projeye bir ad verip Finish deyiniz.

* Projemiz olustuktan sonra bizi şöyle bir resim karşılıyor ;

Screenshot from 2014-08-21 23:53:51

 

* Bazı yerlere şimdilik takılmayalım . Sol tarafta HelloServlet adındaki projemiz gözukmekte ve src klasörü altında _03_MyServlet paketi görünmekte ve pakette bir adete MyServlet adında bir sınıf bulunmakta.

* Web klasöründe ise WEB-INF klasörü ve web.xml dosyası bulunmakta.(Şimdilik index.jsp sayfasını göz ardı edelim )

* Önce MyServlet Sınıfımıza bir bakalım ;

 

Yukarıdaki işlemelere bakalım biraz ;

* Öncelikle sınıf tanımlamamızdan görebileceğiniz gibi sınıfımız bir Servlet sınıfıdır ;

Hatırlayacagınız gibi Servlet’ler aslında bir Java sınıfından farksız degildir.

* doGet methodu ile Http methodlarında Get methodunu karşılıyor sınıfımız. Ek olarak ; Eğer bir form’da method tipi belirtilmez ise default olarak get methodu seçilir.

doGet() methodunun HttpServletRequest ve HttpServletResponse tipinde parametreler aldığına dikkat edelim. Bu iki obje ile işlemlerimizi gerçekleştiricez. Request ve response nesneleri sayesinde istek ve cevap’ları rahatlıkla elde edebiliyoruz .Daha sonradan detaylıca deginicez.

* Bir kaç String tanımlıyoruz

* Burdaki kod satırı ile de response’den akışa veri yazmak için bir PrintWriter nesnesi alıyoruz.

PrintWriter akışa yani cevap olarak response’ye text yazmamızı sağlıyor.

* Daha sonra remote host ve remote port’u alıp printwriter ile yazıyoruz ;

* Önemli bir noktaya geldik şuan arkadaslar ; Servlet sınıfıızı yazdıktan sonra yapacagımız ilk işlem bu servlet’mizi web.xml‘e kaydetmek olacaktır. Servlet Contaıner web.xml’e bakarak servlet’leri ve diper configure yada param özelliklerini okur.Eğer servlet’imizi web.xml’e kaydetmezsek 404 hatası alırız : ) . Biz kaydedelim

* Web.xml ;

* web-app etiketi içerisinde olacak yazacaklarımız . Bir servlet web.xml’de nasıl tanımlanır adım adım bakalım ;

  • <servlet> tag’ı ile Servlet’e bir ad verilir. Ve bu Servlet’e karşılık gelen Servlet sınıfı verilir. Tam paket adı verilmeli.
  • Daha sonra bu Servlet için  mapping(eşlemek) yapılır.
  • <servlet> ve <servlet-mapping> etiketleri arasında bulunan <servlet-name> değerlerinin aynı olması zorunludur.
  • Contaıner bu iki isim üzerinden servleti eşler.
  • Daha sonra Servletimiz için <url-pattern> ile url’de görünecek olan ismi belirtiyoruz.İsim size kalmış. Yanlız / ile başlanılması zorunludur.

* Tomcat’i run ettigimizde bizi şöyle birşey karşılıyor ,

Screenshot from 2014-08-21 23:32:30

* Url’den göreceginiz üzere <url-pattern> da verdigimiz isim görünmekte.

* Daha sonra HttpServlet ve web.xml‘e detaylıca bakınıcaz. Neden GenericsServlet extends edilmemeli ve neden service() methodu bizim tarafımızdan tanımlanmamalı gibi detaylara deginicez insaAllah .

* Şimdilik bu kadar arkadaşlar

* Kaynak kodlar : HelloServlet

* Bir sonraki yazıda görüşmek dileğiyle . ~ Alican Akkus

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

 

 

1325 Total Views 2 Views Today