WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

Hasonló dokumentumok
Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Bevezetés Működési elv AJAX keretrendszerek AJAX

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Web-fejlesztés NGM_IN002_1

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

OOP: Java 8.Gy: Abstract osztályok, interfészek

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Java programozási nyelv 4. rész Osztályok II.

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Webszolgáltatások (WS)

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Java programozási nyelv 5. rész Osztályok III.

AJAX AJAX. AJAX: Asynchronous JavaScript and XML. az alábbi technológiákon alapul: AJAX-ot támogató keretrendszerek

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

JAVA PROGRAMOZÁS 2.ELŐADÁS

Abstract osztályok és interface-ek. 7-dik gyakorlat

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Model View Controller alapú alkalmazásfejlesztés

Programozási nyelvek Java

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Java Programozás 11. Ea: MVC modell

Web-technológia PHP-vel

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

AJAX-ot támogató keretrendszerek

JAVA PROGRAMOZÁS 3.ELŐADÁS

SOAP komponensek Delphiben

Bevezetés az SAP világába. 5. Kommunikációs és integrációs technológiák

Objektumorientált programozás C# nyelven

Ajax és Echo 2. Bokor Attila

Bevezetés a Python programozási nyelvbe

Google Web Toolkit. Elek Márton. Drótposta kft.

RIA Rich Internet Application

Objektumorientált programozás

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

JAVA webes alkalmazások

C++ programozási nyelv Konstruktorok-destruktorok

Bevezető. Servlet alapgondolatok

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Web programoz as

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

ISA szimulátor objektum-orientált modell (C++)

A JavaScript főbb tulajdonságai

Tartalom. A JavaScript haladó lehet ségei. Megjelenés. Viselkedés. Progresszív fejlesztés. A progresszív fejlesztés alapelvei

RIA Rich Internet Application. Komplex felhasználói felülettel rendelkező web-alkalmazások

RIA Rich Internet Application

Osztályok. 4. gyakorlat

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

A szerzõrõl... vii Köszönetnyilvánítás... ix Bevezetés... xi A könyv példakódjai... xiii Áttekintés... xv Tartalomjegyzék... xvii

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

Programozási nyelvek Java

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Web-fejlesztés NGM_IN002_1

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Flex: csak rugalmasan!

Webes alkalmazások fejlesztése

OOP: Java 8.Gy: Gyakorlás

Symfony kurzus 2014/2015 I. félév. Controller, Routing

Java és web programozás

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Programozási nyelvek Java

500. AA Megoldó Alfréd AA 500.

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

ZH mintapélda. Feladat. Felület

Szoftvertechnolo gia gyakorlat

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Programozási alapismeretek 4.

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

500. CC Megoldó Alfréd CC 500.

Programozás II. 6.Öröklés Dr. Iványi Péter

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Pénzügyi algoritmusok

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Mozgásvizsgálati mérések internetes megjelenítése. Zemkó Szonja - Dr. Siki Zoltán

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Összefüggő szakmai gyakorlat témakörei évfolyam. 9. évfolyam

OOP #14 (referencia-elv)

PHP5 Új generáció (2. rész)

ELTE SAP Excellence Center Oktatóanyag 1

Objektum orientált kiterjesztés A+ programozási nyelvhez

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

Java felhasználói felület

A Skype architektúrája. P2P hálózat Supernode ok, peer-ek, login server

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Átírás:

