Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.

Podobne prezentacje


Prezentacja na temat: "Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych."— Zapis prezentacji:

1 Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych

2 Skrypty serwerowe Technologie PHP, ASP (JavaScript, VBScript), ASP.NET (JScript, C#, J#, VB.NET ….), JSP (Java) Wykonywane przez serwer WWW Brak wymagań względem przeglądarki Ukryte kody źródłowe Konieczność komunikacji przez sieć Serwer musi udostępniać technologię Możliwość współpracy z bazami danych Programy osadzone w kodzie HTML

3 Model komunikacji Żądanie HTTP Odpowiedź HTTP (HTML, JPG) Klient Serwer

4 Dlaczego ASP.NET ? Dowolny język programowania.NET (ok. 50) Filozofia obiektowa sterowana zdarzeniami Możliwość automatyzacji budowy serwisu Możliwość pracy komponentowej Skrypty kompilowane Możliwości buforowania treści Wsparcie dla XML i WebSerwisów Praca w środowiskach Windows i … Linux (projekt MONO) Darmowe środowiska programistyczne (Visual Web Developer, #develop)

5 Język C# Język opracowany dla Microsoft przez Andersa Hejlsberga Język łączący w sobie rozwiązania C++ i Java Obecnie jest z najsilniej rozwijanych języków programowania

6 Operatory Arytmetyczne: +,-,*,/,++,-=,+=,*=,/= Porównań: ==,!=,, = Logiczne: &&, ||, !

7 Instrukcje for (wyr1;wyr2;wyr3) { /* blok */} while (warunek) { /* blok */ } do { /* blok */} while (warunek) if (warunek) { /* blok1 */} else { /*blok2*/} switch (zmienna) { case 1: { /*blok1*/};break; case 2: { /*blok2*/};break; default: { /*blok*/};}

8 Zmienne Język C# wykorzystuje jawne deklaracje zmiennych i typowanie Typy podstawowe: int float double long short byte char string bool Deklaracja zmiennych: int a; string imie,nazwisko; double x=5;

9 Konwersja typów Konwersja niejawna: int a=5; double b=a; Rzutowanie: double a=5; int b=(int)a; Konwersja: string a=‘5’; int b=Convert.ToInt32(a);

10 Deklaracja metody typ_zwracany Nazwa(typ1 arg1,typ2 arg 2…) { //Ciało metody } Deklaracja metody zawsze musi określać typ zwracanych danych. Jeśli metoda nic nie zwraca, zwracany typ określa się jako void. Brak argumentów metody zapisuje się przy pomocy pustej listy parametrów () po jej nazwie. Prawidłowe wywołanie metody w kodzie, musi posiadać wszystkie argumenty wejściowe. Zarówno argumenty wejściowe, jak i zmienna, do której zostanie podstawiony wynik metody, muszą być zgodne pod względem typu danych z informacją podaną w deklaracji metody. nagłówek

11 Metoda bezargumentowa nie zwracająca wartości void Przywitaj() { Console.WriteLine("Hello"); } Przywitaj(); }

12 Metoda argumentowa nie zwracająca wartości static void Iloczyn(int a,int b) { Response.Write ("Iloczyn="+a*b); } Iloczyn(5,6);

13 Metoda argumentowa zwracająca wartość int Iloczyn(int a,int b) { return a*b; } int x=Iloczyn(5,6)+4; Response.Write("5*6+4="+x);

14 Skrypt kliencki i serwerowy Skrypt // SKRYPT KLIENCKI for (i=0;i '); <% // SKRYPT SERWEROWY for (int i=0;i "); %> Skrypt widziany przez serwer Skrypt // SKRYPT KLIENCKI for (i=0;i '); 0 1 2 3 4 Skrypt widziany przez przeglądarkę 01234012340123401234 Wynik

15 Osadzanie skryptu serwerowego INLINE w kodzie HTML Dzisiejsza data to: Jako blok - dla dynamicznej generacji treści <% for (int i=0; i "); %> Jako blok.. - do definicji metod, zdarzeń itd. void Przywitaj(string imie) { Respone.Write("Witaj "+imie); } ……

16 Osadzanie skryptu serwerowego Dołączanie zewnętrznego pliku kodu using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public partial class Strona : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } Strona.aspx.cs

17 Dyrektywy Język Wyszukiwane błędów wykonania Przestrzeń nazw

18 Obiekt Page Obiekt Page reprezentuje stronę przygotowywaną na serwerze przed wysłaniem jej do przeglądarki użytkownika. Obiekty zagnieżdżone: Request – umożliwia dostęp do informacji o żądaniu wysłanym z przeglądarki Response – obiekt reprezentujący wszystkie dane wysyłane z serwera do przeglądarki (treść strony, cookies, przekierowania) Server – obiekt pozwalający uzyskać informacje o serwerze i jego zasobach

19 Obiekt Response Metody: Write(x) – dopisuje x do strony HTML WriteFile(nazwa) – dodaje zawartość pliku do pakietu HTTP End() – zakończenie przetwarzanie i wysłanie pakietu HTTP Redirect(url) – wysyła do przeglądarki polecenie przekierowania na adres URL Żądanie do strony1.aspx Nagłówek HTTP z przekierowaniem Żądanie do strony1.aspx REQUEST Zawartość strony strona2.aspx

20 Dynamiczna generacja HTML Test <% Response.Write(" "); for (int i=1;i<10;i++) { Response.Write(" "); for (int j=1; j<10;j++) Response.Write(" "+(i*j)+" "); Response.Write(" "); } %> Test <% for (int i=1;i<10;i++) { %> <% for (int j=1; j<10;j++) { %>

21 Automatyczne przekierowanie Test <% System.Random los=new System.Random(); switch (los.Next(0,3)) { case 1: Response.Redirect("http://www.onet.pl"); break; case 2: Response.Redirect("http://www..wp.pl"); break; case 3: Response.Redirect("http://www.interia.pl"); break; default: Response.Wrtie(" Zostajemy tutaj "); break; } %>

22 Obsługa daty i czasu – klasa DateTime Metody: ToString() – konwersja na tekst daty i czasu ToLongTimeString() – konwersa na pełny tekst czasu ToShortTimeString() – konwersja na skrócony tekst czasu ToLongDateString() – konwersa na pełny tekst czasu ToShortDateString() – konwersja na skrócony tekst czasu Właściowści: Hour – godzina Minute – minuta Second – sekunda Year – rok Month – miesiąc (1-12) Day DayOfWeek (Monday, Tuesday…) DayOfYear Skrypt <% DateTime czas=DateTime.Now; Response.Write(czas.ToLongTimeString() + " "); Response.Write(czas.Year + "-" + czas.Month + "-" + czas.Day); %>

23 Obiekt Request Właściwości: Form – kolekcja pól formularza wysłanych metodą POST QueryString – kolekcja pól formularza wysłanych modą GET Browser – informacje o przeglądarce użytkownika i jej możliwościach Browser: Borwser – Nazwa (IE) Type – Typ (IE7) Version – Wersja (7.0) MajorVersion – Numer główny wersji (7) MinorVersion – Numer poboczny wersji (0) Beta – Wersja beta (false) Crawler – Robot internetowy (false) Win32 – Windows 32-bitowy (true) Frames – Dostępne ramki (true) Tables – Dostępne tabele (true) Cookies – Dostępne ciasteczka (true) EcmaScriptVersion – dostępna wersja JS (1.2)

24 Przetwarzanie danych z formularza Klient Serwer Pytanie.htmlOdpowiedz.aspx Dane z formularza Wygenerowany kod HTML stanowiący odpowiedz

25 Przetwarzanie danych z formularza Pytanie Imię: Nazwisko: pytanie.htm Odpowiedź <% Response.Write("Przysłano: \n"+Request.QueryString); %> odpowiedz.aspx http://www.moj.pl/odpowiedz.asp?imie=Jan&nazwisko=Kowal Przysłano: imie=Jan&nazwisko=Kowal Wynik

26 Przetwarzanie danych z formularza Pytanie Imię: Nazwisko: pytanie.htm Odpowiedź <% Response.Write("Przysłano: \n"+Request.Form); %> odpowiedz.aspx http://www.moj.pl/odpowiedz.asp Przysłano: imie=Jan&nazwisko=Kowal Wynik

27 Przetwarzanie danych z formularza Pytanie Imię: Nazw: pytanie.htm Odpowiedz <% Response.Write("Imię: "+Request.QueryString["imie”]+"<br"); Response.Write("Nazwisko:" +Request.QueryString["nazwisko”]+"<br"); %> odpowiedz.aspx http://www.moj.pl/odpowiedz.asp?imie=Jan&nazwisko=Kowal Imię: Jan Nazwisko:Kowal Wynik

28 Przetwarzanie danych z formularza Pytanie Imię: Nazw: pytanie.htm Odpowiedz <% Response.Write("Imię: "+Request.Form["imie”]+"<br"); Response.Write("Nazwisko:" +Request.Form["nazwisko”]+"<br"); %> odpowiedz.aspx http://www.moj.pl/odpowiedz.asp Imię: Jan Nazwisko:Kowal Wynik

29 Klasa Math Metody: Sqrt(x) Abs(x) Pow(a,n) Round(x), Ceiling(x), Floor(x) Sin(rad),Cos(rad), Tan(rad) Sinh(rad), Cosh(rad), Tanh(rad) Asin(x),Acos(x),Atan(x), Atan2(x,y) Log(a,pod), Log10(x) Max(x1,x2), Min(x1,x2) Exp(n) Właściwości: E PI

30 Obliczenia na danych z formularza Wysokość: Promięń: pytanie.htm Objętość walca <% double h,r,V; h=Convert.ToDouble(Request.QueryString["wys”]); r=Convert.ToDouble(Request.QueryString["prom"]); V=Math.PI*Math.Pow(r,2)*h; Response.Write("Objętość wynosi "+V.ToString("F2”)+" cm 2 "); %> Nowe dane odpowiedz.aspx

31 Strona samodzielna Objętość walca Wysokość: Promięń: <% if (Request.QueryString.Count > 0) { double h, r, V; h = Convert.ToDouble(Request.QueryString["wys"]); r = Convert.ToDouble(Request.QueryString["prom"]); V = Math.PI * Math.Pow(r, 2) * h; Response.Write("Objętość wynosi " + V.ToString("F2") + " cm 2 "); } %>

32 Wyrażenia regularne – klasa RegEx Przestrzeń nazw: System.Text.RegularExpressions RegEx wyrazenie=new RegEx(@"^\d(0}$”); Metoda IsMatch string tekst="Hello"; Regex wyrazenie=new Regex(@"^[A-Z][a-z]+$"); if (wyrazenie.IsMatch(tekst)) Response.Write("OK"); else Response.Write("Źle"); Metoda Matches string tekst = "Mój pesel to 80120102256 a twój to 80111102256"; Regex wyrazenie=new Regex(@"\d{11}"); foreach (Match m in wyrazenie.Matches(tekst)) Response.Write(m.Value+" "); Metoda Replace string tekst = "Ala ma kota a Ola ma psa"; Regex wyrazenie=new Regex(@"ma"); Response.Write(wyrazenie.Replace(tekst,"posiada"));

33 Obiekt Server Metody: Transfer – przekierowanie obsługi strony po stronie serwera MapPath – tłumaczenie ścieżki względnej na ścieżkę fizyczną Żądanie do strony1.aspx Zawartość strony strona2.aspx TRANSFER

34 Mapowanie ścieżki Dysk C: Folder Serwisy Folder DaneStudentów Stona index.aspx Stona opis.aspx Serwer Katalog wirtualny STRONA DOMYŚLNA Server.MapPath("~”)  C:\Serwisy\DaneStudentów Server.MapPath(‘~/opis.aspx”);  C:\Serwisy\DaneStudentów\opis.aspx Server.MapPath(‘opis.aspx”);  C:\Serwisy\DaneStudentów\opis.aspx

35 Przekazywanie informacji przez hiperłącze Wybierz wielkość tabliczki mnożenia: <% for (int i = 5; i <= 9; i++) Response.Write(" Wielkość " + i + " "); %> <% if (Request.QueryString["wielkosc"] != null) { Response.Write(" "); int w = Convert.ToInt32(Request.QueryString["wielkosc"]); for (int i = 1; i <= w; i++) { Response.Write(" "); for (int j = 1; j <= w; j++) { Response.Write(" "); Response.Write(i*j); Response.Write(" "); } Response.Write(" "); } Response.Write(" "); } %>

36 ASP.NET a PHP Kwadrat <% if (Request.Form["bok"] != null) { double a = Convert.ToDouble(Request.Form["bok"]); Response.Write("Pole=" + (a * a)); } %> Kwadrat <? if (isset($_POST["bok”]) { $a = $_POST["bok”]; print "Pole=".($a * $a); } ?>

37 Literatura http://www.asp.net/get-started http://quickstarts.asp.net/QuickStartv20/aspnet/ http://www.centrumxp.pl/dotNet M. Mysior: Wprowadzenie do ASP.NET 2.0. Ćwiczenia praktyczne, NAKOM 2008 MCTS Self-Paced Training Kit (Exam 70-562): Microsoft.NET Framework 3.5 - ASP.NET

38 KONIEC


Pobierz ppt "Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych."

Podobne prezentacje


Reklamy Google