SlideShare a Scribd company logo
1 of 63
Ziya sg rovƏ ə
ziyaaskerov@gmail.com
Aprel 2012
Ziya sg rovƏ ə
ziyaaskerov@gmail.com
Aprel 2012
I - Java Haqqında
3
JavaJavannının ttarixiarixiJavaJavannının ttarixiarixi
JavaJava nnəədir?dir?JavaJava nnəədir?dir?
JavaJava nnecəecə iişl yirəşl yirəJavaJava nnecəecə iişl yirəşl yirə
JavaJava iləilə nn l r edil bil rə ə ə əl r edil bil rə ə ə ə ??JavaJava iləilə nn l r edil bil rə ə ə əl r edil bil rə ə ə ə ??
Niy JəNiy Jə avaava ??Niy JəNiy Jə avaava ??
Servlet/JspServlet/JspServlet/JspServlet/Jsp
Model -1 , Model-2 vModel -1 , Model-2 v MVC arxitekturasıə MVC arxitekturasıəModel -1 , Model-2 vModel -1 , Model-2 v MVC arxitekturasıə MVC arxitekturasıə
Java N dirə ?
 Proqramların f rqli m liyyat sistemlə ə ə ərind işl y bilm si üçün inkişafə ə ə ə
etdirilmiş proqramlaşdırma dili v platformadə ır.
 Proqramlaşdırma dili olaraq, açıq kodlu, obyekt m rk zliə ə (object-
oriented), t hlük sizə ə , internet üçün lverişli bir texnə ologiyadır.
 Java texnologiyası vasit si il bir proqram f rqli mühitl rd işl dilə ə ə ə ə ə ə
bil r.(ə Windows/Linux)
4
Javanın Tarixi
 1991 Sun Microsystems şirkəti, g l c yin ITC (Information Technologyə ə ə
Channel)texnologiyasinı bəlirl m k adına bir araşdırma l yih si başlatdıə ə ə ə .
 James Gosling, Patrick Naughton, Mike Sheridan, r hb rliyind ki komandaə ə ə
13 n f rd n ibar tə ə ə ə və adı “Green Team” (Yaşıl Komanda) idi.
 Layih nin sas sah si yl nc m qs dli ş xsi v elektronik ev cihazlarıə ə ə ə ə ə ə ə ə ə
idi.
5
James A. Gosling, OC (born May 19, 1955 near
Calgary, Alberta, Canada)
*7 Star Seven
 18 aylıq bir çalışmadan sonra 1992 yayında “*7”,
“Star Seven” adlı və bir kontrol cihazı cıxardılar.
 Bu cihaz TV, video player v s. kimiə bir çox ev
cihazını kontrol edə bilirdi.
 Cihazın bu gücü, platformdan müst qilə bir dilə
sahip olmağından idi.
 James Gosling bu dilə “Oak”(meş )ə adını vermişti.
6
Java və Internet
 Bu layihə bir çox kabelli TV şirkətinə təklif edildi ancaq
zamanının biraz önündə olduğu üçün qəbul edilm diə .
 Komandanın r hb rl riə ə ə , inkişaf etdirdikl riə platformanın
Internetə çox lverişliə olduğunu düşündül rə .
 İstiqam tl riniə ə d yə işdirib, adı daha sonra rəsmi olarak
HotJava olan browser hazırladılar. (WebRunner)
7
Oak’tan Java’ya
 Oak’ın ticari bir ad olaraq istifad edil bilm m siə ə ə ə hüquqi
bir araşdırmayla ortaya çıxdı və yeni dilin adının nə olması
haqqında Sun araşdırma başlatdı.
 Son üçə Java, Silk ve DNA adları qalır. Və sonda Java galib
gəlir.
 23 May 1995’də Java rəsmi olaraq t qdim edildi.ə
8
Java Nec İşl yirə ə ?
 Java həm çevril nə (compiled) həm də yorumlanan (interpreted) bir dildir.
 Java qaynaq kodları (.java faylları) Java bytecodelarına (.class fayllara)
çevrilir.
 Bytecodelar JVM’in komandalarıdır və çalışma zamanında (run-time) JVM
tarafından yorumlanır.
 Bytecodelar VM(Java Virtual Machine) olan hər platformda işl y bil rə ə ə .
9
10
JVM (Java Virtual Machine)
 JVM (Java Virtual Machine), hardware v m liyyatə ə ə sistemi üstündə
işl y nə ə platformdur.
 Compile edilmiş Java kodları ilə platform arasında bir qat meydana g tirirə
ve eyni bytecodeların fərqli platformlarda d yə işmədən, eyni şəkildə
işl m yini t min edirə ə ə .
 Her platform üçün ən az bir JVM mövcuddur.
