Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
Jó hír
Java lesz!
Kovács Kristóf, Rimay Zoé Java és web programozás
Jó hír
Java lesz!
Kovács Kristóf, Rimay Zoé Java és web programozá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
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
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
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
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
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
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
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
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
Kovács Kristóf, Rimay Zoé Java és web programozá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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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