Hazırlayan
Destan Sarpkaya
destan@dorukdestan.com
web.xml
kullanmadan, yalnızca @WebServlet
annotasyonu ileBir web sayfası açmak istediğimizde neler olur?
http://wikipedia.org adresini tarayıcımıza yazdık, entera bastık. Ne oldu?
index.html
dosyası onu isteyen her kullanıcı için her zaman aynı biçimde gidecektir. java
sözcüğünü aradık.Dinamik içerik üretme sorununu sunucu tarafında uygulama yazarak çözmemizi sağlayan dillerden bazıları:
Dinamik içerik üretme sorununu her dil farklı biçimde çözer.
Dinamik içerik üretme sorununa Java'nın getirdiği çözümdür.
Tamam tamam Türkçesi de var :)
En az 2 kez okumak gerekiyor :/
Bunu unutmayalım.
package com.example.hello;
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 HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<h1>Hello world</h1>");
}
}
Tahmin edebileceğiniz gibi bu servlet tarayıcınıza yalnızca Hello world
yazılı bir sayfa getirecek.
Resmi tanımı dikkatli okursak farkederiz ki,
response
olarak HTML döndürmek zorunda da değilAncak biz bu derste HTTP kullanan ve HTML döndüren servletlere odaklanacağız.
main
method nerede?main
method yazmayız
Servletin yaşam döngüsü deploy edildiği (yüklenildiği) servlet container tarafından denetlenir.
Bir istek bir servlete yönlendirildiği zaman, servlet container şu adımları yapar:
initialize
methodunu çağırarak servlet instansını hazırlarservice
methodunu çağırır, request ve response nesnelerini parametre olarak verir.destroy
methodunu çağırır ve ardından servleti sonlandırır (servlet container hafızada yer açmak isteyince veya container kendisi de kapanıyorken)