Interaktív weboldalak készítése



Hasonló dokumentumok
Szervlet-JSP együttműködés

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Készítette: Gál Tamás. A tananyag programozott változata itt érhető el: Webfejlesztés

Bevezető. Servlet alapgondolatok

Java Servlet technológia

Menetkövetés lehetőségei

Java programozási nyelv /ősz 9. óra. Java Server Pages. JSP technika alapjai

Java technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.

JavaServer Pages (JSP) (folytatás)

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

Internet technológiák

JEE tutorial. Zsíros Levente, 2012

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Java és web programozás

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Web programozás. 3. előadás

Java grafikai lehetőségek

BME MOGI Gépészeti informatika 8.

Adóhátralék kezelés egyszerűen. Használati útmutató

Programozási technológia

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt

Adóhátralék kezelés egyszerűen. Telepítési útmutató. A program futtatásához Windows XP, Windows 7, 8 operációs rendszer szükséges.

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

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

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Java Servletek alapjai

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

Biztonság java web alkalmazásokban

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

Az autorizáció részletes leírása

Segédanyag: Java alkalmazások gyakorlat

web works hungary Rövid technikai tájékoztató a webhosting szolgáltatásról. (PLESK szerver)

Java szervlet technológia

Tájékoztató. Használható segédeszköz: -

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

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

Swing GUI készítése NetBeans IDE segítségével

Digitális aláíró program telepítése az ERA rendszeren

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

Java servlet technológia 1 / 40

API tervezése mobil környezetbe. gyakorlat

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

Webes alkalmazások fejlesztése

Hungaropharma Zrt. WEB Áruház felhasználói útmutató. Tartalomjegyzék

Stateless Session Bean

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

Java Programozás 11. Ea: MVC modell

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

Digitális aláíró program telepítése az ERA rendszeren

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

PHP-MySQL. Adatbázisok gyakorlat

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

HTML alapok 1. Minimális HTML file: <HTML> <HEAD> <TITLE> cím </TITLE> </HEAD> <BODY>... </BODY> </HTML> Formátum parancsok:

EDInet Connector telepítési segédlet

Hiba bejelentés azonnal a helyszínről elvégezhető. Egységes bejelentési forma jön létre Követhető, dokumentált folyamat. Regisztráció.

Tudás Reflektor. Copyright 2011; Kodácsy Tamás;

Mercedes XENTRY Portal Pro interfész

Ügyfélforgalom számlálás modul

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Rendszergazda Debrecenben

Java servlet technológia. Web alkalmazások. Servlet-et használni érdemes, ha. JSP-t használni érdemes, ha. Servlet-JSP kombináció (MVC) szükséges, ha

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba

A FileZilla program beállítása az első belépés alkalmával

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

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows7 operációs rendszer és Internet Explorer 8-es verziójú böngésző esetén

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Web programoz as

web works hungary Rövid technikai tájékoztató Mars (mars.intelliweb.hu) szerverünkkel kapcsolatban meglévő és új ügyfeleink számára.

CobraConto.Net v0.36 verzió. Újdonságok a CC-Net-ben:

Java programozási nyelv 6. rész Java a gyakorlatban

RBLDNS DNS-based blocklists management felhasználói kézikönyv

Elektronikus levelek. Az informatikai biztonság alapjai II.

First Voice Kft. Stilldesign Üzletág

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

A felhasználó a web-böngészőben megadja az alkalmazás URL-címét.(link és kedvencek használhatóak)

PHP. Adatbázisok gyakorlat

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

1. Létező postafiók megadása

A Java nyelv. Dialógus ablakok. Elek Tibor

Bár a szoftverleltárt elsősorban magamnak készítettem, de ha már itt van, miért is ne használhatná más is.

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

Invitel levelezés címek esetén

Belépés a GroupWise levelező rendszerbe az Internet felől

Webszolgáltatás és XML alapú adatbázis. 1. Az adatbázis megtervezése

Felhasználói kézikönyv - Android kliens


Programozási nyelvek Java

SZOLGÁLTATÓI NYILVÁNTARTÁSI RENDSZER FELHASZNÁLÓI KÉZIKÖNYV

Levelező kliensek beállítása

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

TERC V.I.P. hardverkulcs regisztráció