WEB-PROGRAMOZÁS II 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: a) Legyen a Felhasznalo osztálynak egy osztály szintű publikus változója, amelyben számolja a létrehozott példányai számát. b) A Felhasznalo osztály valósítsa meg a Kiir interfészt és a Kiir metódusa írja ki a példány összes tulajdonságát. c) Definiáljon egy Hallgato osztályt, amelyet a Felhasznalo osztályból származtatunk és rendelkezik egy szak tagváltozóval, amely csak az osztályon belül érhető el, és a konstruktorban kap egy a konstruktornak paraméterként átadott értéket. d) Írja meg a Hallgato osztály Kir metódusát, amely a példány összes tulajdonságát írja ki és felhasználja a szülőosztály Kiir metódusát. e) Írjon meg egy tesztelő programot, amely létrehoz két Felhasznalo és egy Hallgato típusú objektumot, majd kiírja a három létrehozott objektum tulajdonságait a Kiir metódus segítségével, és végül kiírja a Felhasznalo osztály szintű publikus változójának az értékét. <?php interface Kiir { public function kiir(); class Felhasznalo implements Kiir { protected $nev; protected $cim; protected $kod; protected $jelszo; protected $szuletes_datum; public static $darab = 0; public function construct($nev, $cim, $kod, $jelszo, $szuletes_datum) { $this->nev = $nev; $this->cim = $cim; $this->kod = $kod; $this->jelszo = sha1($jelszo); $this->szuletes_datum = $szuletes_datum; ++self::$darab; public function kiir() { echo "nev: $this->nev<br/>"; echo "cim: $this->cim<br/>"; echo "kod: $this->kod<br/>"; echo "jelszo: $this->jelszo<br/>"; echo "szuletesi datum: $this->szuletes_datum<br/>"; class Hallgato extends Felhasznalo { private $szak;

public function construct($nev, $cim, $kod, $jelszo, $szuletes_datum, $szak) { parent:: construct($nev, $cim, $kod, $jelszo, $szuletes_datum); $this->szak = $szak;?> e: public function kiir() { parent::kiir(); echo "szak: $this->szak<br/>"; <?php $f1 = new Felhasznalo('egyik', 'itt', 'egyikkod', 'f1', '1111.11.11'); $f2 = new Felhasznalo('masik', 'ott', 'masikkod', 'f2', '1212.12.12'); $h = new Hallgato('hallgato', 'amott', 'hallgatokod', 'h1', '1000.01.01', 'mernok informatika'); $f1->kiir(); $f2->kiir(); $h->kiir(); echo "ossz darabszam: " + Felhasznalo::$darab;?> 2. Egészítse ki a következő mondatokat a PHP5 objektum orientált tulajdonságai alapján: A(z) parent egy osztály deklarációjában az aktuális osztály szülőosztályát, a(z) self az aktuális osztályt, a(z) $this az aktuális példányt jelöli. A(z) class az osztályok deklarációjához használt kulcsszó, a(z) extends kulcsszót az alosztályok deklarációjában használjuk a szülőosztály megadása előtt. A(z) abstract kulcsszóval deklarált osztályokból nem hozható létre példány. A(z) static kulcsszóval deklarált változók és metódusok osztályszintű tagváltozók ill. metódusok. A(z) protected kulcsszóval deklarált tagváltozók és tagfüggvények nem érhetők el közvetlenül az osztály felhasználói által, csak egy, az osztálytól öröklő alosztályon belül. A(z) private kulcsszóval deklarált tagváltozók és tagfüggvények csak azon az osztályon belül hozzáférhetők, amelyben meghatározták őket. Ha egy tagváltozó vagy tagfüggvény deklarációjában nem használunk a fenti kulcsszavak egyikét sem, akkor ez ekvivalens a(z) public kulcsszóval megtett deklarációjával. 3. Mi lesz a következő PHP 5 szkriptnek a kimenete? <?php class vphp5osztaly { static private $vosztaly = Array(); private $vpeldany; function construct($param) {

self::$vosztaly[] = $this; $this->vpeldany = $param; public function vosztalylista() { echo "Objektumok száma: ".count(self::$vosztaly)."<br />"; echo "Objektumok: <br />"; for($i=0; $i< count(self::$vosztaly); $i++) echo self::$vosztaly[$i]->vpeldany."<br />"; for($i=0; $i<3; $i++) { $teszt = new vphp5osztaly($i.". példány"); vphp5osztaly::vosztalylista();?> igazabol valoszinuleg egy errort dob ki, mivel a vosztalylista() metodus nem statikus, de szerintem ez csak eliras, amugy a kimenet ilyesmi: Objektumok szama: 3 Objektumok: 0. peldany 1. peldany 2. peldany 4. Párosítsa a táblázat bal oldalán megadott PHP 5 nyelvi konstrukciók a jobb oldalon szereplő leírásokkal: a) self e) Egy osztály deklarációjában az aktuális osztály szülőosztályát jelöli. b) new a) Egy osztály deklarációjában az aktuális osztályt jelöli. c) $this ) Egy osztálynak egy alosztályát jelöli. d) extend g) Osztályhoz kötődő tagváltozókat és tagfüggvényeket jelöli. e) parent d) Öröklési kapcsolatot kifejező kulcsszó. f) instanceof b) Példányt létrehozó operátor. g) static c) Egy osztály deklarációjában az aktuális példányt jelöli. f) Osztályba való tartozás (az osztálynak példánya-e) logikai operátora 5. Igazak (I) vagy hamisak a következő állítások: a. igaz A webszolgáltatások XML alapú szabványos üzeneteken keresztül kommunikálnak más szoftverekkel. b. hamis A webszolgáltatások csak webalkalmazásokból érhetők el. c. igaz A WSDL (webszolgáltatásokat leíró nyelv) XML alapú. d) igaz? A webszolgáltatások kommunikálhatnak egymással. 6. Írja le röviden a következő elnevezések jelentéseit: a) Webszolgáltatás Egy webszolgáltatás egy olyan szoftver, amely elérhető web-en keresztül és XML alapú szabványos üzeneteken keresztül kommunikál más szoftverekkel (kérelmeket fogad és válaszokat küld). b) HTTP A HTTP egy állapotmentes, kérés-válasz alapú protokoll, kliens és szerver között. c) SOAP (az eredeti nevéből: Simple Object Access Protocol). Alkalmazások közötti üzenet küldésére használt XML alapú protokoll. A webszolgáltatást használó alkalmazás üzenete és a webszolgáltatás válaszüzenete struktúráját leíró protokoll.

