A WEB programozása - Bevezetés. 2010. őszi félév Dr. Gál Tibor



Hasonló dokumentumok
Web-fejlesztés NGM_IN002_1

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

JavaServer Pages (JSP) (folytatás)

Web programoz as

Memória játék. Felhasználói dokumentáció

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

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

A Java EE 5 plattform

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

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

Objektumorientált programozás

Számológép. Bármilyen számítógépen működik, amin található böngésző és Java alkalmazás. Indító képernyő

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

A JavaServer Pages (JSP)

A JavaServer Pages (JSP)

JAVA webes alkalmazások

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS

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

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

A JavaServer Pages (JSP)

BEVEZETÉS AZ INTERNET ÉS A WORLD WIDE WEB VILÁGÁBA. Kvaszingerné Prantner Csilla, EKF

5-ös lottó játék. Felhasználói dokumentáció

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

webmathematica bemutatása

Természetesen készíts egy csempe nevű könyvtárat és ide mentsd az index.html állományt.

Web-fejlesztés NGM_IN002_1. A tárgy tartalma

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

Flex: csak rugalmasan!

Sakk-játék. Bármilyen számítógépen működik, amin található böngésző és Java alkalmazás. Indító képernyő

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

Gyakorlati vizsgatevékenység A

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

PHP. Adatbázisok gyakorlat

Gyakorlati vizsgatevékenység B

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

Összefüggő szakmai gyakorlat témakörei. 13 évfolyam. Információtechnológiai gyakorlat 50 óra

HTML és CSS. Horváth Árpád május 6. Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár

Ember-gép interfész. 1. gyakorlat. Csapó Tamás szeptember 16.

Internetes böngésző fejlesztése a mobil OO világban

Sakk játék. Feladat: JavaScript segítségével olyan programot kell írni, ami egy sakktáblát szimulál. Kiválasztásra változtatják a helyüket.

Web programozás. Internet vs. web. Internet: Az Internet nyújtotta néhány alapszolgáltatás:

Nyilvántartási Rendszer

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

Információs technológiák 0. Ea: Infó Mátrix (2015)

Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):

Java I. A Java programozási nyelv

WEBSZERKESZTÉS ELMÉLETI VIZSGAKÉRDÉSEK

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

A szemantikus világháló oktatása

TUDNIVALÓK A WEB-FEJLESZTÉS I. KURZUSRÓL

II. ADATLAP - Programmodul részletes bemutatása

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

A webprogramozás alapjai. Óbudai Egyetem Neumann János Informatikai Kar 2018/19/1 szemeszter

Elektronikus Információs és Nyilvántartási Rendszer a Doktori Iskolák fiatal kutatói részére

PHP MySQL, Java JDBC MySQL. Adatbázisok az iskolában 2012 Dr. Balázs Péter Palatinus Endre és Erdőhelyi Balázs diái alapján

A JavaScript főbb tulajdonságai

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

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

Alapfogalmak, WWW, HTTP

HTML. Dr. Nyéki Lajos 2016

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

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

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

Ajax és Echo 2. Bokor Attila

Zimbra levelező rendszer

ALAPÍTÁSI ENGEDÉLYT KAPOTT KÖNYVTÁRI KÉPZÉSI PROGRAMOK Szakmai programok Budapest Budavári Palota F. épület

Internet, Az internet főbb szolgáltatásai web keresőszolgáltatásokkal Keresőrendszerek: Kulcsszavas 2) Egyéb keresők: Metakeresők gyűjtőkörű keresők

Web programozás I. 4. előadás

kodolosuli.hu: Interaktív, programozást tanító portál BALLA TAMÁS, DR. KIRÁLY SÁNDOR NETWORKSHOP 2017, SZEGED

Olyan eszközre van szükség, amelynél a webszerkesztés folyamatát a fejlesztő, nem pedig a program vezérli

Információ és kommunikáció

Internet programozása. 1. előadás

Weboldalak biztonsága

Jogi szabályozás. Térképismeret ELTE TTK Földtudományi és Földrajz BSc. 2007

PHP-MySQL. Adatbázisok gyakorlat

Informatikus, Webfejlesztő. Nagy Gusztáv

TANTÁRGYI ÚTMUTATÓ. Vállalkozástan. tanulmányokhoz

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

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