JAVA webes alkalmazások

A Matarka szerszámosládája

ArtVisual saldoxpress 2008 Számlázó program általános számlázási leírás. Utolsó módosítás:

Java programozási nyelv 10. rész Input/output kezelés

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

VII. Appletek, grafika

Átírás:

Java programozási nyelv 2007-2008/ősz 7. óra Interaktív weboldalak készítése XHTML form Adatok feldolgozása szervletekkel legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu

Interaktív weboldalak készítése Témakörök XHTML Form elemek Szervlet kérés paraméterei Form adatok feldolgozása NetBeans támogatás 2

Űrlapok kezelése Az XHTML oldalakban van lehetőség a felhasználó által kitöltendőűrlapok megjelenítésére. Ezekben a hagyományos programozási nyelvekben megismertekhez hasonló elemek jelenhetnek meg (szövegmező, lenyíló stb.), feldolgozásuk azonban nem a már megismert eseményorientált módon történik Az űrlapok adatai elérhetők kliensoldali technikákkal (JavaScript, Appletek), vagy visszaküldhetők a webszerverhez feldolgozás céljából A Java megoldása erre a szervleteken alapszik. Az űrlap adatainak elküldésekor a böngésző a HTTP prokoll segítségével az eddig megismert módon kapcsolódik a szerverhez, az elérni kívánt erőforrás azonosítóján túl azonban elküldi az űrlap tartalmát is A szervlet az így kapott adatok feldolgozása után az eddig megismert módon küldhet vissza valamilyen (általában a küldött adatoktól függő) választ 3

XHTML form elem Egy űrlapot az alábbi módon definiálhatunk: <form method="post" action="http://szerver/wapp/szervlet" > </form> Action tulajdonság Az erőforrás címe, ahová a böngésző az űrlap adatait elküldi majd (esetünkben egy szervlet). Ez nem feltétlenül azonos azzal a kiszolgálóval, ahonnan ez az oldal letöltődött Method tulajdonság lehetséges értékei: GET a böngésző a HTTP GET parancsot fogja elküldeni a megadott címre. A form adatai ilyenkor az URL részeként adódnak át, emiatt ez csak kevés adat esetén ajánlatos POST a böngésző a HTTP POST parancsot fogja elküldeni a megadott címre. A form adatai ilyenkor a kérés fejlécében adódnak át, elvileg korlátlan mennyiségű adat elküldhető 4

Form elemek - szövegbeviteli mező Használatára példa <input type= "text" name= "mezonev" /> Elérhető attribútumok name a vezérlő neve size mező szélessége maxlength beírható szöveg maximális hossza value kezdeti érték readonly írásvédett mező disabled nem engedélyezett mező type értéke meghatározhat más típusokat text egyszerű szövegbeviteli mező password jelszó megadás (beírt szöveg nem látszik) file megjelenik mellette egy böngészés gomb hidden rejtett mező (az egész mező láthatatlan) Továbbított adat: mezőnév=tartalom 5

Form elemek többsoros szövegmező Használatára példa <textarea name="soksor" cols="30" rows="10" wrap="virtual"> Alapértelmezett szöveg </textarea> Elérhető attribútumok name a vezérlő neve cols mező szélessége rows sorok száma wrap tördelés módja Továbbított adat: mezőnév=tartalom A továbbított tartalom pontosan megfelel annak, amit a felhasználó beírt, tehát az összes szóköz, soremelés elküldésre kerül 6

Form elemek - checkbox Használatára példa <input type="checkbox" name="mezonev"/> Elérhető attribútumok name a vezérlő neve value értéke (ha nincs megadva, akkor on ) checked alapértelmezett érték A más programozási nyelvekben megszokott módon az egymás mellé helyezett checboxok értékei nincsenek egymásra hatással Továbbított adat: Ha be van jelölve: mezőnév=érték Ha nincs bejelölve: nincs 7