d) WSDL (Web Services Description Language). A webszolgáltatás nyilvános felületének a leírását szolgáló, XML alapú protokoll. e) UDDI (Universal Description, Discovery, and Integration). XML alapú nyilvántartó rendszer. Az UDDI lehetővé teszi a webszolgáltatások felfedezését az Interneten és integrálását az alkalmazásba úgy, hogy SOAP üzenetekkel lekérdezhető és hozzáférést biztosít a WSDL-hez. 7. A következő JavaScript kód definiálja a Car nevű osztályt. a) Adja hozzá az osztály definíciójához a cc nevű tagváltozót. Az új tagváltozó a példányok létrehozásakor kap egy a konstruktőrnek paraméterként átadott icc értéket. b) Írja meg a definiált osztály showcar metódusát, amely egy alert ablakban (csak egy alert utasítást írunk meg) jeleníti meg a példány következő tulajdonságainak az értékeit: szín (color), ajtók száma (doors), fogyasztás (mpg) és hengerűrtartalom (cc). function Car(sColor, idoors, impg, icc) { this.color = scolor; this.doors = idoors; this.mpg = impg; this.cc = icc; this.drivers = new Array(); this.showcar = function () { alert(this.color + " " + this.doors + " " + this.mpg + " " + this.cc) ; 8. Milyen tartalmú üzenetablakok jelennek meg, az alábbi JavaScript kód végrehajtására? function Car(sColor, idoors, impg) { this.color = scolor; this.doors = idoors; this.mpg = impg; this.drivers = new Array( ); Car.prototype.showColor = function () { alert(this.color); ; var ocar1 = new Car("piros", 4, 23); var ocar2 = new Car("kék", 3, 25); ocar1.drivers.push("péter"); ocar1.drivers.push("lászló"); ocar2.drivers.push("mária"); ocar1.showcolor(); // piros ocar2.showcolor(); // kek alert(ocar1.doors); // 4 alert(ocar2.doors); // 3 alert(ocar1.drivers); // Peter,Laszlo alert(ocar2.drivers); // Maria

9. Egészítse ki az alábbi kódot a pontokkal megjelölt helyeken, hogy AJAX segítségével a div elemben jelenítse meg az input elembe beírt felhasználó névre az user.php szkript által megatározott és visszaküldött adatokat. <html> <body> <script type="text/javascript"> function ajaxfunction() { var xmlhttp = /* Az xmlhttp objektum létrehozása */; xmlhttp.onreadystatechange=function() { if(xmlhttp.readystate==4){ document.getelementbyid("ebbe").innerhtml = xmlhttp.responsetext; var url = "user.php?sid=" + Math.random(); xmlhttp.open("get", url, true); // ajax hívás létrehozása xmlhttp.send(null); // ajax hívás végrehajtása </script> <form name="myform"> Name: <input type="text"onblur="ajaxfunction();" name="username" /> </form> <div id= ebbe ></div> </body> </html> 10. Írja meg egy JavaScript programrészletet, amely megvalósít egy Ajax hívást a következő tulajdonságokkal: URL: teszt.php Módszer: GET Paraméter: par Értéke: 455 Mód: a) Szinkron //... var url="teszt.php?par=455"; url+="&sid="+math.random(); xmlhttp.onreadystatechange=kiir; xmlhttp.open("get",url,false); xmlhttp.send(null); function kiir() { if (xmlhttp.readystate==4) { alert(xmlhttp.responsetext); b) Aszinkron //... var url="teszt.php?par=455"; url+="&sid="+math.random(); xmlhttp.onreadystatechange=kiir; xmlhttp.open("get",url,true); xmlhttp.send(null); function kiir() {

if (xmlhttp.readystate==4) { alert(xmlhttp.responsetext); Jelenítsük meg egy üzenetablakban ( alert ) a hívás eredményét mindkét esetben. 11. Igazak (I) vagy hamisak a következő állítások a JavaScript programozással kapcsolatban: a. igaz Az osztályok megadására használt konstruktőr módszer esetében a metódusok annyiszor jönnek létre, ahány példányt hozunk létre az osztályból. b. hamis Az osztályok megadására használt prototípus módszer esetében a metódusok annyiszor jönnek létre, ahány példányt hozunk létre az osztályból. c. igaz Az osztályok megadására használt hibrid konstruktőr/prototípus módszerrel érhető el, hogy minden példány saját tulajdonságaival rendelkezik, de a metódusok közösek. d. igaz Az alosztályok metódusaiban nem érhetők el a szülőosztályok metódusai. e. hamis JavaScript-ben nem megvalósítható a többszörös öröklés. f. igaz Az alosztályok megadására használt hibrid módszer esetén a többszörös öröklés megvalósítható. 12. a) Melyik az AJAX legfontosabb tulajdonsága? nem egy programozási nyelv, JavaScript és HTTP kérelmeken alapszik, Web szabványokat használ (JavaScript, XML), lehetővé teszi gyorsabb és felhasználóbarát webalkalmazások fejlesztését. Az AJAX egy funkció a böngészőkben, amely segítségével a háttérben kérés küldhető a szerver felé, a kérésre kapott választ JavaScript-ből feldolgozhatjuk és az oldal egyes részeit frissíthetjük, módosíthatjuk. Tesszük mindezt anélkül, hogy frissítenénk az oldalt vagy elnavigálnánk onnan. b) Mi a különbség a szinkron és az aszinkron AJAX kérelmek között? Az aszinkron adatátvitel olyan kétirányú párbeszéd, ami időeltolódással történik, lehetővé téve, hogy az adatok a maguk idejében érkezzenek, amikor hozzáférhetők. Más szóval megtehetjük, hogy kérelmet indítunk a kiszolgálóhoz, folytatjuk a többi adat feldolgozását, majd fogadjuk a válaszokat, amikor a kiszolgáló elérhető. Szinkron kérésnél viszont, amíg a kérés végrehajtása folyik, addig a teljes böngésző zárolt állapotban van. c) Melyik az XMLHttpRequest főbb tulajdonságai, metódusai? open() send() onreadystatechange readystate responsetext 13. Mit hajtanak végre a kövekező jquery-t használó kód részletek: a) $( #divelem ).html( Tartalom ) a divelem id-ju html elem tartalmat Tartalom -ra csereli. b) $( #divelem ).append( Tartalom ) a divelem id-ju html elem tartalmahoz a Tartalom szot hozzafuzi. 14. Mit ért MVC tervezési minta alatt? Modell - View - Controller (Modell - Nézet - Vezérlő) tervezési minta

Az adathozzáférés és az ún. üzleti logika elválik az adat prezentációjától, melyet egy köztes komponens bevezetésével érünk el. Model - Ebben a részben fogalmazódik meg az üzleti logika. View - Ez itt a megjelenítéssel/prezentációval kapcsolatos osztályokat írja le. Controller - A Model és a View-k összekötéséért felel. 15. Írja le röviden az MVC tervezési minta előnyeit és hátrányait. Az MVC előnyei: - az üzleti logika elválik az interakciós logikától - Az alkalmazás egyes részei jól elhatárolódnak egymástól, ezáltal újrafelhasználhatóvá válik a kód - Elősegíti a csapatmunkát, mindenki a saját feladatára összpontosíthat Az MVC hátránya: - Jól meg kell tervezni egy nagy adag osztályt, amik ezt az elhatárolódást szavatolják és nyilván sokkal több időt igényel.