11
12
13
14
// Hello.java
public class Hello {
public static void main(String[] args){
Hello object = new Hello ();
object.sayHello();
}
public void sayHello(){
System.out.println(“Hello!”);
}
}
N ticə ə
Hello!
Java Platromdan müst qildirə (Portable)
 Java`nin en böyük üstünlüyü platformdan müst qilə olaraq işl m sidir.ə ə
 Bütün m liyyat sisteml ri Javanı d st kl m kd dir.ə ə ə ə ə ə ə ə
 WORA (Write Once, Run Anywhere) - bir d fə ə yaz hər yerdə işl t.ə
15
Niy JAVAə ?
Java & Robustness
 Robustness: çalışma zamanı (runtime) t hlük sizliyiə ə olaraq
t rif edilir.ə
 Java, dözümlü(reliable) və güclü proqramlar yazmaq
üçündür.
 Çevirm (compile)ə zamanında həm də çalışma
(runtime)zamanında tip uyumu və d yişimiə (cast)
kontrol edilir.
 İstisna v ziyy tl riə ə ə ələ almaq üçün (exception
handling)mexanizması vardır.
 Yaddaşın idar si avtoə matikdir, proqramçıya
bıraxılmamışdır.(Garbage Collector)
16
Carbage Collector
17
Java T hlük sizdirə ə
 Java ş b k d istifad edil bil r.ə ə ə ə ə ə ə
 Java, ş b k d olmağın meydanaə ə ə ə gətirdiyi təhlükələrə qarşı güclüdur.
 Xarici makinlardaki obyektl rinə , local makinadaki obyektl rə ə və m liyyatə ə
sisteminə müdaxil siə kontrol altındadır.
 Java’daki t hlük sizlikə ə API’lari sayəsində şifrələmədən (encryption)
r q msalə ə imzalara (digital signatures) qədər hər cür t hlük sizlikə ə kodu yazıla
bilər.
18
Java Arxitektura Olaraq Tərəfsizdir
 Java, bir birlərindən fərqli, bir çox f rqliə platformun olduğu ş b kə ə ə
üstündə işl m k üə ə çün hazırlandığı üçün, hər hansı bir platforma xüsusi
r ğb t göst rmir.ə ə ə
 Bu v ziyy tə ə Java’nın virtual bir makina üstündə işl m siə ə və heç bir
platformaya r ğb t göst rm y c kə ə ə ə ə ə bir şəkildə, standartlar üzərinə inşa
edilməsinin bir n tic sidirə ə .
19
Java Müv ff qiyy tlidirə ə ə
 Java, memarlıq olaraq tərəfsiz olmaq üçün virtual makina kimi bir ara qat
üstündə çalışmağı seçmişdir.
 Java etibarlı bir memarlıq üçün daha bir çox(runtime) kontrollara sahipdir.
 Java’nın runtime performansını artırmaq üçün çox məsafə qət edilmişdir.
 Optimized compiler
 JIT ve HotSpot texnologiyaları
20
Java Çox Kanallıdır(Multithreaded)
 Kanal (thread), bir iş (process) içində meydana g l n h fifə ə ə m liyyatə ə lardır
(lightweight process).
 Eyni m liyyatə ə içində işl y nə ə fərqli kontrol axışlarına kanal deyilir.
 Kanallar eynı m liyyatə ə içində işl dikl rind nə ə ə , bir çox işi eyni anda və daha
sür tliə yerinə yetir bilirl r.ə ə
 CPU və platformların çox sür tliə hala gəlməsi, dillərdəki çox kanallı
özəllikləri istifad etm yi biz m cbur edirə ə ə ə .
21
Java il n l r edil bil rə ə ə ə ə ?
 Veril nl r bazası ilə ə ə laq liə ə proqramlar.
 Servlet, Jsp (Web proqramları).
 Mobil telefonları, Smart kartlar üçün proqramlar.
 GUI proqramları, Applet’ler, Swing v s. Proqramlar.ə
Applet
 Applet, uzaqdaki sistemd n eə ndirilib internet brauzeri üzərində çalışdırılabiliən java
proqramlarıdır.
 Appletlər sistemə zərər ver bilə məyəcək bir şəkildə hazırlanmışdır və bugün
özəlliklə oyun saytlarında h l d istifad edilm kd tdir.ə ə ə ə ə ə
 İçərisində proqram olan bir s hif niə ə açmağa çalışdığınız anda browser avtomatik
olaraq java virtual maşını çalışdırır.
Swing və AWT (Abstract Window Toolkit)
 AWT, ilk java ilə birlikdə inkişaf etdiril nə təməl grafika interfeys
kitabxanasıdır.
 AWT m liyyat sistemininə ə grafika strukturunu istifad imkanını t minə ə
edir.
 Java 2 platformu ilə birliktə AWT yetərsiz görülmüş və çox daha geniş və
daha cox özəlliklərə sahib Swing kitabxanasi sistemə lav edilmişdirə ə .
 Swing daha vv lə ə m liyyat sistemininə ə istifad etdiyiə hardware grafika
sür tl ndirmə ə ə vasit l riniə ə istifad etm diyin görə ə ə ə yavaşlığı ilə
t nqidl rə ə ə hədəf olmuşdu.
Swing və AWT (Abstract Window Toolkit)
 Java 1.4 ilə Swing, həm ümümi olaraq virtual maşının
sür tl nm siə ə ə və qismən hardware sür tl nm siə ə ə ilə bu
pis şöhrətindən qutuldu.
 Java 5 və 6 ilə desktop proqramlari yazılımı
m şhurlaşdı.ə
 AWT h l də ə ə Swing’in bir alt qatında, təməl iki ölçülü
grafika işləmlərində istifad edilm yə ə ə devam edir.
SWT (Standart Widget Toolkit)
 SWT Swing’ə bir alternatifv olaraq IBM tərəfindan inkişaf etdirilmiş
sistemidir.
 Swing’dən ən büyük fərqi m liyyat sistemininə ə grafika kitabxanasını və
komandalarını istifad etm sidir.ə ə
 SWT’nin lverişsizliyiə isə Java’nin bir parçası olmamağıdır.
 SWT fərqli m liyyat sisteml rində ə ə ə fərqli performansda işl yirə və
özəlliklə Windowsdan basqa sistemlərdə lverişli deyildirə .
 Bilinən SWT proqramı m şhurə Java proqram yazma al ti olanə Eclipse’dir.
Servlet
 1997‘də Sun MicroSystems Servlet Texnologiyasını t qdim etdiə
 Servlet texnologiyası, obyekt m rk zliə ə kod yazımına imkan verirdi.
 Proqramçılara öz kitabxanalarını yazmağa imkan yaratdı.
Servlet
sas gördüyü işl rd n b zil riƏ ə ə ə ə :
 Request tərəfindən göndərilən veril nl riə ə oxumaq.
 Gələn HTTP Request və daşıdığı bilgilər ilə qarşılıqlı laq ni t minə ə ə
etm k.ə
 Veril nl rə ə toplayıb, requestin tipine görə (Web, WAP, PDA, etc.)
responce hazırlamaq.
 Requestə göndərilən HTTP responsu və daşıdığı m lumatlarə ilə qarşılıqlı
laq ni t min etm k.ə ə ə ə
 Dinamik olaraq yaradılan cavabı, requestere geri göndermektir.
Servlet
 Servlet, dinamik m zmun yaradanə bir Java Web komponentidir.
 Bir Servlet, hər yönü ilə, hər şeydən öncə, bir Java obyektidir.
 Java Servlet sinifi, Java compiler tərəfindən, Java bayt koduna çevirilir və
bir Servlet Konteyneri (Servlet Motoru) tərəfindən çalışdırılır.
 Servlet Konteyneri Servletlərin Web, request/responce (ist k-cavab)ə
modelini istifadə edir.
 Bu model HTTP (Hypertext Transfer Protocol) pratakolu üstündə
qurulmuşdur.
Servlet
 Ümumi olaraq, Servletlər, Internet üzərində, HTTP pratakolu ilə istifadə
üçün yaranmışdır.
 Amma, Servletlər pratakoldan müst qildirə . M s l nə ə ə , FTP ya da SMTP
istifad ed nə ə Servletler yazıla bilər.
 Servletler, Java'nın, CGI (Common Gateway Interface) proqramlamasına
alternativ olaraq yaradıldı.
Servlet
Servlet Container
 İlk başda Servlet Motoru (Servlet Engine) adı ilə bilin nə və J2EE'nin
ortaya çıxması ilə Servlet Container adlandırılan proqramlar, Servletleri
və yaşam zamanlarını idar edirl rə ə
 Servlet Container , HTTP protokolunun request v responceə modelini
dəstəkləm lidirə .
 HTTPS (HTTP over SSL - SSL üzərindən HTTP) kimi digər lavə ə protokolları
da dəstəkləyir.
Servlet/Jsp
 Problem: Println() funksiyası ilə HTML (!) .
 Cavap: Java Server Page texnologiyası.
 HTML və Java kodları iç-içə yazıla bilir.
 Web proqramları JSP-mərkəzli olmağa başladı.
JSP (JAVA SERVER PAGES)
 JSP spesifikasiyası Java Servlet API üzərinə qurulmuş dur, lakin Servlet və
JSP texnologiyaları arasında bəlli fərqlər vardır.
 Proqramlama peş karlığıə t l b ed nə ə ə Servletlerin ksinə ə JSP daha geniş
bir programçı kütləsinə xitab edir.
 JSP nin sas üstünlüyüə m zmununə prezentasiya tərəfindən ayrılmasıdır.
JSP’nin Üstünlükl riə
 Statik və Dinamik m zmununə birbirindən ayrılması:
 UI (User İnterface) üzərində edil nə çox kicik d yə işikliklər belə
servletin yenidən compile edilm sin ehtiyac yaradırə ə .
 Dinamik ve statik m zmununə ayrı olmaları proqramların sabit və
əsnək olmalarına yol açmaqdadır.
 JSP s hif l rində ə ə ə bəzı özəl script və etiketlər (taglar) istifadə
edil bilm ktıdirə ə .
 JSP s hiə f sı avə tomatik olaraq compile edilir və JSP motoru
tərəfindən yene avtomatik olaraq web server içərisinə qoyulur.
JSP’nin Üstünlükl ri 2ə
 Bir d fə ə yaz , hər yerdə çalışdır
 JSP s hif l riə ə ə platformlar və web serverl rə arasında rahatlıqla
daşınabilməkdə və hər hansi bir deyişikliye ehtiyac
duymamaqdadır.
 Servlet API tamamən s thil şdirilmişdir.ə ə
 JSP servletin abstraklaşdırılmış halıdır.
 Servletlər ilə edil nə hər şey JSP ilə edil .ə
Model-1/Model-2/MVC
 JSP və Servlet Web proqramlarında bərabər istifad edilm y başladıə ə ə
 Servlet, web iş axışıda JSP isə HTML və kirli işlər üçün istifad edilm yə ə ə
başladı.
 JSP və Servlet'i bərabər istifad etm kə ə Model 2 olaraq adlandırılmağa
başladı.
 Sadece JSP istifad etm kə ə Model 1 olaraq bilinir.
MVC(Model View Controller)
 Model View Controller (Design Pattern)
 User Interface v Business Logic birə birind n ayrılırə .
 Java web'də n cox istifad edil nə ə ə Design Pattern ‘dir.
 Sad cə ə Javaya özəl deyildir.Ümumi bir konseptdir.
 C#, Ruby on rails, Python v sə . dillərdə də istifad edilirə .
Model View Controller
MODEL NEDİR?
 İş məntiqi (Business Logic) hiss sidirə .
 Bir neç qatdan ibar t ola bil r.ə ə ə
 Ümumiyy tl veril nl r bazasındakı m liyyatlar bu hiss d olurə ə ə ə ə ə ə ə
 Controller'dan gələn veril nl riə ə işl yirə .
 Model qatında hər hansı bir output edilm zə .
VIEW NEDİR?
 Proqramın istifadıçiyə göstərilən interfeysin olduğu qatdır.
 Html, Css, Javascript vb. bu qatda olur
 Bu qatda minimum java kodunun yazılmağı hədəfdir.
CONTROLLER NƏDİR?
 Proqramların qərar mexanizmasıdır.
 Model ilə View arasında körpü işi görür.
 View qatından gələn request’l riə model‘ə göndərir və Model qatından
aldığı m lumatlarıə view‘a gönd rirə .
MVC İSTİFAD ETM YİN ÜSTÜNÜKL RİƏ Ə Ə ?
 İstifadiçiyə t qdim edil c kə ə ə kodlar ilə (Html, Css v sə .) , sistemin işl m yiniə ə
t min ed nə ə kodları birbirinden ayıraraq təmiz və sistemli kod yazmağı
asanlaşdırır.
 Kodların daha asan optimizasiya edilm sin imkan verirə ə
 Komanda içind kodların oxuna bilirliy n imkan yaradir.ə ə ə
 User Interface t r find kiə ə ə d yə işikliklər iş məntiqi hiss sin toxunulmadanə ə
edil bilirə .
 Front-End Developer, Back-End Developer birbirinden müst qilə olaraq işl yə ə
bil iə .
 X talarıə yaxalama və kodu test etməyi asanlaşdırır.
II - Web Framework
Texnologiyaları
45
GWTGWTGWTGWT
Niy FrameəNiy Frameə wworkork ??Niy FrameəNiy Frameə wworkork ??
Framework nFramework n dirədirə ??Framework nFramework n dirədirə ??
StrutsStrutsStrutsStruts
JSFJSFJSFJSF
Spring MVCSpring MVCSpring MVCSpring MVC
FRAMEWORK N DİRƏ ?
NİYƏ FRAMEWORK?
 Vaxt itkisi v enerji itkisi azalır.ə
 Standart çalışma sistemini t min edir.ə
 Komanda içind işl m k asanlaşır.ə ə ə
 Standart kodlama sistemini t min edilir.ə
 Framework il yazılan proqramlar daha etibarlı olurə .
 Ş kil - 1ə
JAVA FRAMEWORKS
GOOGLE WEB TOOLKIT
Niy Gə WT ?
 GWT version 1.0 May 16, 2006.
 Browser’l rd ki f rqlilikl rin meydana g tirdiyi zaman itkisi.ə ə ə ə ə
 JavaScript kodların yazımı, baxımı və t hlük sizliyinin t mini ç tindir.ə ə ə ə
 Client & Server proqramlarkən proqramlama dili ayrılığı problemi.
 Java kodu yazılır, JavaScript yazılmır.
 Z ngin komponentə kitabxanaları.
 AJAX.
 Java dili ile yazılmış ajax proqramlarını browserdən müst qilə və optimal
JavaScript koduna çevirir.
 GWT Compiler JavaScript kodları sür tli işl y c kə ə ə ə optimum kodlara
çevirir
 Ölü kodları(siniflər, metodlar) Compile vaxti silir və kodun boyunu
kiçildir.
 Java kodunuzu yazdıqdan sonra hər dəf Compile etm k lazım olmur.ə ə
 Opera IE, Firefox, Mozilla, Safari də işl yirmi dem d n proqramı deployə ə ə
edil bil r.ə ə
GOOGLE WEB TOOLKIT
GWT CODE SAMPLE
 Apache Struts, Java dünyasına standart bir MVC t min etm k üçünə ə Craig
R. McClanahan tərəfindan May 2000'də başladı.
 Struts, hər hansı ölçüd ki proqramlarə üçün uyğundur.
 Özün xas kitabxanaları varə .
 Struts.xml
Web.xml
struts.xml
index.jsp
HelloWorld.java
SPRING MVC
SPRING MVC
1. Client Servere http request göndərir.
2. Gelen request Front Controller (DispatcherServlet)
tərəfindən qarşılanır ve uyğun Handler Mapping'ləri
tapmağa çalışır.
3. Handler Mapping'lərin vasit si ilə ə DispatcherServlet ist yə i
uyğun controller'e göndərir.
4. Controller ist yə i işl yirə və
FrontController‘ə ModelandView obyekti döndərir.
5. FrontController bu göndərilən obyekti View Resolver ilə
görüntü hazırlayır.
6. Daha sonra hazırlanan s hiə fə istifad çiy gönd rilirə ə ə .
SPRING & INVERSION OF CONTROL
SPRING & Dependency Injection
SPRING MVC
Dinlədiyiniz üçün təşəkkür
edirəm !
63
Ziya sg rovƏ ə
ziyaaskerov@gmail.com
Aprel 2012
Ziya sg rovƏ ə
ziyaaskerov@gmail.com
Aprel 2012

More Related Content

Viewers also liked

Ideas clave en la respuesta educatica en el alumnado tdah
Ideas clave en la respuesta educatica en el alumnado tdahIdeas clave en la respuesta educatica en el alumnado tdah
Ideas clave en la respuesta educatica en el alumnado tdahCharo Lorenzo
 
Soal osn fisika 2007 prov+sol
Soal osn fisika 2007 prov+solSoal osn fisika 2007 prov+sol
Soal osn fisika 2007 prov+solجوكو كوتو
 
Ali̇ Kahri̇man Yerel Yönetim Başarı Anahtarı
Ali̇ Kahri̇man Yerel Yönetim Başarı Anahtarı Ali̇ Kahri̇man Yerel Yönetim Başarı Anahtarı
Ali̇ Kahri̇man Yerel Yönetim Başarı Anahtarı isdsgp
 
Vocabulario ingles tema 1
Vocabulario ingles tema 1Vocabulario ingles tema 1
Vocabulario ingles tema 1reglisanchez
 
servicecertificate2
servicecertificate2servicecertificate2
servicecertificate2varghese99
 
Презентация ИТИС КФУ (Казань)
Презентация ИТИС КФУ (Казань)Презентация ИТИС КФУ (Казань)
Презентация ИТИС КФУ (Казань)Sergey Sobolev
 
文山國小特教宣導
文山國小特教宣導文山國小特教宣導
文山國小特教宣導郁欽 王
 
IBM MobileFirst - Abordagem de Serviços em Mobilidade
IBM MobileFirst - Abordagem de Serviços em MobilidadeIBM MobileFirst - Abordagem de Serviços em Mobilidade
IBM MobileFirst - Abordagem de Serviços em MobilidadeRicardo Zakaluk
 

Viewers also liked (15)

Ideas clave en la respuesta educatica en el alumnado tdah
Ideas clave en la respuesta educatica en el alumnado tdahIdeas clave en la respuesta educatica en el alumnado tdah
Ideas clave en la respuesta educatica en el alumnado tdah
 
La energia
La energiaLa energia
La energia
 
Factura alejandro
Factura alejandroFactura alejandro
Factura alejandro
 
2 f
2 f2 f
2 f
 
Katrina mayer
Katrina mayerKatrina mayer
Katrina mayer
 
Soal osn fisika 2007 prov+sol
Soal osn fisika 2007 prov+solSoal osn fisika 2007 prov+sol
Soal osn fisika 2007 prov+sol
 
Ali̇ Kahri̇man Yerel Yönetim Başarı Anahtarı
Ali̇ Kahri̇man Yerel Yönetim Başarı Anahtarı Ali̇ Kahri̇man Yerel Yönetim Başarı Anahtarı
Ali̇ Kahri̇man Yerel Yönetim Başarı Anahtarı
 
Anely
AnelyAnely
Anely
 
Glosario ingles de
Glosario ingles deGlosario ingles de
Glosario ingles de
 
Equipment list
Equipment listEquipment list
Equipment list
 
Vocabulario ingles tema 1
Vocabulario ingles tema 1Vocabulario ingles tema 1
Vocabulario ingles tema 1
 
servicecertificate2
servicecertificate2servicecertificate2
servicecertificate2
 
Презентация ИТИС КФУ (Казань)
Презентация ИТИС КФУ (Казань)Презентация ИТИС КФУ (Казань)
Презентация ИТИС КФУ (Казань)
 
文山國小特教宣導
文山國小特教宣導文山國小特教宣導
文山國小特教宣導
 
IBM MobileFirst - Abordagem de Serviços em Mobilidade
IBM MobileFirst - Abordagem de Serviços em MobilidadeIBM MobileFirst - Abordagem de Serviços em Mobilidade
IBM MobileFirst - Abordagem de Serviços em Mobilidade
 

JAVA & JAVA WEB TECHNOLOGIES

  • 1. Ziya sg rovƏ ə ziyaaskerov@gmail.com Aprel 2012 Ziya sg rovƏ ə ziyaaskerov@gmail.com Aprel 2012
  • 2.
  • 3. I - Java Haqqında 3 JavaJavannının ttarixiarixiJavaJavannının ttarixiarixi JavaJava nnəədir?dir?JavaJava nnəədir?dir? JavaJava nnecəecə iişl yirəşl yirəJavaJava nnecəecə iişl yirəşl yirə JavaJava iləilə nn l r edil bil rə ə ə əl r edil bil rə ə ə ə ??JavaJava iləilə nn l r edil bil rə ə ə əl r edil bil rə ə ə ə ?? Niy JəNiy Jə avaava ??Niy JəNiy Jə avaava ?? Servlet/JspServlet/JspServlet/JspServlet/Jsp Model -1 , Model-2 vModel -1 , Model-2 v MVC arxitekturasıə MVC arxitekturasıəModel -1 , Model-2 vModel -1 , Model-2 v MVC arxitekturasıə MVC arxitekturasıə
  • 4. Java N dirə ?  Proqramların f rqli m liyyat sistemlə ə ə ərind işl y bilm si üçün inkişafə ə ə ə etdirilmiş proqramlaşdırma dili v platformadə ır.  Proqramlaşdırma dili olaraq, açıq kodlu, obyekt m rk zliə ə (object- oriented), t hlük sizə ə , internet üçün lverişli bir texnə ologiyadır.  Java texnologiyası vasit si il bir proqram f rqli mühitl rd işl dilə ə ə ə ə ə ə bil r.(ə Windows/Linux) 4
  • 5. Javanın Tarixi  1991 Sun Microsystems şirkəti, g l c yin ITC (Information Technologyə ə ə Channel)texnologiyasinı bəlirl m k adına bir araşdırma l yih si başlatdıə ə ə ə .  James Gosling, Patrick Naughton, Mike Sheridan, r hb rliyind ki komandaə ə ə 13 n f rd n ibar tə ə ə ə və adı “Green Team” (Yaşıl Komanda) idi.  Layih nin sas sah si yl nc m qs dli ş xsi v elektronik ev cihazlarıə ə ə ə ə ə ə ə ə ə idi. 5 James A. Gosling, OC (born May 19, 1955 near Calgary, Alberta, Canada)
  • 6. *7 Star Seven  18 aylıq bir çalışmadan sonra 1992 yayında “*7”, “Star Seven” adlı və bir kontrol cihazı cıxardılar.  Bu cihaz TV, video player v s. kimiə bir çox ev cihazını kontrol edə bilirdi.  Cihazın bu gücü, platformdan müst qilə bir dilə sahip olmağından idi.  James Gosling bu dilə “Oak”(meş )ə adını vermişti. 6
  • 7. Java və Internet  Bu layihə bir çox kabelli TV şirkətinə təklif edildi ancaq zamanının biraz önündə olduğu üçün qəbul edilm diə .  Komandanın r hb rl riə ə ə , inkişaf etdirdikl riə platformanın Internetə çox lverişliə olduğunu düşündül rə .  İstiqam tl riniə ə d yə işdirib, adı daha sonra rəsmi olarak HotJava olan browser hazırladılar. (WebRunner) 7
  • 8. Oak’tan Java’ya  Oak’ın ticari bir ad olaraq istifad edil bilm m siə ə ə ə hüquqi bir araşdırmayla ortaya çıxdı və yeni dilin adının nə olması haqqında Sun araşdırma başlatdı.  Son üçə Java, Silk ve DNA adları qalır. Və sonda Java galib gəlir.  23 May 1995’də Java rəsmi olaraq t qdim edildi.ə 8
  • 9. Java Nec İşl yirə ə ?  Java həm çevril nə (compiled) həm də yorumlanan (interpreted) bir dildir.  Java qaynaq kodları (.java faylları) Java bytecodelarına (.class fayllara) çevrilir.  Bytecodelar JVM’in komandalarıdır və çalışma zamanında (run-time) JVM tarafından yorumlanır.  Bytecodelar VM(Java Virtual Machine) olan hər platformda işl y bil rə ə ə . 9
  • 10. 10
  • 11. JVM (Java Virtual Machine)  JVM (Java Virtual Machine), hardware v m liyyatə ə ə sistemi üstündə işl y nə ə platformdur.  Compile edilmiş Java kodları ilə platform arasında bir qat meydana g tirirə ve eyni bytecodeların fərqli platformlarda d yə işmədən, eyni şəkildə işl m yini t min edirə ə ə .  Her platform üçün ən az bir JVM mövcuddur. 11
  • 12. 12
  • 13. 13
  • 14. 14 // Hello.java public class Hello { public static void main(String[] args){ Hello object = new Hello (); object.sayHello(); } public void sayHello(){ System.out.println(“Hello!”); } } N ticə ə Hello!
  • 15. Java Platromdan müst qildirə (Portable)  Java`nin en böyük üstünlüyü platformdan müst qilə olaraq işl m sidir.ə ə  Bütün m liyyat sisteml ri Javanı d st kl m kd dir.ə ə ə ə ə ə ə ə  WORA (Write Once, Run Anywhere) - bir d fə ə yaz hər yerdə işl t.ə 15 Niy JAVAə ?
  • 16. Java & Robustness  Robustness: çalışma zamanı (runtime) t hlük sizliyiə ə olaraq t rif edilir.ə  Java, dözümlü(reliable) və güclü proqramlar yazmaq üçündür.  Çevirm (compile)ə zamanında həm də çalışma (runtime)zamanında tip uyumu və d yişimiə (cast) kontrol edilir.  İstisna v ziyy tl riə ə ə ələ almaq üçün (exception handling)mexanizması vardır.  Yaddaşın idar si avtoə matikdir, proqramçıya bıraxılmamışdır.(Garbage Collector) 16
  • 18. Java T hlük sizdirə ə  Java ş b k d istifad edil bil r.ə ə ə ə ə ə ə  Java, ş b k d olmağın meydanaə ə ə ə gətirdiyi təhlükələrə qarşı güclüdur.  Xarici makinlardaki obyektl rinə , local makinadaki obyektl rə ə və m liyyatə ə sisteminə müdaxil siə kontrol altındadır.  Java’daki t hlük sizlikə ə API’lari sayəsində şifrələmədən (encryption) r q msalə ə imzalara (digital signatures) qədər hər cür t hlük sizlikə ə kodu yazıla bilər. 18
  • 19. Java Arxitektura Olaraq Tərəfsizdir  Java, bir birlərindən fərqli, bir çox f rqliə platformun olduğu ş b kə ə ə üstündə işl m k üə ə çün hazırlandığı üçün, hər hansı bir platforma xüsusi r ğb t göst rmir.ə ə ə  Bu v ziyy tə ə Java’nın virtual bir makina üstündə işl m siə ə və heç bir platformaya r ğb t göst rm y c kə ə ə ə ə ə bir şəkildə, standartlar üzərinə inşa edilməsinin bir n tic sidirə ə . 19
  • 20. Java Müv ff qiyy tlidirə ə ə  Java, memarlıq olaraq tərəfsiz olmaq üçün virtual makina kimi bir ara qat üstündə çalışmağı seçmişdir.  Java etibarlı bir memarlıq üçün daha bir çox(runtime) kontrollara sahipdir.  Java’nın runtime performansını artırmaq üçün çox məsafə qət edilmişdir.  Optimized compiler  JIT ve HotSpot texnologiyaları 20
  • 21. Java Çox Kanallıdır(Multithreaded)  Kanal (thread), bir iş (process) içində meydana g l n h fifə ə ə m liyyatə ə lardır (lightweight process).  Eyni m liyyatə ə içində işl y nə ə fərqli kontrol axışlarına kanal deyilir.  Kanallar eynı m liyyatə ə içində işl dikl rind nə ə ə , bir çox işi eyni anda və daha sür tliə yerinə yetir bilirl r.ə ə  CPU və platformların çox sür tliə hala gəlməsi, dillərdəki çox kanallı özəllikləri istifad etm yi biz m cbur edirə ə ə ə . 21
  • 22. Java il n l r edil bil rə ə ə ə ə ?  Veril nl r bazası ilə ə ə laq liə ə proqramlar.  Servlet, Jsp (Web proqramları).  Mobil telefonları, Smart kartlar üçün proqramlar.  GUI proqramları, Applet’ler, Swing v s. Proqramlar.ə
  • 23. Applet  Applet, uzaqdaki sistemd n eə ndirilib internet brauzeri üzərində çalışdırılabiliən java proqramlarıdır.  Appletlər sistemə zərər ver bilə məyəcək bir şəkildə hazırlanmışdır və bugün özəlliklə oyun saytlarında h l d istifad edilm kd tdir.ə ə ə ə ə ə  İçərisində proqram olan bir s hif niə ə açmağa çalışdığınız anda browser avtomatik olaraq java virtual maşını çalışdırır.
  • 24.
  • 25. Swing və AWT (Abstract Window Toolkit)  AWT, ilk java ilə birlikdə inkişaf etdiril nə təməl grafika interfeys kitabxanasıdır.  AWT m liyyat sistemininə ə grafika strukturunu istifad imkanını t minə ə edir.  Java 2 platformu ilə birliktə AWT yetərsiz görülmüş və çox daha geniş və daha cox özəlliklərə sahib Swing kitabxanasi sistemə lav edilmişdirə ə .  Swing daha vv lə ə m liyyat sistemininə ə istifad etdiyiə hardware grafika sür tl ndirmə ə ə vasit l riniə ə istifad etm diyin görə ə ə ə yavaşlığı ilə t nqidl rə ə ə hədəf olmuşdu.
  • 26. Swing və AWT (Abstract Window Toolkit)  Java 1.4 ilə Swing, həm ümümi olaraq virtual maşının sür tl nm siə ə ə və qismən hardware sür tl nm siə ə ə ilə bu pis şöhrətindən qutuldu.  Java 5 və 6 ilə desktop proqramlari yazılımı m şhurlaşdı.ə  AWT h l də ə ə Swing’in bir alt qatında, təməl iki ölçülü grafika işləmlərində istifad edilm yə ə ə devam edir.
  • 27. SWT (Standart Widget Toolkit)  SWT Swing’ə bir alternatifv olaraq IBM tərəfindan inkişaf etdirilmiş sistemidir.  Swing’dən ən büyük fərqi m liyyat sistemininə ə grafika kitabxanasını və komandalarını istifad etm sidir.ə ə  SWT’nin lverişsizliyiə isə Java’nin bir parçası olmamağıdır.  SWT fərqli m liyyat sisteml rində ə ə ə fərqli performansda işl yirə və özəlliklə Windowsdan basqa sistemlərdə lverişli deyildirə .  Bilinən SWT proqramı m şhurə Java proqram yazma al ti olanə Eclipse’dir.
  • 28. Servlet  1997‘də Sun MicroSystems Servlet Texnologiyasını t qdim etdiə  Servlet texnologiyası, obyekt m rk zliə ə kod yazımına imkan verirdi.  Proqramçılara öz kitabxanalarını yazmağa imkan yaratdı.
  • 29. Servlet sas gördüyü işl rd n b zil riƏ ə ə ə ə :  Request tərəfindən göndərilən veril nl riə ə oxumaq.  Gələn HTTP Request və daşıdığı bilgilər ilə qarşılıqlı laq ni t minə ə ə etm k.ə  Veril nl rə ə toplayıb, requestin tipine görə (Web, WAP, PDA, etc.) responce hazırlamaq.  Requestə göndərilən HTTP responsu və daşıdığı m lumatlarə ilə qarşılıqlı laq ni t min etm k.ə ə ə ə  Dinamik olaraq yaradılan cavabı, requestere geri göndermektir.
  • 30. Servlet  Servlet, dinamik m zmun yaradanə bir Java Web komponentidir.  Bir Servlet, hər yönü ilə, hər şeydən öncə, bir Java obyektidir.  Java Servlet sinifi, Java compiler tərəfindən, Java bayt koduna çevirilir və bir Servlet Konteyneri (Servlet Motoru) tərəfindən çalışdırılır.  Servlet Konteyneri Servletlərin Web, request/responce (ist k-cavab)ə modelini istifadə edir.  Bu model HTTP (Hypertext Transfer Protocol) pratakolu üstündə qurulmuşdur.
  • 31. Servlet  Ümumi olaraq, Servletlər, Internet üzərində, HTTP pratakolu ilə istifadə üçün yaranmışdır.  Amma, Servletlər pratakoldan müst qildirə . M s l nə ə ə , FTP ya da SMTP istifad ed nə ə Servletler yazıla bilər.  Servletler, Java'nın, CGI (Common Gateway Interface) proqramlamasına alternativ olaraq yaradıldı.
  • 33. Servlet Container  İlk başda Servlet Motoru (Servlet Engine) adı ilə bilin nə və J2EE'nin ortaya çıxması ilə Servlet Container adlandırılan proqramlar, Servletleri və yaşam zamanlarını idar edirl rə ə  Servlet Container , HTTP protokolunun request v responceə modelini dəstəkləm lidirə .  HTTPS (HTTP over SSL - SSL üzərindən HTTP) kimi digər lavə ə protokolları da dəstəkləyir.
  • 34. Servlet/Jsp  Problem: Println() funksiyası ilə HTML (!) .  Cavap: Java Server Page texnologiyası.  HTML və Java kodları iç-içə yazıla bilir.  Web proqramları JSP-mərkəzli olmağa başladı.
  • 35. JSP (JAVA SERVER PAGES)  JSP spesifikasiyası Java Servlet API üzərinə qurulmuş dur, lakin Servlet və JSP texnologiyaları arasında bəlli fərqlər vardır.  Proqramlama peş karlığıə t l b ed nə ə ə Servletlerin ksinə ə JSP daha geniş bir programçı kütləsinə xitab edir.  JSP nin sas üstünlüyüə m zmununə prezentasiya tərəfindən ayrılmasıdır.
  • 36. JSP’nin Üstünlükl riə  Statik və Dinamik m zmununə birbirindən ayrılması:  UI (User İnterface) üzərində edil nə çox kicik d yə işikliklər belə servletin yenidən compile edilm sin ehtiyac yaradırə ə .  Dinamik ve statik m zmununə ayrı olmaları proqramların sabit və əsnək olmalarına yol açmaqdadır.  JSP s hif l rində ə ə ə bəzı özəl script və etiketlər (taglar) istifadə edil bilm ktıdirə ə .  JSP s hiə f sı avə tomatik olaraq compile edilir və JSP motoru tərəfindən yene avtomatik olaraq web server içərisinə qoyulur.
  • 37. JSP’nin Üstünlükl ri 2ə  Bir d fə ə yaz , hər yerdə çalışdır  JSP s hif l riə ə ə platformlar və web serverl rə arasında rahatlıqla daşınabilməkdə və hər hansi bir deyişikliye ehtiyac duymamaqdadır.  Servlet API tamamən s thil şdirilmişdir.ə ə  JSP servletin abstraklaşdırılmış halıdır.  Servletlər ilə edil nə hər şey JSP ilə edil .ə
  • 38. Model-1/Model-2/MVC  JSP və Servlet Web proqramlarında bərabər istifad edilm y başladıə ə ə  Servlet, web iş axışıda JSP isə HTML və kirli işlər üçün istifad edilm yə ə ə başladı.  JSP və Servlet'i bərabər istifad etm kə ə Model 2 olaraq adlandırılmağa başladı.  Sadece JSP istifad etm kə ə Model 1 olaraq bilinir.
  • 39. MVC(Model View Controller)  Model View Controller (Design Pattern)  User Interface v Business Logic birə birind n ayrılırə .  Java web'də n cox istifad edil nə ə ə Design Pattern ‘dir.  Sad cə ə Javaya özəl deyildir.Ümumi bir konseptdir.  C#, Ruby on rails, Python v sə . dillərdə də istifad edilirə .
  • 41. MODEL NEDİR?  İş məntiqi (Business Logic) hiss sidirə .  Bir neç qatdan ibar t ola bil r.ə ə ə  Ümumiyy tl veril nl r bazasındakı m liyyatlar bu hiss d olurə ə ə ə ə ə ə ə  Controller'dan gələn veril nl riə ə işl yirə .  Model qatında hər hansı bir output edilm zə .
  • 42. VIEW NEDİR?  Proqramın istifadıçiyə göstərilən interfeysin olduğu qatdır.  Html, Css, Javascript vb. bu qatda olur  Bu qatda minimum java kodunun yazılmağı hədəfdir.
  • 43. CONTROLLER NƏDİR?  Proqramların qərar mexanizmasıdır.  Model ilə View arasında körpü işi görür.  View qatından gələn request’l riə model‘ə göndərir və Model qatından aldığı m lumatlarıə view‘a gönd rirə .
  • 44. MVC İSTİFAD ETM YİN ÜSTÜNÜKL RİƏ Ə Ə ?  İstifadiçiyə t qdim edil c kə ə ə kodlar ilə (Html, Css v sə .) , sistemin işl m yiniə ə t min ed nə ə kodları birbirinden ayıraraq təmiz və sistemli kod yazmağı asanlaşdırır.  Kodların daha asan optimizasiya edilm sin imkan verirə ə  Komanda içind kodların oxuna bilirliy n imkan yaradir.ə ə ə  User Interface t r find kiə ə ə d yə işikliklər iş məntiqi hiss sin toxunulmadanə ə edil bilirə .  Front-End Developer, Back-End Developer birbirinden müst qilə olaraq işl yə ə bil iə .  X talarıə yaxalama və kodu test etməyi asanlaşdırır.
  • 45. II - Web Framework Texnologiyaları 45 GWTGWTGWTGWT Niy FrameəNiy Frameə wworkork ??Niy FrameəNiy Frameə wworkork ?? Framework nFramework n dirədirə ??Framework nFramework n dirədirə ?? StrutsStrutsStrutsStruts JSFJSFJSFJSF Spring MVCSpring MVCSpring MVCSpring MVC
  • 47. NİYƏ FRAMEWORK?  Vaxt itkisi v enerji itkisi azalır.ə  Standart çalışma sistemini t min edir.ə  Komanda içind işl m k asanlaşır.ə ə ə  Standart kodlama sistemini t min edilir.ə  Framework il yazılan proqramlar daha etibarlı olurə .  Ş kil - 1ə
  • 49. GOOGLE WEB TOOLKIT Niy Gə WT ?  GWT version 1.0 May 16, 2006.  Browser’l rd ki f rqlilikl rin meydana g tirdiyi zaman itkisi.ə ə ə ə ə  JavaScript kodların yazımı, baxımı və t hlük sizliyinin t mini ç tindir.ə ə ə ə  Client & Server proqramlarkən proqramlama dili ayrılığı problemi.  Java kodu yazılır, JavaScript yazılmır.  Z ngin komponentə kitabxanaları.  AJAX.
  • 50.  Java dili ile yazılmış ajax proqramlarını browserdən müst qilə və optimal JavaScript koduna çevirir.  GWT Compiler JavaScript kodları sür tli işl y c kə ə ə ə optimum kodlara çevirir  Ölü kodları(siniflər, metodlar) Compile vaxti silir və kodun boyunu kiçildir.  Java kodunuzu yazdıqdan sonra hər dəf Compile etm k lazım olmur.ə ə  Opera IE, Firefox, Mozilla, Safari də işl yirmi dem d n proqramı deployə ə ə edil bil r.ə ə GOOGLE WEB TOOLKIT
  • 52.  Apache Struts, Java dünyasına standart bir MVC t min etm k üçünə ə Craig R. McClanahan tərəfindan May 2000'də başladı.  Struts, hər hansı ölçüd ki proqramlarə üçün uyğundur.  Özün xas kitabxanaları varə .  Struts.xml
  • 56.
  • 58. SPRING MVC 1. Client Servere http request göndərir. 2. Gelen request Front Controller (DispatcherServlet) tərəfindən qarşılanır ve uyğun Handler Mapping'ləri tapmağa çalışır. 3. Handler Mapping'lərin vasit si ilə ə DispatcherServlet ist yə i uyğun controller'e göndərir. 4. Controller ist yə i işl yirə və FrontController‘ə ModelandView obyekti döndərir. 5. FrontController bu göndərilən obyekti View Resolver ilə görüntü hazırlayır. 6. Daha sonra hazırlanan s hiə fə istifad çiy gönd rilirə ə ə .
  • 59. SPRING & INVERSION OF CONTROL
  • 60. SPRING & Dependency Injection
  • 62.
  • 63. Dinlədiyiniz üçün təşəkkür edirəm ! 63 Ziya sg rovƏ ə ziyaaskerov@gmail.com Aprel 2012 Ziya sg rovƏ ə ziyaaskerov@gmail.com Aprel 2012