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

Servlet Class'ı

Servlet Yazmak

Servlet yazmak, HttpServlet class'ını extend etmek demektir. 'Get' method'uyla çalışan bir servlet yazmak için doGet() methodu override etmek gerekir. Bir browser'dan çağrıldığında ekrana "Merhaba" yazan bir servlet yazalım.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 import  javax.servlet.http.*;
  2 import  java.io.*;
  3 public class GreeterServlet extends HttpServlet{
  4         public void doGet(HttpServletRequest request,HttpServletResponse response)
  5                 throws IOException
  6         {
  7     PrintWriter out=response.getWriter();
  8     out.println("<html>");
  9     out.println("<body>");
 10     out.println("Merhaba!");
 11     out.println("</body>");
 12     out.println("</html>");
 13   }
 14 }

Görüldüğü gibi client'a gelecek bütün HTML, programcı tarafından output'a basılması gerekir. Response'a HTML basmak ancak getWriter() method'uyla bir PrintWriter elde edilerek yapılabilir. PrintWriter class'ı Java'nın standart I/O package'inde bulunan bir nesnedir. Her hangi bir writer'a yazmaktan bu işlemin hiç bir farkı yoktur.

Bir servletin çalıştırılması için Application Server'ın çalışır durumda olması gerekir. Bir server'ın 'localhost'ta 8080 portunda çalıştığını varsayarsak, bir tarayıcıda

http://localhost:8080/servlet/MyServlet

girilirse, sonuç olarak bir web sayfası görülür. Gerçek bir uygulamada mutlaka 'www.myhost.com' gibi bir hostname, (HTTP'nin default) 80 portunda çalışan ve tam class adı com.mypackage.servlet.MyServlet olan bir servlet için bu URL

http://www.myhost.com/servlet/com.mypackage.MyServlet

olacaktır.

Get Method'unda Parametre'ler

Get methoduyla çalışan bir servlete parametre

http://localhost:8080/servlet/MyServlet?name1=value&name2=value2

biçiminde aktrarılır.İki sayıyı toplayıp sonucu ekrana basan bir servlet yapalım.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 import javax.servlet.*;
  2 import javax.servlet.http.*;
  3 import java.io.*;
  4 public class AdderServlet extends HttpServlet{
  5         public void doGet(HttpServletRequest request,HttpServletResponse response)
  6                 throws IOException
  7         {
  8     PrintWriter out=response.getWriter();
  9     out.println("<html>");
 10     out.println("<body>");
 11     String number1=request.getParameter("num1");
 12     int a=Integer.parseInt(number1);
 13     String number2=request.getParameter("num2");
 14     int b=Integer.parseInt(number2);
 15     int sum=a+b;
 16     out.println("Toplam : "+sum);
 17     out.println("</body>");
 18     out.println("</html>");
 19   }
 20         
 21 }

Bu servleti çağırmak için de

http://localhost:8080/servlet/AdderServlet?num1=5&num2=11

biçimide bir URL girilir.

Parametrelerden birinin girilmemesi veya yanlış isimle girilmesi durumunda servlet çalışmayacaktır. O yüzden servlete şu şekilde bir kontrol yapılmalıdır.

String number1=request.getParameter("num1");
if(number1!=null){
	out.println("İlk sayı verilmedi");		
}

Post Method'u

Bir servlet'in 'Post' method'uyla çağrılarak çalıştırılabilmesi için, doPost method'unun override edilmesi gerekir. Post methodu' genellikle formlar'la kullanıldığı için, servlet'i içeren URL'in bir HTML form'unda 'action' olarak belirtilmesi gerekir. Girilen boy ve cinsiyete karşı ideal kilonuzu hesaplayan bir servlet yazalım.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 import javax.servlet.*;
  2 import javax.servlet.http.*;
  3 import java.io.*;
  4 public class IdealWeightCalculatorServlet extends HttpServlet{
  5   public void doPost(HttpServletRequest request,HttpServletResponse response)
  6     throws IOException
  7   {
  8     PrintWriter out=response.getWriter();
  9     out.println("<html>");
 10     out.println("<body>");
 11     String t=request.getParameter("tallness");
 12     int tallness=Integer.parseInt(t);
 13     String sex=request.getParameter("sex");
 14     int ideal=0;
 15     if(sex.equals("male")){
 16       ideal=(tallness-50)/2;
 17     }else{
 18       ideal=(3*tallness-350)/4;
 19     }  
 20     out.println("İdeal Kilo : "+ideal);
 21     out.println("</body>");
 22     out.println("</html>");
 23   }
 24 }

Bu servlet'i çağıracak form'u içeren HTML de şu şekilde olabilir :

<!-- idealweight.html -->
<html>
<body>
	<form action="http://localhost:8080/servlet/IdealWeightCalculatorServlet" method="post">
		<br> Boy :<input type="tallness" type="text">
		<br> Cinsiyet : Kadın <input type="sex" type="radio" value="male"/>
				<input type="sex" type="radio"value="female"/>
	</form>
</body>
</html>

Dosya Listesi

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