crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
Java Servlets ve JSP: Web'in Atası
1. Java Servlets: İş Mantığının Kalbi
Bir Servlet, bir web sunucusunda (Tomcat, Jetty vb.) çalışan ve istemciden (tarayıcı) gelen HTTP isteklerini alıp işleyen, ardından bir yanıt (Response) dönen Java sınıfıdır.
Nasıl Çalışır? Tarayıcıdan bir istek geldiğinde, sunucu bu isteği ilgili Servlet'e yönlendirir. Servlet veritabanına bağlanabilir, hesaplama yapabilir ve sonucu HTML olarak geri gönderir.
Dezavantajı: Java kodu içine HTML yazmak zorunda kalırsınız (out.println("<html>...")), bu da tasarımı yönetmeyi imkansız hale getirir.
Java:
@WebServlet("/merhaba")
public class MerhabaServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Merhaba Dünya!</h1>"); // Java içinde HTML!
}
}
2. JSP (JavaServer Pages): Görselliğin Gücü
JSP, Servlet'in tam tersi bir mantıkla çalışır. HTML kodunun içine Java kodları yerleştirmenize olanak tanır.
Nasıl Çalışır? Bir JSP dosyası ilk kez çağrıldığında, sunucu onu otomatik olarak bir Servlet'e dönüştürür ve derler. Yani JSP, aslında "süslenmiş" bir Servlet'tir.
Avantajı: Tasarımcılar HTML ile çalışırken, geliştiriciler sadece gerekli yerlere Java mantığını ekleyebilir.
Kod:
<html>
<body>
<h2>Sisteme Hoş Geldin!</h2>
<%-- Java Kodu --%>
<% String kullanici = "Ahmet"; %>
<p>Bugünün tarihi: <%= new java.util.Date() %></p>
</body>
</html>
3. Servlet vs JSP Karşılaştırması
| Özellik | Servlet | JSP |
|---|---|---|
| Temel Yapı | Java Sınıfıdır. | HTML tabanlıdır. |
| Kullanım Amacı | İş mantığı ve veri işleme. | Kullanıcı arayüzü (Sunum). |
| Hız | Daha hızlıdır (Zaten derlenmiş). | İlk çalışmada yavaştır (Derleme gerektirir). |
| Bakım | HTML tasarımı zordur. | Java kodu arttıkça karmaşıklaşır. |
4. MVC (Model-View-Controller) Yapısı
Profesyonel projelerde Servlet ve JSP beraber kullanılır. Buna MVC Mimarisi denir:
Controller (Servlet): İsteği alır, veriyi işler.
Model (Java Sınıfı): Veriyi temsil eder (Örn: Kullanici nesnesi).
View (JSP): Sonucu kullanıcıya şık bir şekilde gösterir.
Sonuç
Bugün Spring MVC gibi teknolojiler bu süreci bizim için otomatikleştirse de, bir DispatcherServlet'in ne olduğunu bilmek sizi sıradan bir kod yazıcıdan gerçek bir mühendise dönüştürür. Temelleri anlamak, hataları (debug) bulma hızınızı 10 kat artırır.