İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Servletler ile ilgili sınıflar

Bir HTTP servleti yazmak demek HttpServlet sınıfını genişletmek ve doGet() veya doPost() yöntemlerinden birini yeniden yazmak demektir. Bir formdan bir kişinin adını alıp ona merhaba diyen servlet aşağıdaki gibi yazılabilir :

Göster Gizle Kopar Satır Gizle Satır Göster
  1 class MyServlet extends HttpServlet{
  2   public void doPost(HttpServletRequest request, HttpServletResponse response){
  3     String name=request.getParameter("isim");
  4     OutputStream out=response.getOutputStream();
  5     out.println("<HTML><BODY>");
  6     out.println("Merhaba "+ name);
  7     out.println("</BODY></HTML>");
  8     out.close();
  9   }
 10 }

Burada stardart HttpServlet sınıfı genişletilmekte ve doGet yüntemi yeniden yaılmaktadır. HttpServletRequest sınıfının getParameter yöntemiyle "name" adlı parametre alınmaktadır. Bu gibi parametreler HTML belgelerinde bulunan Form’ların içindeki bazı girdi bileşenlerinden gelmektedir. Buradaki HTML belgesi içerinde ACTION özelliği olarak sözkonusu servletin URL’ini veren bir FORM elemanın bulunduran herhangi bir belge olabilir. Bu formu SUBMIT düğmesi tıklanınca yukarıdaki serlvet devreye girer. Elbette form içinde name özelliği olarak "isim" verilmiş bir girdi elemanı (type özelliği text olan bir input elemanı ) bulunmalıdır. Aksi takdirde getParameter yöntemi null değeri döndürür. Formda method özelliği de POST olarak belirtilmelidir. Yukarıdaki servlet te doGet yöntemi de benzer bir biçimde yeniden yazılabilir. Servletler açısından genellikle isteğin GET veya POST yöntemiyle gemesi fark etmediğinden doGet yönteminde sadece doPost istek ve yanıt iletilerek çağrılabilir.

HttpServletResponse sınıfına ait getOutputStream yöntemiyle ServletOutputStream sınıfı alınır. Bu akım (stream) çıkış olarak üretiletek HTML ifadelerinin yazılmasında kullanılır. Gerekli elamanlar yazıldıktan sonra akım close() yöntemiyle kapatılır. Üretilen HTML’in geçerli bir HTML olup olmaması (örneğin <body> etiketinin unutulması) hiç bir doğrulama sözkonusu olmadığından servlet açısından hiç bir sorun yaratmaz. Ancak üretilen belge tarayıcıda doğru bir biçimde görünmeyeceğinde servlet doğru çalışmamış sayılır.

İstendiğinde servletin örneği yaratıldığı anda yapılması gereken ileri belirtmek içim init() adlı yöntem de yeniden yazılabilir. Benzer bir biçimde, servletin devreden çıkartılacağı durumda yapılması gerekenleri belirmek için destroy() yöntemi de yeniden yazılabilir.

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır