java és web programozásmath.bme.hu/~kkovacs/webprogea1.pdf · i interpretált nyelv, mint a...

30

Upload: others

Post on 14-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Java és web programozás

Kovács Kristóf, Rimay Zoé

Budapesti M¶szaki Egyetem

2013. szeptember 11.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 2: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Jó hír

Java lesz!

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 3: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Jó hír

Java lesz!

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 4: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Tárgyismertet®

I Elérhet®ségek:I Kovács Kristóf: [email protected] Rimay Zoé: [email protected],

I Követelmények:I Év végi beadandó (facebook): 60

I Minimum 24 pontot meg kell szerezni.I Hetente kisZH vagy házifeladat: 40

I 4 pontot érnek, de hetente csak az számít amelyik jobban

sikerültI Legalább 10 héten lesz mindkett®I Nincs minimumkövetelmény külön-külön egyikb®l se, de

összességében meg kell lennie a 16 pontnak.

I Értékelés:5: 85 - 1004: 70 - 843: 55 - 692: 40 - 541: 0 - 39

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 5: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Ami lesz

I JavaI Java alapú szerver készítéseI HTML bemenetek használataI Adatbázis kezelés sqlite3-al

Ha marad id®:I Reguláris kifejezésekI HTML-fa bejárásI Javascript

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 6: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Ami lesz

I JavaI Java alapú szerver készítéseI HTML bemenetek használataI Adatbázis kezelés sqlite3-al

Ha marad id®:I Reguláris kifejezésekI HTML-fa bejárásI Javascript

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 7: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

World Wide WebEgy kis történeti háttér: (nem kérdezzük vissza)

Sir Tim Berners-Lee (bal) és Robert Cailiau (jobb)

Sir Tim Berners-Lee és Robert Cailliau 1990-ben a CERN-ben terveztékmeg a WWW-t, hogy egy olyan hálózatot hozzanak létre amelyben bárkihozzáférhet adott információkhoz.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 8: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

World Wide Web

Még 1990 végén elkészítették az els® böngész®t, majd 1991-benlett ténylegesen publikus a WWW az interneten.

Hogy ez e�ektíven m¶ködhessen bevezették az URL-t (UniformResource Locator), a HTML-t (HyperText Markup Language) és aHTTP-t (HyperText Transfer Protocol).

A CERN 1993-ban bejelentette, hogy a Web ingyenes leszmindenkinek, majd kés®bb ebben az évben elkészült az els® igazánelterjedt böngész®, a Mosaic.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 9: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

A Web m¶ködése nagy vonalakban

Böngész® WebszerverInternet

A böngész®t összeköti az internet egy webszerverrel.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 10: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

A Web m¶ködése nagy vonalakban

Böngész® WebszerverRequest

Küld a böngész® egy kérést (request) a webszervernek, hogy melyikadott oldalt szeretné lekérdezni, meg még küld egyéb dolgokat is

mellette, err®l egy kés®bbi el®adáson lesz szó.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 11: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

A Web m¶ködése nagy vonalakban

Böngész® WebszerverResponse

Kap erre egy választ (response), ami tartalmazza a HTML-t amitmajd a böngész® megjelenít a felhasználónak.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 12: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

A Web m¶ködése nagy vonalakban

Böngész® Webszerver

Request

Response

Így folytatódik a böngészés, akárhányszor új oldalra akar lépni afelhasználó a böngész® küld egy kérést, majd erre válaszol a

webszerver.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 13: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 14: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

A java szerkezete

I Nem gépi kódra fordul, mint a C, C++.I Interpretált nyelv, mint a python, azaz az utasításokat valós

id®ben értelmezi.

I Viszont alkalmaz egy valós id®ben fordítást, ami annyit tesz,hogy bizonyos gyakran használt kódrészeket mégis gépi kódrafordít.

I Ezáltal a sebessége, mostmár csupán 44%-al van lemaradva aC++-hoz képest.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 15: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

A java szerkezete

I Nem gépi kódra fordul, mint a C, C++.I Interpretált nyelv, mint a python, azaz az utasításokat valós

id®ben értelmezi.I Viszont alkalmaz egy valós id®ben fordítást, ami annyit tesz,

hogy bizonyos gyakran használt kódrészeket mégis gépi kódrafordít.

I Ezáltal a sebessége, mostmár csupán 44%-al van lemaradva aC++-hoz képest.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 16: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

I Cserébe, ugyanaz a kód, bármely platformon futtatható,újraforditás nélkül.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 17: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Eddig tanult dolgok javaban

I Változó deklarálás

int valtozoNev;

I Változó de�niálása

float valtozoNev = 16.4;

I Függvény de�niálásá

public static int duplaz(int szam) {

return szam * 2;

}

I A public és static kulcsszavakról lesz szó a kés®bbiekben, mostcsak tudjuk, hogy oda kell írni ®ket.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 18: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

I Elágazas

if (feltetel) {

...

}

I Többszörös elágazás

if (feltetel1) {

...

} else if (feltetel2) {

...

...

} else {

...

}

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 19: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

I For ciklus

int i;

for (i = 0; i < 10; i++) {

...

}

I For ciklus tömörebben

for (int i = 0; i < 10; i++) {

...

}

I For ciklus mint pythonban (tomb egy int tömb)

for (int elem : tomb) {

...

}

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 20: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

