Servlet Request Örneği

Merhaba Arkadaşlar,

Bu yazımda sizlerle ServletRequest sınıfı için basit bir örnek paylaşacağım.Öncelikle yeni bir paket ve servlet oluşturup tanımlarını yapalım.

Paket adı : Request

Servlet içerisinde ki sınıfın adı : RequestGetForm

RequestGetForm.java

package Request;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class RequestGetForm extends HttpServlet {
 
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
    	// servlet içinde döndüreceğimiz parametreler
    	String isim = request.getParameter("isim");
        String soyisim = request.getParameter("soyisim");
        String cinsiyet = request.getParameter("cinsiyet");
        String medenidurum = request.getParameter("medenidurum");
        String takim = request.getParameter("takim");
        String[] pdilleri = request.getParameterValues("pdilleri");//birden fazla programlama dili seçilir
        isim=ilkharf(isim);
        PrintWriter yazici = response.getWriter();
        
        yazici.print("<html><body> ");
        
        
        yazici.print("Adi : " + ilkharf(isim) + "<br>");
        yazici.print("Soyadi : " + soyisim.toUpperCase() + "<br>");
        yazici.print("Cinsiyeti : " + cinsiyet + "");
        yazici.print("Medeni Hali : " + medenidurum + "<br>");
        yazici.print("Tuttugu takim : "+takim + "<br>");
        // Programlama dillerinde birden fazla seçilme ihtimaline karşılık yapıldı.
        if (pdilleri != null) {
        	yazici.print("<br>");
        	yazici.println("Bildigi Programlama Dili (Dilleri)  :");
        	 yazici.print("<br>");
            for (String str : pdilleri) {
                yazici.print(str + "<br>");               
            }
        }
        yazici.print("</body> </html>");
 
       /* Enumeration paramNames = req.getParameterNames();
        while (paramNames.hasMoreElements()) {
            String paramName = paramNames.nextElement();
            System.out.println(paramName);
        }*/
 
    }
    public static String ilkharf (String isim){    
    	    if(isim.length() == 0)
    	        return isim;
    	    return isim.substring(0, 1).toUpperCase() + isim.substring(1).toLowerCase();
    	  	 
    }
}

Projemize yeni HTML dosyası ekleyeceğiz.Bunun için projemize sağ tıklayıp New–>Html File yolunu izliyoruz.

formGet.html

<html>
<body> 
    <form id="form1" action="requestgetform" method="get">
    <div>              
    </div> 
    <table id="table1" cellspacing="5px" cellpadding="5%";>
       <tr>
              <td align="right">Isim:</td>
              <td><input type="text" name="firstName" /></td>
       </tr>
       <tr>
              <td align="right">Soy Isim:</td>
              <td><input type="text" name="lastName" /></td>
       </tr>
        <tr>
              <td align="right">Cinsiyet</td>
              <td>
                    <select name="gender">
                        <option value="Bay" selected="selected">Bay</option>
                        <option value="Bayan">Bayan</option>
                     </select>
                </td>
       </tr>
       <tr>
              <td align="right">Medeni Hal</td>
              <td>
                    <input type="radio" name="marital status" value="Bekar" />Bekar
                    <input type="radio" name="marital status" value="Evli" /> Evli
                    <input type="radio" name="marital status" value="Dul" />Dul
                    <input type="radio" name="marital status" value="Javaci" />Javaci :)
            </td>
       </tr>
 
        <tr>
              <td align="right">Diller</td>
              <td>
                    <input type="checkbox" name="lang" value="Java" /> Java
                    <input type="checkbox" name="lang" value="C" />C
                    <input type="checkbox" name="lang" value="C++" />C++
                </td>
       </tr>        
        <tr>
                <td> 
                    <input type="submit" value="Submit"/> 
                </td>
        </tr>
</table> 
    </form>
</body>
</html>

Sınıfımızın servlet tanımlarını web.xml dosyamıza ekleyelim.

web.xml

<servlet>
    <servlet-name>RequestGetForm</servlet-name>
        <servlet-class>Request.RequestGetForm</servlet-class>
    </servlet>
    <servlet-mapping>
   <servlet-name>RequestGetForm</servlet-name>
   <url-pattern>/requestgetform</url-pattern>       
</servlet-mapping>

Kendinize iyi bakın.

Esenlikle kalın.

Bir sonraki yazıda görüşmek üzere.

Reklamlar

Merhaba Servlet Dünyası

Merhaba Arkadaşlar,

Bu yazımda sizlere Eclipse üzerinde “Dynamic Web Project” nasıl oluşturulur ve ilk uygulamamız olan “HelloServlet”in yapım aşamalarını anlatacağım.

Öncelikle sizlere bu uygulamaları yapabilmek için Eclipse IDE for JAva EE Developers versiyonunu indirmiş olmanız gerektiğini hatırlatmak istiyorum. Servlet Container olarak kullandığımız Apache Tomcat kurulumunu başarıyla gerçekleştirdikten sonra yeni proje oluşturuyoruz.

Bunun için File –> New –> Project yolunu izliyoruz.

proje oluşturma-1

Next dedikten sonra proje ismimizi giriyoruz. Yapılmamış ise Tomcat ayarlarımızı yapıyoruz. İki defa Next butonuna bastıktan sonra;

proje oluşturma-2

 

Gelen ekranda boş checkbox’a tıklıyoruz ve web.xml’i projemize dahil ediyoruz. Finish  dedikten sonra Eclipse’in Project Explorer kısmı aşağıdaki gibi olacaktır.

proje oluşturma-3

 

web.xml dosyamızı otomatik olarak oluşturmuştuk. web.xml dosyasına Deployment Descriptor ( Dağıtım Açıklayıcısı ) denilmektedir.Şimdi ilk uygulamamıza başlayabiliriz. İlk önce bir paket ve sınıf oluşturuyoruz.

Paket adı: HelloServletWorld 
Sınıf adı: HelloServletWorldClass

HelloServletWorldClass.java

package HelloServletWorld;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class HelloServletWorldClass extends HttpServlet {
	
	
 
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //eğer methodta exception varsa fırlat demek
        PrintWriter pw = resp.getWriter();
        Date today = new Date();
        String msg = "Merhaba Servlet Dunyasi";
 
        pw.print(msg);
        pw.print("Bilgisayarin Tarihi:" + today);
        pw.print("Blogum (WordPress):  ");       
 
    }    
 
}

Sınıfımız HttpServlet sınıfını kalıtmaktadır. HttpServlet sınıfı da yine GenericServlet sınıfını kalıtmaktadır. Olusturdugumuz Servlet’in tanimlamasini web.xml dosyamizda gerceklestirelim.

web.xml

<servlet>
    <servlet-name>HelloServletWorld</servlet-name>
        <servlet-class>HelloServletWorld.HelloServletWorldClass</servlet-class>
    </servlet>
    <servlet-mapping>
   <servlet-name> HelloServletWorld </servlet-name>
   <url-pattern>/helloservletworld</url-pattern>       
</servlet-mapping>

<web-app etiketindeki uzun etikete takılmayalım, burada önemli olan <servlet> ve <servlet-mapping> etiketleridir.

<servlet> etiketi içerisinde <servlet-name> etiketi yer almaktadır. <servlet-name> tagı içerisine istediğiniz ismi verebilirsiniz.

<sevlet-class> etiketi yardımı ile paket + sınıf ismini yazıyoruz. Burada bir hata yapılırsa Servlet Container , sınıfımızı bulamayacaktır.

<servlet-mapping> etiketinde <servlet-name> alanına url tanımlaması yapacağımız Servlet ismini veriyoruz. Burada dikkat ederseniz önceki tanımladığımız <servlet-name> etiketindeki isim ile ayni isme sahiptir.

<url-pattern> etiketi yardımı ile Servlet’in url tanımlamasını yapıyoruz. / ile başladığına dikkat edelim.

Şimdi sınıfımıza sağ tıklayarak Run as –> Run on Server diyerek çalıştırıyoruz.

blog

Karşımıza gelen menüde Finish i tıklayalım ve Servlet dünyasına giriş yapalım.

blog2

Ve artık Servlet Dünyasına Merhaba dedik.

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

Kendinize iyi bakın.

Esenlikle kalın.

KISSADAN HİSSE SERVLET

Merhaba Arkadaşlar,

Bu yazı dizimde kısa kısa notlar ve yaptığım uygulamalar üzerinden sizlere Java Servlet’i anlatmaya çalışacağım.Önce sizlere temel kavramlar üzerinden Servlet’i tanıtacağım.

Öncelikle “Servlet nedir?” ondan başlayalım. Servlet, Java EE‘de bir java sınıfı olup HTTP istemlerine cevap vermek için kullanılır. Servlet sınıfı içerinde yer alan GET ve POST methodları bunu sağlayan methodlardandır.

scenario2

 

GET methodunun temel amacı; Sunucuya (server) istenen kaynağı sormak ve varsa bu kaynağı getirmektir. POST methodunun temel amacı ise; sunucuya (server) “form” dosyası göndermektir.

O kadar server dedik sunucu dedik gelin birazda sunucudan bahsedelim. Sunucu, istemcinin (client) isteğini (request) karşılar (handle). Bu isteğe karşılık gelen cevabı (response) geri gönderir. Bunun yanında istemci ile servlet arasında etkileşimi sağlayan bir diğer araç olarak Servlet Motoru (Servlet Container,Servlet Engine) vardır. Ben yapacağım çalışmalarda Container olarak (aynı zamanda server) APACHE TOMCAT, işletim sistemi olarak da UBUNTU kullanacağım.

sevjafjr

Son olarak Servlet Motoru’nun görevlerine değinecek olursak;

  • İletişimi sağlar (İstemci-Server)
  • Yaşam Döngüsü (lifecycle) Yönetimi sağlar.
  • Çoklu kullanım desteği sağlar.
  • Bildirimsel güvenlik sağlar (web.xml)
  • JSP desteği sağlar.

Bu kadar tanım bu aşamada yeterli sanırım 🙂 Gelecek yazımda sizlerle yazılım dünyasının vazgeçilmez ilk uygulamasını “Hello World ” yapacağız.

Kendinize iyi bakın.

Esenlikle kalın.

Bir sonraki yazıda görüşmek üzere.