Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Technologie programowania systemów internetowych

Podobne prezentacje


Prezentacja na temat: "Technologie programowania systemów internetowych"— Zapis prezentacji:

1 Technologie programowania systemów internetowych
Piotr Czapiewski Wydział Informatyki ZUT Technologie programowania systemów internetowych Wykład 1

2 Aplikacje internetowe
Systemy internetowe Systemy internetowe Aplikacje internetowe Witryny internetowe Strony internetowe Ewolucja: Strony internetowe -> strony dynamiczne -> witryny, aplikacje internetowe Systemy informatyczne -> monolityczne -> klient/serwer -> wielowarstwowe, rozproszone -> systemy internetowe Strony internetowe: HTML, CSS, JavaScript, design, Flash Witryny internetowe: Witryna to coś więcej, niż zbiór stron. Architektura informacji, web usability, projektowanie nawigacji, organizacja treści, budowa portali. Aplikacje internetowe: Aplikacja klient/serwer używająca przeglądarki jako klienta. Przetwarzanie danych, dostęp do zasobów i usług. CGI, PHP, ASP, JSP System internetowy: Coś więcej niż aplikacja internetowa. Dodatkowo: usługi sieciowe, przetwarzanie rozproszone, integracja aplikacji. Może mieć GUI, ale nie musi. Może mieć klienta webowego albo stanowiskowego. System internetowy jako część systemu korporacyjnego. Web-services, SOA, JavaEE, .NET. - Tworzenie systemów internetowych: nie webmastering/projektowanie witryn/grafika/css/flash – bliżej: inżynieria oprogramowania, architektura systemów. Obszar zainteresowań: Metodologia projektowania aplikacji – NIE Projektowanie warstwy prezentacji, webmastering, design graficzny – NIE Projektowanie architektury, nawigacji, web usability - NIE Technologie programowania – TAK Usługi sieciowe, komunikacja – TAK Interesuje nas przede wszystkim programowanie; języki programowania, platformy, wzorce projektowe.

3 Architektura systemów internetowych
Architektura trójwarstwowa (3-tier) Interfejs użytkownika Prezentacja wyników Warstwa prezentacji Logika biznesowa Przetwarzanie danych Kontrola przepływu informacji Warstwa aplikacji Bazy danych Składowanie i pobieranie danych Warstwa danych

4 Architektura systemów internetowych
Architektura trójwarstwowa (3-tier) Przeglądarka WWW HTML, CSS, JavaScript, Flash Warstwa prezentacji Serwer WWW, serwer aplikacji PHP, Java Servlets, JSP, EJB Warstwa aplikacji Serwer bazy danych PostgreSQL, MySQL, Oracle JDBC, ODBC, JDO, ADO.NET Warstwa danych

5 Architektura systemów internetowych
Architektura wielowarstwowa (multi-tier, n-tier) Warstwa prezentacji JSP, Java Servlets Warstwa logiki prezentacji Enterprise Java Beans Warstwa logiki biznesowej Warstwa danych Web tier Business tier

6 Architektura systemów internetowych
Architektura SOA (Service-Oriented Architecture) Grupowanie funkcjonalności wokół procesów biznesowych Udostępnianie funkcjonalności w postaci usług

7 Serwery WWW i serwery aplikacji
Serwer WWW Obsługa żądań HTTP, udostępnianie dokumentów, komunikacja z przeglądarką WWW Uwierzytelnianie, kontrola dostępu Przykładowe serwery: Apache, IIS, lighttpd Serwer aplikacji Platforma uruchamiania warstwy aplikacji, logiki biznesowej, usług sieciowych Komunikacja z warstwą klienta i warstwą danych Przykładowe serwery: Tomcat, JBoss, Glassfish, .NET Framework, Zend Server, Zope

8 Technologie aplikacji internetowych
Smarty, Zend, Symfony, Zoop, CodeIgniter… CGI, Perl, PHP, ColdFusion, ASP… JSP, JSF, Struts, Spring, Tapestry, GWT, Seam… Java, .NET, C#, VB, Ruby, RoR, Flex…

9 PHP PHP: Hypertext Preprocessor

10 PHP: Hypertext Preprocessor
Język skryptowy ogólnego przeznaczenia Główne zastosowanie: dynamiczne strony internetowe, server-side scripting Powstanie i rozwój Pierwsza wersja: 1995 r. Twórca: Rasmus Lerdorf Obecnie rozwijany przez PHP Group, Open source Zalety Dostępny dla większości platform Łatwy w użyciu Szybki w działaniu

11 Popularność PHP Źródło: Netcraft,

