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ó a Világhálóval kapcsolatos problémákat is képes megoldani
A Java programozási nyelv 2 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
Appletek 1 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
Appletek 2 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ése 1 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ése 2 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ése 3 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ése 4 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 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 szöveg ha nincs java támogatottság
Java appletek készítése 5 az appletek kommunikálhatnak egymás között ha: - megosztják ugyanazt a browser ablakot - 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
Servletek 1 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
Servletek 2 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.
Servletek 3 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
Servletek 4 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
Servletek 5 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)
Servletek 6 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.
Servletek 7 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.
Köszönöm a figyelmet!