AJAX Framework építés. Nagy Attila Gábor Wildom Kft.

Információ és kommunikáció

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

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

Webalkalmazás fejlesztés Java EE környezetben NetBeans segítségével: JavaServer Faces 1.2 AJAX

A webhelyhez kötődő szoftverek architektúrája

Adatbázis rendszerek 7. előadás State of the art

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

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

Többfelhasználós és internetes térkép kezelés, megjelenítés

Webshop készítése ASP.NET 3.5 ben I.

Multimédia 2017/2018 II.

Összesítés. Látogatások száma Oldalak Találatok Adatmennyiség (11.08 Oldalak/Látogatás)

{simplecaddy code=1005}

Osztott rendszerek, Java EE. Általános bevezető

Üzleti kommunikáció TANTÁRGYI ÚTMUTATÓ. I. évfolyam. 2013/2014 I. félév

Tematika A web története Kliens-szerver modell Web alapismeretek Fejlesztési eszközök. Sapientia Erdélyi Magyar Tudományegyetem, Csíkszereda

KÉPZÉS NEVE: Informatikai statisztikus és gazdasági tervezı TANTÁRGY CÍME: Számítógép hálózatok. Készítette:

TANTÁRGYI ÚTMUTATÓ. Döntési módszerek

w w w. h a n s a g i i s k. h u

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Átírás:

A WEB Programozása Dr. Gál Tibor Automatizálási és Alkalmazott Informatikai Tanszék Általános információ Kommunikáció az előadóval Iroda: V2. épület, IV. emelet 454. szoba Tel: 2835 email: gal@aut.bme.hu Honlap: http://avalon.aut.bme.hu/webprogramozas Webforum: http://avalon.aut.bme.hu/webprogramozas/webforum Jegyzet Gál Tibor: WEBPROGRAMOZÁS Műegyetemi Kiadó, 2004 (55062) Segédanyag a könyvhöz http://avalon.aut.bme.hu/~gal/awp/index.html Kivetített anyag Letölthető a tantárgy honlapjáról Név: A tárgyat felvett hallgató Neptun kódja Jelszó: A tárgyat felvett hallgató Neptun kódja Előadás módja Elméleti anyag kivetítése Alátámasztás példákkal Általános információ Kiemelt fontosságú részek esetén ÍRÁS A TÁBLÁRA Követelmények Félévközi: egy zárthelyi Félévvégi: vizsga 1 ügyfél és 1 kiszolgáló oldali program minden írott és nyomtatott anyag használható gépen lévő online dokumentáció Néhány vizsgapélda bemutatása Általános információ Tananyag Dokumentációs nyelvek A HTML dokumentációs nyelv Kaszkád stíluslapok (CSS) Az XML Egyéb XML technológiák Névterek XSLT DOM SVG Ügyfél oldali programozás A mag JavaScript JavaScript a böngészőben (Java appletek a böngészőben) Kiszolgáló oldali programozás A CGI programozás Szervletek JavaServer Pages (JSP) (ASP alapú programozás?) http://avalon.aut.bme.hu/webprogramozas 1

Mi a WEB? BEVEZETÉS Kialakulása A WEB-dokumentumok fajtái Mi a WEB? Az egész világra kiterjedő elosztott információs hálózat. Min alapszik? Az információforrások megkülönböztethetősége (URI) Az erőforrásokhoz való hozzáférést biztosító protokollok (HTTP, ) Hipertext kapcsolat az erőforrások közti könnyű navigáláshoz Lényegében azt teszi mint elterjedése kezdetén: INFORMÁCIÓÁTVITELT bonyolít le De ahogy ma teszi, abban LÉNYEGES KÜLÖNBSÉG S ennek eszköze a WEBprogramozásban van Info korszak megjegyzések Oxford English Dictionary (126 év nyomtatás, 2010-től kizárólag csak az Interneten lesz elérhető) Adóbevallás az Interneten, Neptun, stb. A dokumentumok fajtái Statikus dokumentum 1 Kiszolgáló szemszögéből statikus dokumentum/statikus tartalom dinamikus dokumentum/dinamikus tartalom Ügyfél szemszögéből végleges megjelenésű dokumentum/tartalom változó megjelenésű dokumentum/tartalom Dokumentum előre elkészítve és tárolva HTML formában. Készítés: manuálisan, dokumentum generátorral, konverterrel, stb Példa: vizsga (bev1/web_dokumentumok/html/vizsga.html) Figyelem: a lokális linkek ( ) a pdf fájlokban nem működnek!!! 2

