Request – 02

Merhaba Arkadaslar,
Bu bolumde request konusuna devam edecegiz. ServletRequest ve HttpServletRequest arabirimlerinde bulunan metotlari incelemeye devam edecegiz

Ornek Uygulama

Bu ornek uygulamamizda yeni bir sinif olusturacagiz bir onceki paketi kullanabiliriz.

Sinifimiz ;
MoreRequestMethod

Deployment descriptor(web.xml) dosyamizda yeni servlet sinifimiz icin tanimlama yaplim.

	<servlet>
		<servlet-name>MoreRequestMethod</servlet-name>
		<servlet-class>_05_Request.MoreRequestMethod</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>MoreRequestMethod</servlet-name>
		<url-pattern>/morerequestmethod</url-pattern>
	</servlet-mapping>

Continue reading Request – 02

08 Request – 01

Merhaba Arkadaslar,
Bu yazimda javax.servlet.http.HttpServletRequest ve javax.servlet.ServletRequest arabirimlerinin bizim icin sagladigi metotlari inceleyecegiz. Bu metotlarin sayisi bir hayli fazla olmakla beraber burada bazilarini listeleyecegim ve bunlarin da bir kismini bu yazida inceleyecegiz.

ServletRequest

ServletRequest arabirimi javax.servlet paketi altinda bulunmaktadir.
ServletRequest arabiriminde tanimlanmis bazi metotlar sunlardir

public Object getAttribute(String name);
public Enumeration<String> getAttributeNames();
public int getContentLength();
public ServletInputStream getInputStream() throws IOException;
public String getParameter(String name);
public Enumeration<String> getParameterNames();
public String[] getParameterValues(String name);
public Map<String, String[]> getParameterMap();
public int getServerPort();
public int getLocalPort();
public int getRemotePort();

HttpServletRequest

HttpServletRequest arabirimi , ServletRequest arabirimini kalitir. Hatirlayacagimiz gibi Java da bir arabirim diger bir
arabirimi kalitabilir. HttpServletRequest , javax.servlet.http paketi altinda bulunur.
HttpServletRequest arabiriminde tanimlanmis bazi metotlar sunlardir.

public Cookie[] getCookies();
public String getHeader(String name);
public Enumeration<String> getHeaders(String name);
public int getIntHeader(String name);
public Enumeration getHeaderNames();
public String getContextPath();
public String getQueryString();
public HttpSession getSession();

Continue reading 08 Request – 01

07 ServletContext

Merhaba Arkadaslar,
Bir onceki yazida ServletConfig ve metotlarini inceleik. Bu bolumde ise ServletContext arabiriminden ve metotlarindan bahsedecegiz.

ServletContext

Onceki yazida ServletConfig yardimi ile servletin init parametrelerine ulasmistik. Peki bu init parametreler sadece bir servlet icin degil tum uygulamamiz icin olamaz mi ? Tabi ki olabilir, bu init parametrelere de context init parameter denilir.

Context init parametreleri ayni servlet init parametreleri gibidir sadece tum servlet ve jsp dosyalari bu parametrelere ulasabilir.

Context init parametlerine ulasabilecegimiz metotlarla birlikte ServletContext icerisinde bir cok metot yer almaktadir. Bu bolumde bu metotlarin bir kismini inceleyecegiz.

public String getInitParameter(String name);
public Enumeration<String> getInitParameterNames();
public Object getAttribute(String name);
public Enumeration<String> getAttributeNames();
public void setAttribute(String name, Object object);
public void removeAttribute(String name);
public int getMajorVersion();
public String getServerInfo();
public String getRealPath(String path);
public String getServletContextName();
public String getContextPath();
public InputStream getResourceAsStream(String path);
public RequestDispatcher getRequestDispatcher(String path);

Her servlet icin bir ServletConfig objesi vardir.
Tum proje/wepapp icin sadece bir ServletContext objesi vardir.

Eger dagitik/distributed bir uygulamamiz varsa bu durumda her JVM icin bir ServletContext ve her JVMdeki ilgili Servlet objesi icin de bir ServletConfig objesi olacaktir.

Eger dagitik/distributed bir uygulamamiz varsa bu durumda her JVM icin bir ServletContext ve her JVMdeki ilgili Servlet objesi icin de bir ServletConfig objesi olacaktir.

Continue reading 07 ServletContext

06 – ServletConfig

ServletConfig

ServletConfig arabirimi/interface,  javax.servlet paketi/package altinda tanimlanmistir ve su metotlara sahiptir.

public String getServletName();
public ServletContext getServletContext();
public String getInitParameter(String name);
public Enumeration<String> getInitParameterNames();

Container, bir servleti ilk kullanima hazirladiginda(initialized) bu servlet icin bir ServletConfig olusturur. Yani her Servlet objesi icin birtane de ServletConfig objesi olusturulur.

ServletConfig objesi, deployment descriptor(web.xml )dosyasinda ilgili servlet icin tanimlanmis bilgilere ulasmak icin kullanilir. Bu bilgiler veritabanina baglanmak icin gereken bilgiler olabilir.

Bu tanimlanmis bilgilere Servlet Init Parameter adi verilir. Bu parametreler Servlet Container tarafindan , servlet lifecycle/yasam dongusunde sadece bir kez okunur.

Servlet Container bir daha bu init parametrelerini bir sonraki deploy islemine kadar okumaz.

Onceki yazida Servlet lifecycle(yasam dongusu) konusundan bahsetmistik. Simdi bu yasam dongusunde ServletConfig icin detaya inelim ;