I While ciklus

while (feltetel) {

...

}

I Amint látjuk eddig nagyban hasonlít a már tanult Cszintaktikára. Ez nem véletlen. A java szintaktikáját C++alapján alakították ki.

I Viszont sok különbség is van, de ezek kés®bb kerülnek majdel®.

I Itt még megemlíteném, hogy a java ráer®szakolja aprogramozóra, hogy mindent osztályokkal oldjon meg.Hasonlóan mint a python kötelez® formázása, ez se véletlen.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 21: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

I While ciklus

while (feltetel) {

...

}

I Amint látjuk eddig nagyban hasonlít a már tanult Cszintaktikára. Ez nem véletlen. A java szintaktikáját C++alapján alakították ki.

I Viszont sok különbség is van, de ezek kés®bb kerülnek majdel®.

I Itt még megemlíteném, hogy a java ráer®szakolja aprogramozóra, hogy mindent osztályokkal oldjon meg.Hasonlóan mint a python kötelez® formázása, ez se véletlen.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 22: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

I While ciklus

while (feltetel) {

...

}

I Amint látjuk eddig nagyban hasonlít a már tanult Cszintaktikára. Ez nem véletlen. A java szintaktikáját C++alapján alakították ki.

I Viszont sok különbség is van, de ezek kés®bb kerülnek majdel®.

I Itt még megemlíteném, hogy a java ráer®szakolja aprogramozóra, hogy mindent osztályokkal oldjon meg.Hasonlóan mint a python kötelez® formázása, ez se véletlen.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 23: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Hello World!

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

I A maradék dián ezt a pár sort magyarázom el.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 24: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Hello World!

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

I A maradék dián ezt a pár sort magyarázom el.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 25: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Hello World!

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

I A class kulcsszóval tudunk létrehozni új osztályt.I Amint már említettem, javaban mindent osztályokkal kell

megoldani, még egy egyszer¶ Hello World! programot setudunk megúszni nélkülük.

I Osztályok már voltak pythonban. Ennek ellenére az elejét®lfogunk mindent áttekinteni velük kapcsolatban, mert am¶ködésük alig hasonlít.

I Ezen az órán még nem foglalkozunk velük, csak 1 osztálytírunk, benne a main függvénnyel.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 26: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Hello World!

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

I A class kulcsszóval tudunk létrehozni új osztályt.I Amint már említettem, javaban mindent osztályokkal kell

megoldani, még egy egyszer¶ Hello World! programot setudunk megúszni nélkülük.

I Osztályok már voltak pythonban. Ennek ellenére az elejét®lfogunk mindent áttekinteni velük kapcsolatban, mert am¶ködésük alig hasonlít.

I Ezen az órán még nem foglalkozunk velük, csak 1 osztálytírunk, benne a main függvénnyel.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 27: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Hello World!

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

I A main függvény itt is a program kiindulási pozícióját jelzi.I De a C/C++-al ellentétben itt nem tilos egy projekten belül

több maint létrehozni.

I Neki is kellenek a public static kulcsszók, ezekr®l majd kés®bb.I Továbbá bemenete egy String tömb. Amiben megkapja a

program argumentumait.I Stringekr®l lesz a kés®bbiekben szó, gyakorlaton is. Nagyon

hasonlóan m¶ködnek mint a python stringjei.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 28: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Hello World!

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

I A main függvény itt is a program kiindulási pozícióját jelzi.I De a C/C++-al ellentétben itt nem tilos egy projekten belül

több maint létrehozni.I Neki is kellenek a public static kulcsszók, ezekr®l majd kés®bb.I Továbbá bemenete egy String tömb. Amiben megkapja a

program argumentumait.I Stringekr®l lesz a kés®bbiekben szó, gyakorlaton is. Nagyon

hasonlóan m¶ködnek mint a python stringjei.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 29: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Hello World!

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

I Végül ez az els® ijeszt®nek t¶n® kiiratás.I Nem kell t®le annyira megijedni, amint Eclipse-en dolgozunk

már meglátjuk milyen könnyedén lehet használni.I Kés®bbiekben lesz szó arról mi a System. Azon belül az out az

outputot jelöli.

I A println annyiban különbözik a printt®l, hogy automatikusantesz sortörést az kiírt szöveg után.

I Hasonlóan a pythonhoz, a print és tarsai javaban is ki tudnakiratni minden beépített típust nem csak a Stringet.

Kovács Kristóf, Rimay Zoé Java és web programozás

Page 30: Java és web programozásmath.bme.hu/~kkovacs/WebprogEA1.pdf · I Interpretált nyelv, mint a python, azaz az utasításokat valós id®ben értelmezi. I Viszont alkalmaz egy valós

Hello World!

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

I Végül ez az els® ijeszt®nek t¶n® kiiratás.I Nem kell t®le annyira megijedni, amint Eclipse-en dolgozunk

már meglátjuk milyen könnyedén lehet használni.I Kés®bbiekben lesz szó arról mi a System. Azon belül az out az

outputot jelöli.I A println annyiban különbözik a printt®l, hogy automatikusan

tesz sortörést az kiírt szöveg után.I Hasonlóan a pythonhoz, a print és tarsai javaban is ki tudnak

iratni minden beépített típust nem csak a Stringet.

Kovács Kristóf, Rimay Zoé Java és web programozás