Form elemek - radiobutton Használatára példa <input type="radio" name="kedvenc" value="kuty" />Kutya <input type="radio" name="kedvenc" value="macs" />Macska Elérhető attribútumok name a vezérlő neve value értéke (ha nincs megadva, akkor on ) checked alapértelmezett érték A komponens csak a gombot rajzolja ki, a szöveget mellé már egyszerű szövegként kell kiírni A form tartalmazhat több azonos nevű radiobutton komponenst, ilyenkor ezek közül egyszerre csak egy lehet kiválasztott Továbbított adat: Ha valamelyik be van jelölve: mezőnév=érték Ha egyik sincs bejelölve: nincs 8

Form elemek - lista Használatára példa <select name="allatok" multiple="multiple"> <option value="kuty">kutya</option> <option value="macs">macska</option> </select> Elérhető attribútumok name a vezérlő neve multiple több elem is kiválasztható rows megjelenő sorok száma Az értékeket <option> elemek között kell megadni: value az elküldendő érték selected alapértelmezetten kiválasztott legyen-e Továbbított adat: Ha egy elem be lett jelölve: mezőnév=érték Több elem esetén: mezőnév=érték,mezőnév=érték Ha egyik sincs bejelölve: nincs 9

Form elemek - gombok Adatok elküldése a szervernek <input type="submit" value="adatok elküldése" /> Elérhető attribútumok name a vezérlő neve value a gombon megjelenő felirat Mezők törlése (alapértelmezett érték betöltése) <input type="reset" value="adatok törlése" /> Elérhető attribútumok name a vezérlő neve value a gombon megjelenő felirat 10

Interaktív weboldalak készítése Témakörök XHTML Form elemek Szervlet kérés paraméterei Form adatok feldolgozása NetBeans támogatás 11

HTTPServlethez kapcsolódó osztályok A HTTPServlet kérést kiszolgáló metódusai minden egyes kérés esetén az alábbi típusú objektumokat kapják paraméterül: HTTPServletRequest A bejövő kérés adatait tartalmazza, a szervlet ezen keresztül kap információkat HTTPServletResponse A kimenő válasz adatait tartalmazza, a szervlet ezen az objektumon keresztül tudja visszaküldeni a választ és annak paramétereit a kliens számára A szervlet működése közben folyamatosan elérhető ServletContext A szervletet tartalmazó kontextus adatai. Mivel ez menet közben nem változhat, ezért nem a kérés paramétere, hanem az inicializáláskor állítódik be. A szervlet működése során azonban bármikor lekérdezhető a getservletcontext() metódus segítségével 12

HTTPServletRequest metódusai Kérés módjának lekérdezése public String getprotocoll() Visszatérési értéke a kérés által használt protokoll neve és verziószáma (egy szervlet ugyanis nem feltétetlenül csak a HTTP protokollon keresztül érhető el) public String getmethod() Visszatérési értéke a kérésben adott parancs (GET, POST stb.) Kapcsolat adatainak lekérdezése public String getremotehost() A kérést indító gép IP címe public int getremoteport() A kéréshez tartozó kapcsolat távoli portszáma public String getlocalname() A kérést kiszolgáló szerver IP címe. Lényeges lehet, ha ugyanaz a szerver több különböző néven is elérhető a kliensek számára public int getlocalport() A kéréshez tartozó kapcsolat helyi portszáma 13

HTTPServletRequest metódusai Form által küldött paraméterek lekérdezése public String getquerystring() Az URL részeként küldött paraméterstring (tulajdonképpen a teljes URL? utáni részét adja vissza) Hozzáférés egyetlen paraméterhez public String getparameter(string name) Visszaadja a megadott nevű paraméter értékét. Csak akkor használható, ha biztosak vagyunk abban, hogy a beérkező érték egyedi lesz (pl. egy szövegmező tartalma) public String[] getparametervalues(string name) Visszaadja a megadott nevű paraméterhez tartozó értékeket (pl. listána esetén ha több elem is kiválasztható, akkor ugyanazon a néven megkapjuk az összes kiválasztott elem értékét, ez a metódus ezeket egy tömbben adja vissza) public Enumeration getparameternames() A felsorolás tartalmazza a böngésző által elküldött összes paraméter nevét 14

