Vysoká škola báňská – Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení
Informační systémy 2008/2009 Radim Farana 1
Obsah zTvorba webových aplikací. zActive Server Pages. zActivex Data Objects. zLDAP database.
Informační systémy
2
Aktivní serverové stránky ASP z Vytváří obsah internetových stránek dynamicky na základě požadavků klienta {Vložením dat z databáze
z Jedná se o programování webové aplikace {Vytvoření ASP stránky a vložení HTML {Vložení aktivního obsahu (skriptu)
z Skripty {Client Side (Java script, VBScript) {Server Side (VBScript, PHP, …) Informační systémy
3
1
Požadavky zNainstalovaný webový server {Internet Information Service – IIS (Internetová informační služba), zASP zPHP
{Apache zPHP
Informační systémy
4
Instalace IIS ve Windows XP
Informační systémy
5
Správa IIS
Informační systémy
6
2
Skripty z Server Side (VBScript) {<SCRIPT RUNAT=Server> … (VBScript) …
{<% … (VBScript) … %>
z Client Side {<SCRIPT Language=JavaScript> … {Umísťují se do hlavičky … nebo k formátovacím značkám
7
Objekty ASP z Application. z Slouží k ukládání hodnot v rámci aplikace. { Application_OnStart(), Application_OnEnd().
z Session. { Slouží k ukládání hodnot v rámci session. { Session_OnStart(), Session_OnEnd().
z Response (odezva). { Stará se o obsah odesílaný serverem.
z Request (žádost) { Stará se o obsah odeslaný klientem.
z Server { Stará se o vytváření objektů na serveru např. pro přístup k datům. Informační systémy
8
Objekt Response z Slouží k ovlivnění výstupu z Metody {Write – výpis do okna prohlížeče, {End – ukončí vykonávání skriptu a odešle data, {BinaryWrite - výpis bin. dat do okna prohlížeče, {Flush – odešle doposud zpracovaná data klientovi, {Redirect – přesměruje na novou stránku.
z Vlastnosti {Cookies – práce s cookies.
Informační systémy
9
3
Objekt Request zSlouží k získání dat od klienta z webového formuláře <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
Ukázka formuláře
z str = Request.Form(“text1”) Informační systémy
10
Objekt Request zVlastnosti {Form – slouží pro získání hodnot prvků formuláře předané metodou POST, {QueryString - slouží pro získání hodnot prvků formuláře předané metodou GET, {Cookies – kolekce cookies.
zMetody {BinaryRead – slouží k získání binárních dat od klienta Informační systémy
11
Příklad
Informační systémy
12
4
Formuláře z zMetoda POST {zabalí hodnoty ovládacích prvků do http hlavičky
zMetoda GET {pošle hodnoty v adrese (omezení na 2 kB) Informační systémy
13
Ukázka <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
Ukázka formuláře
<% Dim sTextovePole, sTlacitko sTextovePole = Request.Form("text1") sTlacitko = Request.Form("submit1") if sTlacitko <> "" then Response.Write "Hodnota v textovém poli: " & sTextovePole & _ " " Response.Write "Hodnota tlacitka: " & sTlacitko & "" end if %>
Informační systémy
14
Deklarace proměnných zKlíčové slovo Dim
zVeškeré proměnné jsou typu Variant {Dim i ‘ Proměnná typu Variant
zImplicitní deklarace {sText = “Ahoj”
zExplicitní deklarace {Dim sText {sText = “Ahoj” Informační systémy
15
5
Chyby při deklaraci a použití proměnné z Při překlepu chybu nepoznáme {sText = “Ahoj” ‘ Implicitní deklarace {MsgBox sTaxt ‘ Vzniká nová proměnná
z Na začátek zdroj. kódu ASP stránky napsat volbu vynucení explicitního vytváření proměnných {Option Explicit {Dim sText {sText = “Ahoj” {MsgBox sTaxt ‘Chyba, použita neznámá proměnná Informační systémy
16
Větvení programu If then
Else
End If Logické spojky And, Or If (Podmínka1) And (Podmínka2) then If (Podmínka1) Or (Podmínka2) then If Not (Podmínka) then z Je důležité závorkovat jednotlivé podmínky Informační systémy
17
Příklad vytvoření podmínky zDim i zDim j zi = 10 zj = 20 zIf i > j then {MsgBox “Větší je i”
zElse {MsgBox “Větší je j”
zEnd If Informační systémy
18
6
Více podmínek k jedné proměnné zPříkaz Select Select Case Case :
Case :
Case :
Case Else :
End Select Informační systémy
19
Více podmínek k jedné proměnné zPříklad Select Case Volba
Case 1 : MsgBox “Zadal jsi jedničku” Case 2 : MsgBox “Zadal jsi dvojku” Case Else MsgBox “Zadal jsi jiné číslo” End Select
Informační systémy
20
Opakování částí kódu, cykly z Cyklus While While <prikazy cyklu> Wend z Příklad Dim Counter Counter = 0 While Counter < 20 Counter = Counter + 1 Wend Informační systémy
21
7
Opakování částí kódu, cykly zCyklus For For
To [Step ]
Next Příklad For i=10 To 1 Step -1 For j=1 To 5 sText = sText & “,” & i + j Next Next MsgBox sText Informační systémy
22
Práce s řetězci zSpojování řetězců pomocí operátoru & zUrčení délky řetězce Len(str) zKonverze hodnoty na řetězec CStr(hodnota) zTrim(str), LTrim(str), RTrim(str) – odstranění mezer zCInt(), CLng(), CDbl(), … další konverzní funkce Informační systémy
23
Práce s poli z Statické { Dim pole(10) – určuje horní index (11 prvků) { Index začíná od nuly { Pole(0) – první prvek z Dynamické { Dim pole() { ReDim pole(NovaVelikost) – vytvoření pole { ReDim Preserve pole(NovaVelikost) – zachová obsah z Mazání pole { Erase z pro statické pole nastaví prvky pole na 0, “” z Pro dynamické pole vymaže alokovanou paměť
z Velikost pole UBound(pole, rozmer) Informační systémy
24
8
Vytvoření vlastních ASP stránek zPorovnání čísel zVýpis na obrazovku zVytvoření programu s cyklem While, For zPráce s řetězci zPráce s poli zPoužití objektu Session a Application
Informační systémy
25
Přístup k databázi z ADO – ActiveX Data Object {jednotný přístup k datovým skladům, {přístup založený na objektovém základu.
z Základní objekty {Connection – slouží pro vytvoření spojení s DB, {Command – slouží k provádění dotazů nad DB, {Recordset – objekt pracující se získanými daty.
Informační systémy
26
Připojení k databázi z Vytvoření objektu Connection 1. Set con = Server.CreateObject(“ADODB.Connection”) z Předá se connection string a otevře se spojení 2. con.Open "File Name=C:\ file.udl" 3. con.Open = "Provider=SQLOLEDB;" & _ "Data Source=ServerName\DBName;" & _ "Initial Catalogue=Otis;" & _ "User Id=sa;" & _ "Password=sql2000" z Po ukončení spojení uzavřít 4. con.Close z Zrušit odkaz na objekt 5. Set con = nothing Informační systémy
27
9
Objekt Recordset z Vytvoření objektu Recordset 1. Set rs = Server.CreateObject(“ADODB.Recordset”) z Předá se zdroj dat (SQL doaz, objekt Command) a aktivní připojení 2. rs.Open “SELECT * FROM tTable”, con z Zpracujeme data 3. While not rs.EOF … např. tisk dat … rs.MoveNext Wend z Po ukončení recordset uzavřít 4. rs.Close z Zrušit odkaz na objekt 5. Set rs = nothing Informační systémy
28
Dim CRLF CRLF = Chr(13) & Chr(10) ' Vytvoříme objekt pro spojení s databází Session.timeout = 1 If IsObject(Session("ADOTest_conn")) Then Set DBConn = Session("ADOTest_conn") Else Set DBConn = Server.CreateObject("ADODB.Connection") DBConn.open "ADOTest","Admin","" Set Session("ADOTest_conn") = DBConn End If ' Vytvoříme SQL dotaz pro zjištění potřebných dat SQLStr = "SELECT Picture.PicID, Picture.PicName, Picture.PicType FROM Picture ORDER BY Picture.PicName;" ' Vytvoříme objekt Recordset a otevřeme ho Set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQLStr, DBConn, 3, 3 ' Určíme zda je k dispozici alespoň jeden záznam If RS.EOF Then ' Není ani jeden záznam Response.Write "
Nejsou k dispozici žádné záznamy!
" & CRLF Else ' Záznamy existují, zpracujeme nabídkový objekt Response.Write "" & CRLF End If ' Set RS = Nothing systémy 29 'Informační Set DBConn = Nothing
Příklad
Registrace ODBC spojení
Informační systémy
30
10
Další příklady
Informační systémy
31
bExit = FALSE 'Po odeslani formulare if Len(Request.Form("cmdSend")) then 'Odeslal jsem formular? 'Zkontroluju spravnost zadani polozek if Len(strName) = 0 then strOut = "
Zadej uživatelské jméno!!!
" bExit = TRUE end if if Len(strPass) = 0 then strOut = strOut & "
Zadej heslo!!!
" bExit = TRUE end if if Len(strKontext) = 0 then strOut = strOut & "
Vyber kontext!!!
„ bExit = TRUE end if Set objLDAP = GetObject("LDAP:") 'Overim dostupnost LDAP providera if IsEmpty(objLDAP) then bExit = TRUE strOut = strOut & "
Nepřísupný LDAP provider!!!
" strOut = strOut & "
Zkontrolujte připojení k síti a akci opakujte.
" end if 'Pokud probehla kontorla uspesne, muzu pokracovat smele dale if bExit = FALSE then 'Slozim prihlasovaci retezec select case strKontext case "Studenti" strKontext="ou=stu,o=fs" case "Zamestnanci" strKontext="ou=352,ou=kat,o=fs" 'Doladit, vice kateder ... end select strConnString = "LDAP://ldap.vsb.cz/cn=" & strName & "," & strKontext strObjectName = "cn=" & strName & "," & strKontext 'Pokusime se pripojit k danemu objektu Set objOpenDS = objLDAP.OpenDSObject(strConnString, strObjectName, strPass, &H200) if IsEmpty(objOpenDS) then strOut = strOut & "