Adim-1
Container , deployment descriptor(web.xml) dosyasini okur.

Adim-2
Container yeni bir ServletConfig instance/ornegi/objesi olusturur.

01-02

Continue reading 06 – ServletConfig

05 Servlet Lifecycle

Merhaba Arkadaslar,
Bu yazimda Servlet lifecycle(yasam dongusu) konusundan bahsedecegim ve sonunda da kucuk bir uygulama yapacagiz. Hatirlayacagimiz gibi Servletlerin tum kontrolu Container’in sorumlulugu altindaydi. Dolayisiyla Servletlerin yasam dongusunden de Container sorumludur.

Handle Request

ervlet Container , gelen istegi su adimlari gerceklestirerek karsilar. ( handle request)
Bu vesileyle Servlet Lifecycle’a da goz atmis olacagiz , sonrasinda Servlet Lifecycle’i daha detayli olarak incelemeye calisacagiz.
Ornek bir senaryo uzerinde adim adim incelemelerde bulunalim;

Adim-1
Kullanici Servlet’i cagiran URL linkine tiklar.

01-click-url

Continue reading 05 Servlet Lifecycle

04 – Apache Tomcat

Neden Servlet Container olarak Apache Tomcat kullaniyoruz ?

Bunun nedeni calistigim tum kaynaklarda Apache Tomcat kullaniliyordu. Isteki projelerde de Apache Tomcat kullaniliyor. Apache Tomcat populerligi en fazla olan Servlet Containerdir diyebiliriz. Dolayisiyla bu yazilarim boyunca Apache Tomcat kullanmayi dusunuyorum. Baska bolumlerde farkli Servlet Containerlari da kullanabiliriz.

Apache Tomcat vs Glassfish

Apache Tomcat, Servlet Container‘dir baska bir deyisle Web Containerdir. Glassfish ise Application Server‘dir. Application Server’lar hem Servlet Container’a hem de EJB Container’a ve ek ozelliklere sahiptir. Servlet ve JSP icin Apache Tomcat yeterli olacaktir.
Glassfish Application Server , JSF+EJB projelerine uygun olacaktir. Apache Tomcat uzerinde Spring MVC projeleri de rahatlikla calisacaktir.

application-server

Continue reading 04 – Apache Tomcat

03 HelloServletWorld

Merhaba Arkadaslar,

Onceki yazilarda temel kavramlari , Servlet’in ve Container’in gorevlerini inceledik. Bu yazida Apache Tomcat kurulumunu yapacagiz, ilk Servlet ornegimizi yazacagiz. Boylelikle Servlet dunyasina “HelloWorld” diyecegiz.

Bu yazilarimda Eclipse IDE , JDK 7 , Apache Tomcat 7 kullanacagim. Ben calismalarimi Ubuntu’da yapiyorum. Soz konusu Java oldugu icin isletim sisteminin bir onemi yok. Javaci arkadaslara linux dagitimlarini kurcalamalarini ve kullanmalarini tavsiye ederim. Bu kadar linux tavsiyesinden sonra biz konumuza donelim.

Apache Tomcat’i indirip bilgisayariniza kurup kullanabileceginiz gibi zip halini indirip su sekilde kurabilirsiniz.

 

Adim – 1
zip ve source code‘u indirip uygun bir dizinde acalim.

Continue reading 03 HelloServletWorld

02 Servlet ve Servlet Container Gorevleri

Servletlerin main() metodu yoktur ve Servlet’lerin tum kontrolu Servlet Container’in altindadir.

Servlet Container’a ornek olarak Apache Tomcat’i verebiliriz.
Onceki bolumden hatirlayacagimiz gibi Web Server Application(ornegin Apache) istegi alir(request) eger istek static bir kaynaksa kendisi ilgilenir fakat eger istek Servlet icinse kendisi ilgilenmez bu istek ile Web Container Application ilgilenir.

Onceki yazida Apache Tomcat ‘ten bahsettik. Apache Tomcat hem HTTP Web Server hem de Servlet Container ozelligine sahiptir.

01-servlet-container

Continue reading 02 Servlet ve Servlet Container Gorevleri

01 Servlet Giriş

HTTP_ClientServerSystem

Servlet’lerin Temeli

Servlet’ler Web Server tarafından çalıştırılan programlardır . Aslında Servlet bir Java class’ından farksız değildir

Öncelikle Servlet’in faydalarını anlamak için Web tarayıcı ise Sunucu tarafı arasındaki iletişimi anlamak gereklidir.

Servlet’lerden daha eski bir teknoloji olan Applet’ler yardımı ile Web tarayıcısının işlevleri artırılabilinmişti. Servlet’ler yardımı ile de Web Serverin fonksiyonelliği dinamil olarak artırıldı.

 

Web Tarayıcısı ile Sunucular nasıl anlaşır ona bir bakalım ?

Static bir web page için düşünecek olursak eğer ;

  1. Kullanıcı ilgili sayfanın Url’sini tarayıcıya girer.
  2. Tarayıcı bu istek için Sunucuya bir Http(Hyper-Text Transfer Protocol) talebi üretir.
  3. Web Sunucusu bu talebi alır ve ilgili dosya ile eşler.
  4. Bu dosya , Http yanıtı için tarayıcıya döndürülür. Bu yanıtın header(başlık) ‘da içeriğin tipine işaret edilir.
    Bu içerik text , resim yada baska bir şey olabilir. Bunlara MIME type denilir. Bilgi için buraya bakınız .
    İçerik html kaynak kodu ise MIME type text/html olur.

 
Continue reading 01 Servlet Giriş