HTTPServletRequest metódusai Küldött adatokhoz való hozzáférés public String getcharacterencoding() A kliens által a törzsadatok küldésekor használt karakter kódolási mód public int getcontentlength() Küldött törzsadat hossza public String getcontenttype() A kliens által küldött adat MIME típusa public ServletInputStream getinputstream() Csatorna a küldött adatok kiolvasásáshoz. A csatornáknál megismert módon ezen a streamen keresztül közvetlenül, vagy szűrők segítségével tudunk hozzáférni a küldött adatokhoz public BufferedReader getreader() throws java.io.ioexception Visszatérési értéke egy BufferedReader objektum, ami hozzá lett kapcsolva az előző adatfolyamhoz. Az előző metódus által visszaadott objektummal együtt nem használható 15

HTTPServletRequest metódusai HTTP fejlécmező kiolvasása public String getheader(string name) Visszaadja a megadott nevű fejlécmező értékét (vagy ha nincs ilyen a kérésben, akkor null-t) public long getintheader(string name) Egész szám típusú fejlécmező értékének kiolvasása public long getdateheader(string name) Dátum típusú fejlécmező értékének kiolvasása public Enumeration getheaders(string name) Több értéket is tartalmazó fejlécmezőknél az értékeket tartalmazó tömb lekérdezése (pl. Accept-Language ) public Enumeration getheadernames() Visszaadja a kliens által a kérésben küldött összes fejlécmező nevét Kérésben szereplő URL adataihoz való hozzáférés public StringBuffer getrequesturl() public String getrequesturi() public String getservletpath() 16

HTTPServletResponse metódusai Válasz típusának beállítása public void setcontenttype(string type) Paramétere egy MIME típus (pl. text/html ) public void setcontentlength(int len) Válasz hosszának meghatározása. Nem kötelező, de nagyobb mennyiségű adat esetén érdemes beállítani, hogy a felhasználó folyamatosan lássa, hogy a letöltés hol tart public void setcharacterencoding(string charset) A válasz küldése során használt karakter kódolási mód meghatározása Válasz elküldési lehetőségei public ServletOutputStream getoutputstream() throws IOException Byte alapú adatok visszaküldésére szolgáló csatorna (pl. ha a válasz nem egy HTML oldal, hanem egy kép) public PrintWriter getwriter() throws IOException Szöveges adat visszaküldésére szolgáló csatorna (a metódus visszatérési értéke tulajdonképpen egy szűrő a fenti streamen) 17

