A WEB programozása - JavaScript 6 dr.gál Tibor őszi előadás. A Windows Scripting Host (WSH)

Hasonló dokumentumok
MDAC - Microsoft Data Access Components

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

ELTE SAP Excellence Center Oktatóanyag 1

Adatbázis-kezelés ODBC driverrel

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

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

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

A szerzõrõl... xi Bevezetés... xiii

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Az SQL*Plus használata

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

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

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.

Szkriptnyelvek. 1. UNIX shell

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

Web Technológiák. Répási Tibor egyetemi tanársegéd. Miskolc Egyetem,Gépészmérnöki kar, Infomatikai és Villamosmérnöki Tanszékcsoport (IVM)

Adatbázisok webalkalmazásokban

S z á m í t ó g é p e s a l a p i s m e r e t e k

Python tanfolyam Python bevezető I. rész

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

Az ADO használata. Adatbázis megnyitása

Konzolalkalmazások gyors tesztelése

S z á m í t ó g é p e s a l a p i s m e r e t e k

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

AWK programozás, minták, vezérlési szerkezetek

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 9. óra. Kocsis Gergely, Kelenföldi Szilárd

AWK programozás, minták, vezérlési szerkezetek

Fájlkezelés. Szöveges fájlok kezelése

PowerShell v2.0 alapok. Nagy Miklós

AdoDB a gyakorlatban

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

JAVA SE/ME tanfolyam tematika

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

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

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

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

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

WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK

Bevezetés az informatikába, második gyakorlat. Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés

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

A JavaServer Pages (JSP)

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

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

A JavaScript főbb tulajdonságai

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

A JavaServer Pages (JSP)

17. Többdokumentumos alkalmazások készítése..3 A többdokumentumos felület...3. A program elkészítése...27

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció

Adatbázis kezelés Delphiben. SQL lekérdezések

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Java programozási nyelv 11. rész Adatbázis-programozás

Web programoz as

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Smalltalk 2. Készítette: Szabó Éva

Objektumorientált programozás

AWK programozás Bevezetés

JavaServer Pages (JSP) (folytatás)

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

Java és web programozás

ERserver. iseries. Az iseries Access for Windows használatának megkezdése

Vizuális programozás gyakorlat

Extrémen brutál, gyors talpaló PHP nyelvhez (database). v2.1

A JavaServer Pages (JSP)

Operációs rendszerek gyak.

Iman 3.0 szoftverdokumentáció

S z á m í t ó g é p e s a l a p i s m e r e t e k

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

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

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ő

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Adatbáziskezelés Delphi 5 alatt. Bese Antal

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

1. Bevezető. 2. Sérülékenységek

JNDI - alapok. Java Naming and Directory Interface

Programozás II. 2. Dr. Iványi Péter

O er e á r ci c ós ó s R en e d n sz s er e e r k e I. G akorlá l s

S z á m í t ó g é p e s a l a p i s m e r e t e k

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

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

Algoritmus terv. 1. Algoritmus általános áttekintése. 2. Inputok és outputok definiálása. 3. Folyamatok meghatározása. 4. Programozási utasítások

Adatbázis használata PHP-ből

Adatbázis-kezelés ODBC-vel

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Nagy Gergely. ASP programozás JScript nyelven

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Webszolgáltatások (WS)

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

Operációs rendszerek gyak.

TKR Standard Windows környezeti beállítások ( CONFIG.SYS ill. CONFIG.NT )

A.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll:

Bevezetés: az SQL-be

Oracle BI Administration Tool. Repository felépítése

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

Messenger. Novell GYORSKALAUZ

Operációs Rendszerek. Windows Parancssor

iseries Client Access Express - Mielőtt elkezdi

Fejlett programozási nyelvek C++ Iterátorok

Átírás:

A Windows Scripting Host (WSH) Az egyik leghatékonyabb JavaScript végrehajtási környezet Használható Önállóan Böngészőben Kiszolgáló oldalon Hatékonyságát a nagyszámú hozzáférhető objektumnak köszönheti: WSH beépített objektumok Runtime könyvtár objektumai ActiveX objektumok ADO objektumok, stb. Tárgyalás: csak a legszükségesebbekre kitérve Dokumentáció: js6\script56.chm Hatékonyság demonstrálása Hozzáférés egy adatbázishoz, önálló alkalmazás (js6/dbase.js) js6\dbase.bat var ws = WScript.CreateObject("WScript.Shell"); var cd = ws.currentdirectory; conn.open("driver={microsoft Access Driver (*.mdb);dbq=" + cd + "\\db1.mdb"); var s =" \n"; s += "Név \t\t Életkor\n"; s +=" \n"; s +=rs("name") +"\t"+rs("age")+ "\n"; s +=" \n"; File olvasása, önálló alkalmazás (js6/fileread.js) js6\fileread.bat var fso, f; var ForReading = 1; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.opentextfile("fileread.js", ForReading); WScript.Echo(f.ReadAll()); Hozzáférés adatbázishoz a böngészőből js6\dbase1.bat js6\dbase2.bat <html> <style type=text/css> th,td {font-size:32; font-weight:bold; th {color:yellow; background-color:black </style> <script> conn.open( "DRIVER={Microsoft Access Driver (*.mdb);dbq=db1.mdb"); document.write( "<table border=1><tr><th>név</th><th>életkor</th></tr>"); document.write("<tr><td>" + rs("name") + "</td>" + "<td>" + rs("age") + "</td></tr>"); document.write("</table>"); </html> 1

Végrehajtás WSript.exe foo.js : GUI elemekkel dialógusablakokban támogatott végrehajtás és megjelenítés. De munkaasztalról kattintással is elindítható a szkript. CScript.exe foo.js : DOS ablakban, parancssoros végrehajtás. A legalapvetőbb feladatok Olvasás a DOS ablakban (csak CScript.exe esetén használható) Írás DOS ablakban (csak CScript.exe esetén használható Olvasás input boxból Írás popup ablakban Környezeti változók olvasása Szövegfájlok megnyitása, írása és olvasása Adatbázis kapcsolat létrehozása, sql utasítások végrehajtása Hipetrext (hta) alkalmazások Olvasás a DOS ablakban (csak CScript.exe esetén használható) A WScipt objektumstdin tulajdonságának Read(n), ReadLine() és ReadAll() metódusaival // n karakter olvasása var str1 = WScript.StdIn.Read(n); // egy sor olvasása var str2 = WScript.StdIn.ReadLine(); // olvasás a stream végéig var str3 = WScript.StdIn.ReadAll(); // sorvég érzékelése karakterenkénti olvasáskor WScript.StdIn.AtEndOfLine // stream végének érzékelése WScript.StdIn.AtEndOfStream Írás a DOS ablakban (csak CScript.exe esetén használható) A WScipt objektumstdout tulajdonságának Write(str), WriteLine(str) és WriteBlankLines(n) metódusaival // az str string kiírása a DOS ablakba // az str string kiírása a DOS ablakba újsor karakterrel kiegészítve WScript.StdOut.WriteLine(str); // n üres sor kiírása a DOS ablakba WScript.StdOut.WriteBlankLines(n); A WScript.Echo(str) is használható. Ha a szkript a CScript.exe paranccsal lett elindítva, akkor ez a metódus a DOS ablakba ír ki, WScript.exe indítás esetén viszont egy popup ablakba js6\5.bat Példák az írásra és olvasásra // egy sor karakterenkénti olvasása és visszaírása js6\2.bat var input = WScript.StdIn; var out = WScript.StdOut; var s= ""; while (!input.atendofline) { s += input.read(1); out.write(s); // olvasás a stream (CTRL C) végéig, s a beolvasott // string visszaírása js6\3.bat var input = WScript.StdIn; var out = WScript.StdOut; var s= ""; while (!input.atendofstream) { s = input.readline(); out.writeline(s); // vagy egyszerűbben js6\4.bat var s = input.readall(); out.write(s); 2

Írás a popup ablakba (csak WScript.exe índítás esetén) Egymást követő Echo() metódusok újabb popup ablakokat nyitnak meg. Soremelés a \n szekvenciával váltható ki a stringen belül. // az srt string kiírása egy popup ablakba WScript.Echo(str); Olvasás popup ablakból. js6\6wsf.bat A JScriptben nincs input box, ezért a VBSript-et kell erre használnunk. Ekkor viszont a fájl kiterjesztése már nem.js, hanem.wsf. <job id= VBSandJS > <script language= VBScript > DIM Input Input = InputBox( Adja meg a nevét! ) <script language= JScript > WScript.Echo( Üdvözlöm kedves + Input); </job> Környezeti változók olvasása Az operációs rendszer környezeti változóinak olvasása js6\env1.js js6\env2.js var ws = WScript.CreateObject( WScript.Shell ); var SysEnv = ws.environment( SYSTEM ); var s = A Windows könyvtár helye: + SysEnv( WINDIR ); Egy process, például egy CGI processz környezeti változóinak olvasása var ws = WScript.CreateObject( WScript.Shell ); var ProcEnv = ws.environment( PROCESS ); var contentlength = ProcEnv( CONTENT_LENGTH ); var contenttype = ProcEnv( CONTENT_TYPE ); var querystring = ProcEnv( QUERY_STRING ); var servername = ProcEnv( SERVER_NAME );... Szekvenciális hozzáférés szövegfájlokhoz a futásidejű könyvtár FileSystemObject objektumával létrehozott TextStream objektum metódusaival // a FileSystemObject létrehozása var fso = new ActiveXObject("Scripting.FileSystemObject"); // szövegfájl megnyitása, azaz a TextStream objektum // létrehozása // filename a megnyitandó fájl neve // iomode = 1 megnyitás olvasásra // 2 megnyitás írásra // 8 megnyitás hozzáfűzésre // create = false nem létező fájlt nem hoz létre // true nem létező fájlt létrehozza // format = TristateFalse megnyitás ASCII kódolással // TristateTrue megnyitás Unicode kódolással // TristateDefault megnyitás a rendszer kódolásával var ts = fso.opentextfile(filename,iomode,create,format); Az olvasás és írás végrehajtása // n karakter olvasása ts.read(n) // egy sor olvasása (de a sorvég karaktert nem adja vissza) ts.readline() // a teljes TextStream olvaása ts.readall() // az str string írása ts.write(str) // az str string írása újsor karakterrel kiegészítve ts.writeline(str) // n üres sor írása ts.writeblanklines(n) // a megnyitott TextStream (szövegfájl) lezárása ts.close(); 3

Példa fájl írására és olvasására js6\6.bat function GetEverything() { var fso, f; var ForReading = 1, ForWriting = 2; fso = new ActiveXObject("Scripting.FileSystemObject"); f = fso.opentextfile("c:\\testfile.txt", ForWriting, true); f.write("jó napotkollegák!"); f.write("üvözlöm Önöket!"); f.close(); f = fso.opentextfile("c:\\testfile.txt", ForReading); return(f.readall()); WScript.Echo(GetEverything()); Gyermekrocessz indítása, szülő-gyermek kommunikáció I. js6\p12.bat var wshout = WScript.StdOut; var wshin = WScript.StdIn; wshout.write("adja meg az elso szamot: "); var nr1 = wshin.readline(); wshout.write("adja meg a masodik szamot: "); var nr2 = wshin.readline(); var WshShell = new ActiveXObject("WScript.Shell"); var oexec = WshShell.Exec("java.exe BigIntMult"); oexec.stdin.write(nr1 + "\n"); oexec.stdin.write(nr2 + "\n"); var result=oexec.stdout.readline(); WScript.Echo(nr1 + " * " + nr2 + " = " + result); Gyermekrocessz indítása, szülő-gyermek kommunikáció II. js6\processes\p111.bat // main.js var sh = WScript.CreateObject("WScript.Shell"); var x1='elso'; var x2='masodik'; var x3='harmadik'; var child1 = sh.exec("proc.bat "+ x1 +" "+x2+" "+x3); var str = child1.stdout.readall(); var y1='first'; var y2='second'; var y3='third'; var child1 = sh.exec("proc.bat "+ y1 +" "+y2+" "+y3); var str = child1.stdout.readall(); Gyermekrocessz indítása, szülő-gyermek kommunikáció II. (folyt) //proc.bat echo off set param1=%1 set param2=%2 set param3=%3 cscript //nologo child.js //child.js var ws = WScript.CreateObject('WScript.Shell'); var env = ws.environment('process'); WScript.StdOut.Write('Az olvasott kornyezeti valtozok\n'); WScript.StdOut.Write(env('param1')+'\n'); WScript.StdOut.Write(env('param2')+'\n'); WScript.StdOut.Write(env('param3')+'\n'); 4

Az ActiveX Data Object (ADO) használata adatbázis műveletekre Kapcsolatfelvétel az adatbázissal SQL utasítások elküldése az adatbázisba A visszakapott információ fogadása és feldolgozása A kapcsolat lezárása Kapcsolatfelvétel az adatbázissal ODBC és DSN használata // vagy // conn = new ActiveXObject( ADODB.Connection ); conn.open( custom_dns ); DNS használata nélkül // vagy // conn = new ActiveXObject( ADODB.Connection ); conn.open( DRIVER={Microsoft Access Driver (*.mdb); + DBQ=d:\\2005_web_eloadas\\wsh\\db1.mdb ); Nem Access adatbázisokra // Oracle DRIVER={Microsoft ODBC Driver for Oracle; + Server=OracleServer.world;Uid=demo;Pwd=demo // SQL DRIVER={SQL Server; + Server=myserver;Database=pubs;Uid=sa;Pwd=pwd //... SQL utasítások elküldése, feldolgozás és a kapcsolat lezárása // A Connection objektum létrehozása // A kapcsolat megnyitása conn.open( custom_dns ); // Az sql utasítás elküldése, a visszakapott eredmény egy // RecordSet objektum var rs = conn.execute( SELECT * FRM Customers ); // A RecordSet objektum feldolgozása var s = ; s += rs( Name ) +, + rs( Age ) + \n ; // Az eredmény megjelenítése // A kapcsolat lezárása Hipertext (HTA) alkalmazások (js6\dbase1.bat) html, htm helyett hta kiterjesztés biztonsági korlátozások feloldása <html> <style type=text/css> th,td {font-size:32; font-weight:bold; th {color:yellow; background-color:black </style> <script> conn.open( "DRIVER={Microsoft Access Driver (*.mdb);dbq=g:db1.mdb"); document.write( "<table border=1><tr><th>név</th><th>életkor</th></tr>"); while(!rs.eof) {document.write("<tr><td>" + rs("name") + "</td>" + "<td>" + rs("age") + "</td></tr>"); document.write("</table>"); </html> 5