java & java web technologies

Post on 28-May-2015

209 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Life is too short for JAVA :

TRANSCRIPT

Ziya Əsgərovziyaaskerov@gmail.com

Aprel 2012

Ziya Əsgərovziyaaskerov@gmail.com

Aprel 2012

I - Java Haqqında

3

JavaJavannın ın ttarixiarixi JavaJavannın ın ttarixiarixi

Java Java nnəədir?dir?Java Java nnəədir?dir?

Java Java nnecə ecə iişləyirşləyir Java Java 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ə JNiyə Javaava ??Niyə JNiyə Javaava ??

Servlet/JspServlet/Jsp Servlet/JspServlet/Jsp

Model -1 , Model-2 vModel -1 , Model-2 və MVC ə MVC arxitekturasıarxitekturası Model -1 , Model-2 vModel -1 , Model-2 və MVC ə MVC arxitekturası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 texnologiyadı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əyiş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əyiş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 avtomatikdir, 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əliyyatlardı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 endirilib internet brauzeri üzərində çalışdırılabiliən java

proqramlarıdır.

Appletlər sistemə zərər verə bilmə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əyiş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əhifəsı avtomatik 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əyiş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ə FrameNiyə Framewworkork ? ?Niyə FrameNiyə Framewworkork ? ?

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ə GWT ? 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əyi uyğun controller'e göndərir.

4. Controller istəyi 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əhifə 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ərovziyaaskerov@gmail.com

Aprel 2012

Ziya Əsgərovziyaaskerov@gmail.com

Aprel 2012

top related