HTTPServletResponse metódusai Válasz státuszkód beállítása public void setstatus(int sc) Segítségként számos konstans érhető el, pl: public static final int SC_OK public static final int SC_NO_CONTENT public static final int SC_NOT_FOUND public static final int SC_INTERNAL_SERVER_ERROR public static final int SC_NOT_IMPLEMENTED public static final int SC_SERVICE_UNAVAILABLE public static final int SC_UNAUTHORIZED public static final int SC_MOVED_TEMPORARILY public static final int SC_MOVED_PERMANENTLY Átirányítási kérelem küldése public void sendredirect(string location) throws IOException A megadott címre irányítja át a böngészőt (valójában elküld egy átirányítás státuszkódot, és egy Location fejlécmezőt, ahol megadja az új URL-t 18

HTTPServletResponse metódusai Fejlécmezők beállítása public void addheader(string name, String value) Új szöveges típusú válasz fejlécmező felvétele public void addintheader(string name, int value) Új egész szám típusú fejlécmező felvétele public void adddateheader(string name, long value) Új dátum típusú fejlécmező felvétele 19

Interaktív weboldalak készítése Témakörök XHTML Form elemek Szervlet kérés paraméterei Form adatok feldolgozása NetBeans támogatás 20

Példa alkalmazás Készítsünk webalapú horoszkópkészítő alkalmazást, amelyik a kezdőoldalon bekéri a felhasználótól az alábbi adatokat: Név Születési dátum Mire vágyik Néhány ismerősének a neve Optimista/pesszimista horoszkópot kér A képernyőn nyomógombokkal legyen lehetőség az adatok elküldésére, illetve az űrlap adatainak törlésére. Az elküldés gombot lenyomva a fenti paraméterek alapján készítsünk el egy személyre szabott horoszkópot, ami formázott HTML dokumentumként a következő oldalon jelenjen meg! 21

Következő Adatok bekérését végzőűrlap <form action="kuruzslo" method="post"> Név: <input type="text" name="nev" size="50"/><br/> Kor: <input type="text" name="kor" size="3"/><br/> Optimista: <input type="radio" name="optimista" value="igen" checked="checked"/>igen <input type="radio" name="optimista" value="nem"/>nem<br/> Szereti az alábbiakat:<br/> <input type="checkbox" name="utazas"/>utazás <input type="checkbox" name="szerelem"/>szerelem<br/> Van ilyen nevű ismerőse:<br/> <select name="ismeros" multiple="multiple"> <option value="katalin">katalin</option> <option value="lajos">lajos</option> <option value="gizi">gizi</option> </select><br/> <input type="submit" value="horoszkóp készítés"/> <input type="reset" value="új személy adatai"/> </form> 22

Kuruzslo szervlet public class Kuruzslo extends HttpServlet { private String veletlennev(string nevek[]) { if (nevek == null nevek.length == 0) return "önmaga"; else return nevek[new Random().nextInt(nevek.length)]; } protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter getwriter(); boolean optimista = request.getparameter getparameter("optimista").equals equals("igen"); String[] ismeros = request.getparametervalues getparametervalues("ismeros"); out.println println("<html><head><title>tudományos horoszkóp</title></head><body>"); out.println println("<h2>kedves "+ request.getparameter("nev") +"!</h2>"); if (request.getparameter getparameter("utazas")!= null) { if (optimista) out.println println("utazás vár önre "+ veletlennev(ismeros) +" társaságában."); else out.println("utazásra a közeljövőben nem lesz lehetősége."); }... 23

Kuruzslo szervlet Szervlet folytatása if (request.getparameter getparameter("szerelem")!= null) { if (ismeros == null) out.println println("legyen nyitottabb a világ irányába és meglátja, hamarosan"); else out.println println("talán meglepő, de hamarosan "+ veletlennev(ismeros)+ " személyében "); out.println println(" rátalál élete párjára."); } } if (!optimista) out.println println("a kapcsolatnak azonban hamarosan végeszakad."); else { try { if (Integer.parseInt parseint(request.getparameter getparameter("kor")) > 50) out.println println("gyermekük azonban ebből a kapcsolatból nem lesz."); else out.println println("kapcsolatukat akár gyermekáldás is megkoronázhatja."); } catch (Exception e) {}; } out.print print("</body></html>"); out.close close(); 24

Interaktív weboldalak készítése Témakörök XHTML Form elemek Szervlet kérés paraméterei Form adatok feldolgozása NetBeans támogatás 25

Netbeans beépített Tomcat szerver A Netbeans 5.5.1 letölthető és telepíthető egy beépített Tomcat 5.5.17 webkonténerrel is A szerver konfigurációs állományai a c:\document and settings\java\.netbeans\5.5.1\apachetomcat-5.5.17_base könyvtárban érhetők el. A virtuális gépeken a szerver a 8084 porton érhető el Egy web project készítése során a fejlesztői környezet automatikusan készít egy ehhez tartozó context bejegyzést alapértelmezett beállításokkal Web alkalmazás fejlesztése során a project könyvtár web alkönyvtárában találhatóak a már megismert állományok A szerver elindítását/leállítását a fejlesztői környezet automatikusan elvégzi a program indításakor. Nyomkövetés esetén szintén nincs szükség kézi beavatkozásra. Az eddig megismert módon lehetőség van töréspontok elhelyezésére is 26

Új web project készítése File/New Project menüpontot kiválasztva Web kategória Web application project típus Számunkra érdekes további beállítások Project neve Project főkönyvtára Szerver kiválasztása az automatikus telepítéshez Beépített szerver beállításai Szerveren létrehozandó kontextus megnevezése 27

Konfigurációs állományok kezelése Új project készítése során a NetBeans létrehozza az új kontextushoz szükséges könyvtárszerkezetet és konfigurációs állományokat Ezek elérhetők a Projects ablakban található fa szerkezeten keresztül is: META-INF/context.xml WEB-INF/web.xml A web.xml állomány kezelhető egyszerű XML tartalomként is, vagy az alábbi füleken keresztül: 28

HTML szerkesztés HTML állományokat csatolhatunk a projecthez Az így létrehozott állományok a kontextus gyökérkönyvtárába kerülnek, ezért egyszerűen tudunk rájuk hivatkozni Beépített HTML szerkesztő A megnyitott HTML fájlok szerkesztését természetesen a fejlesztői környezet támogatja 29

Új szervlet létrehozása Új szervlet létrehozása További beállítási lehetőség, hogy igényeljük-e az automatikus telepítést, és ha igen, akkor milyen néven kerüljön a kontextusba Szervlet sablon A létrehozott alap szervlet megvalósítja a doget(...) és a dopost(...) metódust, (a napi gyakorlatban gyakran használt módon) mindkettő meghív egy processrequest(...) metódust. Így a beérkező kérés tényleges típusától függetlenül csak ezt kell megvalósítani. A generált kód ezen túl a getservletinfo() metódust is megvalósítja 30

Web alkalmazás futtatás Az eddigiekben megismert módon a futtatás a Run/Run main project menüpont segítségével történik Ez automatikusan lefordítja az osztályokat, telepíti őket a kontextusba, majd betölti a kezdőoldalt a böngészőben Nyomkövetés szintén a megismert módon, a Run/Debug maing project menüpont segítségével érhető el. Töréspontok elhelyezése a konzol alkalmazásokhoz hasonlóan történik. Ha egy kérés kiszolgálása ilyen sorra fut, a program futása megszakad, és a NetBeans nyomkövetése indul el A kezdőoldal módosítható a Project tulajdonságai között a Run pontban 31

Gyakorló feladat Készítse el a matematikai táblázatokat generáló szervlet új változatát: A, A kezdő statikus XHTML oldalon található elsőűrlapon legyen lehetőség megadni: szövegbeviteli mezőben egy számot rádiogombokkal a mértékegységet (fok vagy radián) listából kiválasztva a szögfüggvényt (sin, cos, tan) Az adatok elküldését követő oldalon jelenjen meg a keresett érték B, A kezdőoldalon található második űrlapon egy, a számokat 1-10-ig tartalmazó listából lehessen kiválasztani tetszőleges számokat (legalább egyet kötelező) Az adatok elküldését követő oldalon jelenjen meg az egyszer már megvalósított 10x10-es szorzótábla, viszont azok a mezők, amelyek sora vagy oszlopa ki lett választva, jelenjenek meg piros színnel 32

Házi feladat A, Készítsen egy valutaváltó webes alkalmazást Készítsen egy Valuta osztályt az alábbi mezőkkel, majd 4-5 ilyen elemmel töltsön fel egy tömböt: rövidítés (EUR) HUF-hoz viszonyított árfolyam (250) A dinamikusan generált kezdőoldalon a tömb alapján két rádiógombcsoportban jelenjenek meg a valuta nevek A felhasználó megad egy összeget, és hogy miről mire szeretne átváltani Egy checkbox segítségével lehessen beállítani, hogy felszámolunk-e kezelési költséget (ha igen, akkor ez mindig fixen 1000HUF) Az adatok elküldése után jelenjen meg a fizetendő összeg B, Készítsen egy kábeltv szolgáltató számára webalapú csatornainformációs szolgáltatást! Készítsen egy Csatorna osztályt az alábbi mezőkkel: csatorna neve csatorna nyelve korhatár Készítsen egy CsomagTarolo osztályt, amelyik tetszőleges formában tárolja az éppen elérhető csatornákat, illetve azt, hogy az aktuális csomagok (induló, családi, extra) ezek közül melyeket tartalmazzák! Készítsen webes alkalmazást, ahol a felhasználó megadja a nevét, életkorát, illetve milyen nyelveket beszél. Az adatok elküldése után a következő oldalon jelenjen meg, hogy az egyes csomagok választása esetén hány számára érdekes csatornát talál. 33

Ajánlott irodalom Az óra anyagához kapcsolódó irodalom Nyékyné Gaizler Judit: Java 2 útikalauz programozóknak 1.3 II.; ELTE TTK Hallgatói alapítvány, Budapest 469 480. o. Jason Hunter: Java szervletek programozása; O Really-Kossuth, Budapest, 2002 87 179. o. The J2EE 1.4 Tutorial Chapter 11: Java Servlet Technology http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html http://java.sun.com/j2ee/1.4/docs/tutorial/doc/j2eetutorial.pdf 34