12 Historia PHP 1.0 – 4.4 5.0 – 5.6 6.0 7.0 5.0 – programowanie obiektowe
5.1 – PDO 5.3 – przestrzenie nazw, PHAR 5.4 – wbudowany serwer WWW 6.0 Anulowane 7.0 Planowane Początki: 1994 r. Rasmus Lerdorf. Prywatny projekt, wsparcie swojej strony domowej. Proste programy CGI w C, zastąpiły skrypty w Perlu. Potem dodał obsługę formularzy i baz danych – PHP/FI. Obiektowość: w wersji 3, prawdziwa w 5. PHP Data Objects w 5.

13 PHP: osadzanie w HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html>

14 Proces generowania strony
Działa jak filtr. Na wejściu: tekst przeplatany PHP. Na wyjściu: strumień danych/tekstu. Na początku: interpreter. Obecnie: kompilator, bytecode, Zend Engine służy za VM.

15 Proces generowania strony
Zasada działania Początkowo: kod interpretowany Obecnie: Zend Engine - kompilacja w locie, możliwe cache’owanie kodu pośredniego; planowane przejście na JIT Działa jak filtr. Na wejściu: tekst przeplatany PHP. Na wyjściu: strumień danych/tekstu. Na początku: interpreter. Obecnie: kompilator, bytecode, Zend Engine służy za VM.

16 Jak zacząć? Serwer WWW Moduł PHP Baza danych
Apache – Moduł PHP Baza danych MySQL – PostgreSQL – Paczuszka – wszystko w jednym XAMPP –

17 Jak zacząć? Środowisko programistyczne (IDE)
Netbeans + PHP plugin – Eclipse + PDT plugin –

18 Programowanie w PHP

19 Składnia PHP Przeplatanie PHP i HTML
Blok kodu PHP może być ograniczony przez:

20 Przeplatanie PHP i HTML

21 Przeplatanie PHP i HTML

22 Komentarze Komentarze w stylu języka C Komentarze w stylu Perla
Jednolinijkowe Blokowe Komentarze w stylu Perla

23 Zmienne Identyfikatory zmiennych Znak $ + nazwa zmiennej
$x, $y, $username, $_A27 Rozróżniana wielkość liter $kartofel != $Kartofel != $KARTOFEL Dozwolone znaki: Litery, cyfry, znaki podkreślenia Nazwa zmiennej musi zaczynać się od litery lub podkreślenia

24 Przypisywanie zmiennych
Domyślnie zmienne przypisywane są przez wartość: Przypisanie przez referencję:

25 Przypisywanie zmiennych
Uwaga na referencje:

26 Inicjalizacja zmiennych
Deklaracja i inicjalizacja zmiennych nie jest konieczna Zmienne inicjowane są wartością domyślną danego typu boolean: false, integer: 0, string: "" Niebezpieczeństwo: Sprawdzenie czy zmienna została zainicjowana: Brak błędu Wynik: 7 Niebezpieczeństwa polegania na niezainicjowany zmiennych: Includowanie skryptów korzystających z tych samych zmiennych Zmienne przekazane przez hackera GETem lub cookie

27 Typy zmiennych Typów zmiennych w PHP nie trzeba deklarować
Typ zmiennej określany jest na podstawie kontekstu, w jakim zmienna została użyta Automatyczna konwersja typów

28 Łańcuchy tekstowe Łańcuch może być ograniczony:
Apostrofami – 'Ala ma kota' Cudzysłowem – "Ala ma kota”

29 Łańcuchy ograniczone apostrofami
Wewnątrz możemy umieszczać cudzysłów Aby w środku łańcucha umieścić apostrof, poprzedzamy go znakiem backslash: \' Aby umieścić backslash na końcu łańcucha lub przed znakiem apostrofu, wpisujemy dwa znaki backslash: \\ Backslash umieszczony przed innym znakiem zostanie wyświetlony normalnie Zmienne wewnątrz łańcucha nie są rozwijane Łańcuch może zawierać znaki nowej linii

30 Łańcuchy ograniczone apostrofami

31 Łańcuchy ograniczone cudzysłowem
Więcej sekwencji specjalnych, np. \n, \r, \t, \$, \" Zagnieżdżanie cudzysłowu i apostrofu

32 Łańcuchy ograniczone cudzysłowem
Rozwijanie zmiennych zawartych w łańcuchu

33 Operacje na łańcuchach tekstowych
Operator konkatenacji – kropka Zmiana wielkości znaków

34 Operacje na łańcuchach tekstowych
Dostęp do pojedynczych znaków Długość łańcucha Wyszukanie i zamiana ciągów znaków

