200 likes | 270 Views
Appletek és Servletek. Demeter Lehel 641-es csoport. A Java programozási nyelv 1. egy hagyományos értelemben vett programozási nyelv objektum orientált , csak objektum orientáltan lehet programozni megoldható az összes hagyományos programozási feladat, viszont ennél többről van szó
E N D
Appletek és Servletek Demeter Lehel 641-es csoport
A Java programozási nyelv1 • egy hagyományos értelemben vett programozási nyelv • objektum orientált, csak objektum orientáltan lehet programozni • megoldható az összes hagyományos programozási feladat, viszont ennél többről van szó • a Világhálóval kapcsolatos problémákat is képes megoldani
A Java programozási nyelv2 • az Internet programozási nyelvének is nevezik • az Interneten script nyelvekkel megoldható a feladatok 80%-a, míg Java - val megoldható a fennmaradt 20% is • viszonylag egyszerű alkalmazásokat írni az Interneten keresztül más gépek felé adatokat továbbítani, dinamikus web oldalakat, felületeket generálni, létrehozni
Appletek1 • az Internetes Java alkalmazások létrehozásának leggyakrabban használt formái az applet alkalmzások • olyan Java programok, amelyek egy weblap keretén belül futnak Java-t támogató böngésző segítségével • egyszerűbbek, mint egy valódi Java alkalmazás, amelynek nincs szüksége további alkalmazásokra a futáshoz és egy kliens gépen futnak
Appletek2 • az Internetről bárhonnan betölthetőek és korlátozva vannak sok biztonsági megkötéshez • leginkább reklámcélokra használják az Interneten, mert animációk és hangok egyszerű beillesztését támogatják a weblap keretén belül • futtatásukhoz szükség van egy Java-t támogató böngészőre (Netscape 2.0, IE 3.0, HotJava, PowerBrowser, Mozilla, Opera …) vagy az appletviewer nevű programra, amely hozzátartozik a Java SDK-hoz, valamint szükség van a Java futtatási környezethez (JRE)
Az appletek képességei és korlátai • Java appletek segítségével készíthetünk teljes grafikus kezelőfelületeket • lehetőség van kommunikálni Interneten keresztül a gazdaszerverrel és más appletekkel a formok belül platformtól függetlenül • alapértelmezésben az appletek nem kommunikálhatnak más szerverrel, mint a kezdeményező szerverrel és nem férhetnek hozzá a lokális fájlrendszerhez • a Java-ból hiányzik a pointerkezelés, mert a program számára kiszabott memóriakeretek növelése nem biztonságos
Az appletek biztonsága • a Java biztonsági modellje úgy van fölépítve, hogy a Java appleteket és alkalmazásokat, mint ismeretlen, nem biztonságos objektumokat kezelje melyek egy biztonságos környezetben futnak. • habár a java appleteket nem fogják a közeljövőben sem igazán titkos alkalmazások fejlesztésére használni, a Java biztonsági modell rendkívül biztonságosnak minősül • a bytecode ellenőrző szerepe, hogy ellenőrizzen minden egyes feltöltött Java osztályt • az osztálykezelő (class loader) erősíti a biztonságot irányítva az appletműveleteket futás közben
Java appletek készítése1 • a Java-ból hiányzik a többszörös öröklődés, hogy elkerüljék a C programok túlságosan bonyolult nehezen átlátható voltát, így minden osztálynak csak egy közvetlen őse lehet, amit a Javaban super-nek neveznek • minden applet közös őse az Applet osztály, amely hozzáköti az alkalmazást a browser-hez • Egy applet életciklusa négy fontos eseményen megy keresztül: - inicializálás, start, megállás (stop), megszűnés (destroy) • ezen négy esemény megfelel az Applet osztály négy metódusának
Java appletek készítése2 • init() – akkor hívódik meg, amikor az applet először töltődik be. Az applet életciklusa során csak egyszer • start() – az inicializálás után hajtódik végre, valamint minden egyes alkalomkor, amikor az applet újraindul. Ez olyankor történik, ha a felhasználó átvált egy másik browser ablakra vagy alkalmazásra, mint amely az appletet tartalmazza, majd később visszavált.
Java appletek készítése3 • stop() – akkor hajtódik végre, ha az appletet tartalmazó ablak megszűnik aktívnak lenni. Ilyenkor szünetel az applet futása • destroy() – ha az applet teljesen befejezi futását. Általában akkor következik be, ha a felhasználó kilép a browserből vagy az applet frissítődik a host szerverről. Arra lehet használni, hogy fölszabadítsuk a lefoglalt erőforrásokat, pl. threadek vagy adatbázis kapcsolatok
Java appletek készítése4 • fordítás után class kiterjesztésű fájl(ok) jönnek létre • a Java futtatási környezet végre tudja hajtani • az appleteket egy weblap keretén belől az <APPLET> HTML tag code atributumának beállításával lehet meghívni vagy az appletviewer nevű program segítségével, amely hozzátartozik a Java SDK-hoz • Példa <APPLET CODE=”test.class” WIDTH=400 HEIGHT=400> szöveg ha nincs java támogatottság </APPLET>
Java appletek készítése5 • az appletek kommunikálhatnak egymás között ha: - megosztják ugyanazt a browser ablakot - a browser két különböző ablakában futnak - két különböző kliens browseren futnak - különböző szerverről voltak betöltve
Servletek1 • a Netscape és Microsoft különféle próbálkozásaira a szerver-oldali Java programozásra a JavaSoft kifejlesztette a Servlet API-t standard szerver-oldali Java eszközként • a servlet egy speciális Java program, amely egy webszerverrel szorosan együttműködve a szerver oldalon lehetővé teszi HTML oldalak dinamikus létrehozását és paraméterezését különböző átviteli (például HTTP) protokollon keresztül
Servletek2 • a servlet ugyanaz a webszervernek, mint egy applet a böngészőprogramnak, csak nem rendelkezik grafikus felhasználói felülettel • erre nincs is szükség, mivel a servletek - mint a név is mutatja - csakis szerver funkciókat képesek elvégezni • pontosabban a webszerver funkcionalitását lehet velük kibővíteni, mert ha egy kliens olyan HTML oldalt kér a webszervertől, amit egy servlet állít elő, akkor a webszerver tulajdonképp csak továbbküldi a kérést a servlet felé, majd a servlet által generált oldalt továbbítja a kliensnek • a servleteket tehát lehet ügy tekinteni mint platformfüggetlen pótlását a CGI-nek.
Servletek3 • egy nagyon fontos előnye a servleteknek a CGI-vel szemben a gyorsaság. A CGI programokkal ellentétben, a servletet csak egyszer kell betölteni a memóriába és ez után innen használódnak az inicializálás után • servletek threadként keletkeznek, és természetüktől fogva többszálasak (multithreaded) • platformfüggetlenek • a Java Server Page (JSP) tehnológia a servlet tehnológia kiterjesztése, amely speciálisan a HTML és XML támogatására készült. A JSP tehnológia egyszerűbbé teszi a kötött, statikus template és a dinamikus tartalom egybeágyazását
Servletek4 • a servletek tudnak válaszolni minden típusú (socket) kérésre, általában Web szerverekhez kapcsolódó alkalmazások kibővítésére használják, ezekhez az alkalmazásokhoz a Java Servlet tehnológia külön specifikus osztályszerkezetet nyújt • a javax.servlet és javax.servlet.http csomagok tartalmazzák a servletek írásához szükséges interfészeket meg osztályokat • a servlet a webszerveren futó servlet engine-el kéréseken (request) és válaszokon (response) keresztül kommunikál • a kliens program, amelyet bármely programozási nyelvben meg lehet írni kérést küld a webszervernek, amelyet a webszerver servlet engine-e feldolgoz és továbbküld a servlet felé. Ezután a servlet visszaküld egy választ, amely majd a web szerveren keresztül eljut a kliensig
Servletek5 • a servletek futtatásához szükség van egy servleteket támogató Web szerverre. (pl. Apache TomCat, Sun iPlanet) az ilyen engine-ket servlet konténereknek is nevezik • minden servletnek szükséges implementálnia a Servlet interfészt, amely definiálja a servlet életciklusának metódusait. A HttpServlet osztály kibővítésével lehetőségünk van HTTP specifikus szolgáltatásokat elérni (doGet, doPost)
Servletek6 • ha nem létezik a servlet egy futó példánya, akkor: – betölti a servlet osztályt – létrehozza a osztály egy példányát (instance) – meghívja ennek az init() metódusát • meghívja a service() metódust, átadva egy kérés (request) és válasz (response) objektumot • végül, ha a konténer-nek szüksége van a servlet eltávolítására, meghívja ennek a destroy() metódusát • a servlet életciklusainak követését valamint az ezekbe való beavatkozást listener objektumok segítségével lehet megoldani, melyeknek metódusai kötődnek a servlet eseményeihez.
Servletek7 A servletek nem csak HTTP szerverek programozására alkalmasak, hanem FTP, Gopher, Telnet, Mail és más szolgáltatások programozására, vagyis bármely közismert socket-orientált szervert támogatja.