Statikus dokumentum 2 Statikus dokumentum 3 Dokumentum előre elkészítve és tárolva HTML és CSS formában. Elkészítés: manuálisan, dokumentum generátorral, konverterrel, stb. Példa: index1.html (bev1/web_dokumentumok/html_css/css/01.html) Dokumentum előre elkészítve és tárolva XML, XSLT alakban. Elkészítés: manuálisan, dokumentum generátorral, konverterrel, stb. Példák: mechanika (bev1/web_dokumentumok/xml_xsl/mechanika.xml) mechanika3 (bev1/web_dokumentumok/xml_xsl/mechanika3.xml) 1 2 3 Dinamikus dokumentum A dokumentumot egy program állítja elő a legkülönbözőbb erőforrások aktuális (a kiszolgálóhoz fordulás időpontjában fennálló) tartalma alapján. Példák: fizetesek, értékelés. (Csak aktív Tomcat kiszolgáló esetén hajtódik végre.) Végleges/változó megjelenésű dokumentum A letöltött (akár statikus akár dinamikus) dokumentum formája nem változik az ügyfél böngészőjében A letöltött (akár statikus akár dinamikus) dokumentum formáját a dokumentumba beékelt program az idő és/vagy a felhasználói beavatkozás függvényében változtatja (élő/live dokumentum) Példák: tábla rendezés(bev1/web_dokumentumok/tablademo/tablarendezes.html) drag and drop (bev1/web_dokumentumok/drag_and_drop/index.html) József Attila (bev1/web_dokumentumok/jozsefattila/index.html) memória (bev1/web_dokumentumok/memoria/index.htm) sokféle webforum (http://localhost:8080/webprogramozas/webforum/index.jsp) svg bev1\web_dokumentumok\dinamikus\svg\1.bat 3

WEBprogramozási technológiák Ügyféloldali JavaScript, Applet, VBScript, Kiszolgálóoldali CGI, Java Servlet, JavaServer Pages, JavaServer Faces, ASP, PHP, De a dokumentációs nyelvek is szükségek! HTML, CSS, XHTML, XML, SXLT, DOM, SVG, XPath, A fejlődés trendje Amit csak lehet, a tipikus feladatokat a kiszolgáló végezze el a kiszolgáló oldali program helyett! 1. példa: Ügyfél nevének bekérése, majd válaszüdvözlet generálása (Hello World megfelelője) 1. megoldás az első rendelkezésre álló technológiával (CGI program) http://localhost:8080/udvozlet.html 2. megoldás a fejlett JSP technológiával http://localhost:8080/udvozleta.html (Csak aktív Tomcat kiszolgáló estén hajtódik végre.) 1. megoldás (CGI program) Az ügyfél nevét bekérő HTML oldal <HTML> <HEAD><TITLE>Elso urlap</title></head> <BODY BGCOLOR="#7F7F7F"> <CENTER> <FORM ACTION="/cgi/2.js" METHOD="GET"> Vezetéknév:<BR> <INPUT TYPE="text" NAME="vezeteknev" SIZE=20><P> Keresztnév:<BR> <INPUT TYPE="text" NAME="keresztnev" SIZE=20><P> <INPUT TYPE="submit" VALUE="Mehet"> <INPUT TYPE="reset" VALUE="Mégsem"> </FORM> </CENTER> </BODY> </HTML> A választ generáló CGI program var stdin = WScript.StdIn; var WshShell = WScript.CreateObject("WScript.Shell"); var WshProcEnv = WshShell.Environment("PROCESS"); var str = WshProcEnv("QUERY_STRING"); var re = /\+/g; var str1 = str.replace(re," "); var re1 = /%([0-9a-fA-F][0-9a-fA-F])/g; var str = str1.replace(re1, function ($0,$1) { return String.fromCharCode( parseint($1.charat(0),16)*16+ parseint($1.charat(1),16)); } ); var sarray = str.split("&"); var stdout = WScript.StdOut; stdout.write("<html>"); stdout.write("<center>üdvözölöm "); for(i=0; i<sarray.length; i++){ var name = sarray[i].split("=")[0]; var value = sarray[i].split("=")[1]; stdout.write(" " + value); } stdout.write("</center></html>") 4

2. megoldás (JSP) Az ügyfél nevét bekérő HTML oldal <HTML> <HEAD><TITLE>Elso urlap</title></head> <BODY BGCOLOR="#7F7F7F"> <CENTER> <FORM ACTION="/2a.jsp" METHOD="GET"> Vezetéknév:<BR> <INPUT TYPE="text" NAME="vezeteknev" SIZE=20><P> Keresztnév:<BR> <INPUT TYPE="text" NAME="keresztnev" SIZE=20><P> <INPUT TYPE="submit" VALUE="Mehet"> <INPUT TYPE="reset" VALUE="Mégsem"> </FORM> </CENTER> </BODY> </HTML> A választ generáló JSP program <html> <center> Üdvözlöm ${param.vezeteknev} ${param.keresztnev} </center> </html> 2. példa: Vásárlói preferenciák lekérése és tárolása a kiszolgálón CGI megoldás: túl bonyolult, ne is foglalkozzunk vele JSP (JavaServer Pages) megoldás JSF (JavaSever Faces )megoldás JSP megoldás <c:foreach items="${paramvalues.food}" var="current"> <c:choose> <c:when test="${current == 'p'}"> <c:set var="parizsiselected" value="true" /> </c:when> <c:when test="${current == 'g'}"> <c:set var="gyulaiselected" value="true" /> </c:when> <c:when test="${current == 'd'}"> <c:set var="debreceniselected" value="true" /> </c:when> </c:choose> </c:foreach> <tr> <td> <input type="checkbox" name="food" value="p" ${parizsiselected? 'checked':''}>párizsi<br> <input type="checkbox" name="food" value="g" ${gyulaiiselected? 'checked':''}>gyulai<br> <input type="checkbox" name="food" value="d" ${debreceniselected? 'checked':''}>debreceni </td> </tr> 5

JSF megoldás <tr> <td> <h:selectmanycheckbox value="#{cust.foodselection}"> <f:selectitem itemvalue="p" itemlabel="párizsi" /> <f:selectitem itemvalue="g" itemlabel="gyulai" /> <f:selectitem itemvalue="d" itemlabel="debreceni" /> </td> </tr> Inkompatibilitások Kezdetben nagyon, ma más kevésbé, de még mindig inkompatibilisek a különböző kiszolgáló és böngésző programok! 1. példa: Görgethető táblázat: IE és Mozilla eltérően viselkedik index (bev1/elteresek/table_demos/table.html) indexf (bev1/elteresek/table_demos/1.bat) index1 (bev1/elteresek/table_demos/table1.html) index2 (bev1/elteresek/table_demos/table1a.html) Inkompatibilitások (folyt.) 2. példa: Központosítás CSS2-vel: IE és Mozilla eltérően viselkedik index (bev1/elteresek/centering/index.html) indexf (bev1/elteresek/centering/1.bat) index1 (bev1/elteresek/centering/index1.html) index1f (bev1/elteresek/centering/2.bat) index2 (bev1/elteresek/centering/index2.html) Inkompatibilitások (folyt.) 3. példa: Document Object Model: Kötelező, de elhagyott elemekre IE és Mozilla eltérően viselkedik index (bev1/elteresek/dom/8.html) indexf (bev1/elteresek/dom/0.bat) index1 (bev1/elteresek/dom/8a.html) indexf1 bev1/elteresek/dom/1.bat) index2 (bev1/elteresek/dom/8b.html) indexf2 (bev1/elteresek/dom/2.bat) 6

Jótanácsok! Es ist nicht genug zu wissen, man muss auch anwenden! Es ist nicht genug zu wollen, man muss auch tun! /Goethe/ A tudás önmagában nem elegendő, azt alkalmaznunk is kell! Nem elegendő valamit akarnunk, azt meg is kell tennünk! A lángész: egy százalék ihlet, kilencvenkilenc százalék verejték /Edison/ Genie is vielleicht nur Fleiß! A zsenialitás talán csak szorgalom! /Goethe/ 7