35 Operacje na łańcuchach tekstowych
Zamiana łańcucha na liczbę Automatyczna, typ zależny od kontekstu Jeśli łańcuch zawiera: kropkę, 'e' lub 'E'  typ float W przeciwnym wypadku  typ integer Zamieniana jest początkowa część łańcucha, tworząca liczbę Jeśli łańcuch nie zawiera liczby  wartość zero

36 Instrukcje sterujące Instrukcja warunkowa if

37 Instrukcje sterujące Instrukcja warunkowa if

38 Instrukcje sterujące Pętle while i do-while

39 Instrukcje sterujące Pętle for i foreach

40 Instrukcje sterujące Instrukcja wyboru switch

41 Tablice Tablica w PHP jest w rzeczywistości uporządkowaną mapą
przechowuje pary klucz-wartość Tablicy można użyć jako: tablicy, listy, mapy, słownika, stosu, kolejki… Wielowymiarowe tablice tablice zawierające tablice

42 Tablice Tworzenie tablicy

43 Tablice Dopisywanie danych na końcu tablicy Usuwanie danych z tablicy
1 2 3 8 13 18

44 Tablice Iterowanie po tablicy – pętla foreach

45 Funkcje Definicja i wywołanie funkcji
Funkcja może być zdefiniowana później, niż użyta Nazwa funkcji – reguły jak dla zmiennych Zawartość – dowolny kod, także inne funkcje i klasy Zwracanie wartości jest opcjonalne. Zwrócić można wszystko – także tablicę.

46 Funkcje warunkowe

47 Funkcje warunkowe

48 Argumenty funkcji Domyślnie argumenty przekazywane są przez wartość
Przekazywanie przez referencję

49 Argumenty funkcji Argumenty z wartością domyślną
Making a cup of cappuccino. Making a cup of . Making a cup of espresso.

50 Argumenty funkcji Argumenty z wartością domyślną – błędne użycie ŹLE
DOBRZE

51 Aplikacje internetowe w PHP

52 rejestruj.php?imie=Jan&nazw=Kowalski
Obsługa formularzy rejestruj.php <?php if(isset($_REQUEST[' '])) { $imie = filtruj($_REQUEST['imie']); $nazw = filtruj($_REQUEST['nazw']); $ = filtruj($_REQUEST[' ']); $id = dodaj($imie, $nazw, $ ); } else { wyswietlFormularz(); } function filtruj($s) { return trim(htmlspecialchars($s)); } ?> rejestruj.php?imie=Jan&nazw=Kowalski index.html <form action="rejestruj.php" method="get" > Imię: <input type="text" name="imie"> Nazwisko: <input type="text" name="nazw"> <input type="submit" value="Wyślij"> </form>

53 Obsługa formularzy Formularz HTML Tablice globalne: $_GET, $_POST

54 Obsługa formularzy Zabezpieczenie przed wstrzykiwaniem kodu HTML lub JavaScript Obsługa sesji Programowanie obiektowe Rozbudowany przykład

55 Obsługa sesji

56 Sesje Rozwiązanie problemu bezstanowości protokołu HTTP
Generowany przy pierwszym żądaniu Przesyłany w URL lub zapamiętywany jako cookie Identyfikator sesji Serwer zapamiętuje stan sesji (stan uwierzytelnienia, pozycje w koszyku, itp.) Zmienne kojarzone są z danym identyfikatorem Tablica sesji Jawne zniszczenie sesji Wygaśnięcie sesji po upływie określonego czasu Usuwanie stanu sesji

57 Obsługa sesji Rozpoczynanie sesji Zmienne sesyjne
Automatyczne – jeśli session.auto_start = 1 Ręczne – session_start(); Zmienne sesyjne $_SESSION['uzytkownik'] = 'Zdzichu'; Usunięcie zmiennej zapisanej w sesji unset($_SESSION['nazwa_zmiennej']) Usunięcie sesji session_destroy()

58 Logowanie za pomocą sesji
<?php // Starting the session session_start(); if(isset($_SESSION['user'])) { // Code for Logged members // Identifying the user $user = $_SESSION['user']; // Information for the user. } else { // Code to show Guests } ?>

59 Logowanie za pomocą sesji
<?php //Username Stored for logging define("USER", "user"); define("PASS", "123456"); // Normal user section - Not logged if(isset($_REQUEST['username']) && isset($_REQUEST['password'])) { // Section for logging process $user = trim($_REQUEST['username']); $pass = trim($_REQUEST['password']); if($user == USER && $pass == PASS) { // Successful login // Setting Session $_SESSION['user'] = USER; // Redirecting to the logged page header("Location: index.php"); } else { // Wrong username or Password. Show error here. } }


Pobierz ppt "Technologie programowania systemów internetowych"

Podobne prezentacje


Reklamy Google