Technologie internetowe Wykład 7 Kontrola danych użytkownika.

Slides:



Advertisements
Podobne prezentacje
Język C/C++ Funkcje.
Advertisements

Wstęp do programowania
C++ wykład 7 ( ) Wyjątki.
Programowanie obiektowe
Dzisiejszy wykład Wyjątki.
Bezpieczeństwo wyjątków w C++: OpenGL
Wybrane elementy języka Java
Nowa wersja C# Autor: Piotr Sobczak
Szablony (wzorce) Przykład 1: Szablon klasy -
Licznik template<class Count_Type> class Count { public:
Obsługa błędów w programach i zapobieganie ich występowaniu.
Technologie XML Mgr inż. Michał Jaros Technologie XML wykład 3.
.NET - możliwości Jarosław Balcer & Jan Góralski.
Tworzenie ASP.NET Web Form
Arkadiusz Twardoń ZTiPSK
Bartosz Walter Inżynieria oprogramowania Lecture XXX JavaTM – część II Bartosz Walter
C++ wykład 7 ( ) Wyjątki. Ogólne spojrzenie na wyjątki Wyjątki zaprojektowano do wspierania obsługi błędów. System wyjątków dotyczy zdarzeń synchronicznych.
Wykład 2 struktura programu elementy języka typy zmienne
.NET Remoting Łukasz Zawadzki.
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
Technologia ASP.NET.
Podstawy programowania
C# Windows Forms Zastosowania Informatyki Wykład 3
Jakub Binkowski Visual C# MVP webEFS sp.j.. GET i POST.
Podstawy C# Grupa .NET PO.
Programowanie urządzeń mobilnych – wykład IV
Podstawy programowania w języku C i C++
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Podstawy programowania II
Technologie tworzenia aplikacji internetowych Wykład 3
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
Informatyczny system edukacyjny do przedmiotu „Multimedia”
TECHNOLOGIE INTERNETOWE
Programowanie obiektowe – zastosowanie języka Java SE
Seminarium problemowe
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
OBIEKTY Utworzenie obiektu var osoba = { „imię”:”Anna”,
Systemy zarządzania treścią Wykład 5
Wykład 3 przykłady operacje na tekstach wyrażenia logiczne
Wstęp do ASP.NET Arkadiusz Popa Serwery Aplikacji
Projektowanie stron WWW
K URS JĘZYKA C++ – WYKŁAD 7 ( ) Wyjątki.
Wykład 3 Programowanie obiektowe. Dokument HTML składa się z obiektów (standardowych i utworzonych przez użytkownika). Głównym obiektem jest document,
Responsywne aplikacje w Windows 8 i.NET 4.5 Jakub Binkowski.
Iteracje w C# Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Zmienne i typy danych w C#
Temat 3: Okno dialogowe.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Technologie internetowe
Wyjątki. Po co nam wyjątki? Często pisząc jakiś kod staramy się go uczynić uniwersalnym, jesteśmy w stanie wykryć sytuacje niepoprawne, ale nasz kod może.
Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
PO13-1 / 19 Wykład 13 Wyjątki i ich zgłaszanie Wyłapywanie wyjątków Obsługa wyjątków Wykorzystanie polimorfizmu Filtrowanie wyjątków Błędy w konstruktorach.
Wykład 10 Programowanie w Windows 1.Aplikacja dialogowa (Dialog Based) PO10-1 / 26.
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Portal edukacyjny J A V A S C R I P T JĘZYK PROGRAMOWANIA STRON HTML Opracowała: Anna Śmigielska.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Aplikacje Baz Danych ASP.NET
 Podstawowy składnik.NET Framework  Technologia tworzenia w pełni dynamicznych stron internetowych działających po stronie serwera  Zorientowanie na.
Programowanie Obiektowe – Wykład 6
Dzisiejsze zajęcia będą wyjątkowe…
Wątki, programowanie współbieżne
Programowanie Obiektowe – Wykład 2
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5
Aplikacje i usługi internetowe
Windows Workflow Foundation
Zapis prezentacji:

Technologie internetowe Wykład 7 Kontrola danych użytkownika

Rodzaje błędów Błąd kompilacji Błąd wykonania Błąd logiczny

Błąd komplikacji 1:int a=5; 2:a+="cm”; Linia 2: Nie można przekonwertować typu „string” na „int”.

Błąd wykonania protected void btnOblicz_Click(object sender, EventArgs e) { int litry = Convert.ToInt32(txtIlePaliwa.Text); int km = Convert.ToInt32(txtIleKilometrow.Text); int zuzycie = 100*litry / km; lblZuzycie.Text = zuzycie.ToString(); } Zatankowano [litry] Przejechano [km] [litrów/100km]

Błąd loginczny void PiszPoleWalca() { double promien = 3; double wysokosc = 2; double poleWalca = 2 * Math.PI * promien * h; Response.Write("Całkowite pole powierzchni walca:" + poleWalca.ToString("F2")); }

Wyjątki Mechanizm przepływu sterowania występujący we współczesnych językach programowania służący do obsługi zdarzeń wyjątkowych (w szczególności błędów wykonania).

Przyczyny wyjątków Błędne dane użytkownika Brak dostępu do pliku Problem z nawiązaniem połączenia (np. z serwerem bazodanowym) Przekroczenie indeksu tablicy, kolekcji Niewystarczające uprawnienia kodu

Obsługa wyjątków w C# try { // blok, w którym może wystąpić wyjątek } catch (klasa_wyjątku obiekt_wyjątku { // blok wykonywany w ramach obsługi wyjątku } finally { // blok zawsze wykonywany, niezależnie od wystąpienia wyjątku }

Hierarchia wyjątków.NET Exception AppliactionException SystemException ArthmeticException DivideByZeroException NotFiniteNumberException OverflowException FormatException Ponad 100 wyjątków….

protected void btnOblicz_Click(object sender, EventArgs e) { try { int litry = Convert.ToInt32(txtIlePaliwa.Text); int km = Convert.ToInt32(txtIleKilometrow.Text); int zuzycie = 100 * litry / km; lblZuzycie.Text = zuzycie.ToString(); } catch (FormatException w) { lblZuzycie.Text = " Błędny format danej "; } catch (DivideByZeroException w) { lblZuzycie.Text = " Dystans równy 0 "; } catch (Exception w) { lblZuzycie.Text = " Zgłoś błąd administratorowi: " + w.Message; } finally { lblZuzycie.BackColor = System.Drawing.Color.Yellow; } } Zatankowano [litry] Przejechano [km] [litrów/100km] Wyjątki obsługujemy od najbardziej szczegółowego do najogólniejszego !

Przekazywanie wyjątków int Iloraz(int a, int b) { return (a/b); } int Zuzycie (int paliwo, int km) { return 100*Iloraz(paliwo,km); } void btnObliczClick (object s, EventArgs e) { lblWynik.Text=Zuzycie(30,0).ToString(); } INTERFEJS Wywołanie Wyjątek

Wyjątki w JavaScript Kalkulator function Oblicz() { try { var wynik = eval(document.getElementById("txtWyr").value); document.getElementById("lblWynik").innerHTML = wynik; } catch (w) { alert(w.message); } finally { document.getElementById("lblWynik").style.backgroundColor = "yellow"; } } Wyrażenie

Walidatory Kontrolki nadzorujące zawartość innych kontrolek (zwykle TextBox) Jeżeli którykolwiek walidator wykryje problem blokuje akcje inicjowaną np. przyciskiem Buttton i wyświetla komunikat Funkcjonalność walidatorów może być realizowana po stronie serwerowej i/lub klienckiej

Właściwości walidatorów ControlToValidate – wskazuje, która kontrolka jest nadzorowana Text – informacja o błędzie wyświetlana bezpośrednio przez walidator ErrorMessage – informacja o błędzie wyświetlana w podsumowaniu walidacji Display – decyduje, czy nieaktywny walidator zajmuje miejsce (wartość Static) lub całkowicie znika Dynamic. ValidationGroup – grupa kontrolek podlegających pojedynczej walidacji EnableClientScript – wykorzystanie skryptów klienckich do walidacji SetFocusOnError – automatyczne przejście do edycji nadzorowanej kontrolki w chwili wystąpienia błędu

RequiredFieldValidator <asp:TextBox ID="txtPromien” runat="server” <asp:RequiredFieldValidator ID="rfvPromien" runat="server" ControlToValidate="txtPromien" Text="Nie podałeś promienia" /> Sprawdza, czy w polu wpisano jakąkolwiek wartość. Właściwość InitialValue pozwala przedefiniować wartość początkową. Uwaga ! Pozostałe walidatory aktywują się tylko w wypadku wprowadzenia jakiejś wartości do kontrolki nadzorowanej. Z tego powodu można uznać RequiredFieldValidator za walidator obowiązkowy.

RangeValidator Wartość poza zakresem. Sprawdza, czy wartość w polu mieści się w zakresie. Typ wartości decyduje o poprawnym porównaniu z zakresem MinimumValue - MaximumValue Double, IntegerString 10>210<2

CompareValdiator Porównuje wartość pola z wartością lub z innym polem. <asp:CompareValidator ID="cvPromien" runat="server" ControlToValidate="txtPromien" Operator="GreaterThan" Type="Double" ValueToCompare="0">Promień musi być większy od zera. Porównanie z wartością Porównywana wartość Sposób porównania <asp:CompareValidator ID="cvPromien" runat="server" ControlToValidate="txtPromien" Operator="LessThanEqual" Type="Double" ControlToCompare="txtWysokosc">Promień musi być nie większy niż wysokość. Kontrolka porównywana Kontrolka sprawdzana

CompareValidator – kontrola formatu danej <asp:CompareValidator ID="cvDana" runat="server" ControlToValidate="txtDana" Operator="DataTypeCheck" Type="Integer">Zła typ danej. Operator DataTypeCheck sprawdza, czy dana w kontrolce nadzorowanej może zostać przekonwertowana do typu określonego w Type.

ReqularExpressionValidator Sprawdza, czy wartość w pisana w polu ma wymagany format. <asp:RegularExpressionValidator ID="revPoczta" runat="server" ControlToValidate="txtPoczta" Podaj poprawny adres pocztowy Właściwość ValidationExpression zawiera wyrażenie regularne opisujące wymagany format tekstu – tutaj adresu owego. Uwaga ! Wyrażenie automatycznie jest uzupełniane o symbole początku i końca tekstu ^.. $.

CustomValidator Walidator pozwalający wprowadzić własny kod sprawdzający po stronie serwera (zdarzenie ServerValidate) i klient (właściwość ClientValidationFunction) <asp:CustomValidator ID="cvPromien" runat="server" OnServerValidate="cvPromien_ServerValidate" ClientValidationFunction="SprawdzPromien” ControlToValidate="txtPromien"> Zła dana protected void cvPromien_ServerValidate(object source, ServerValidateEventArgs args) { if (args.Value.Length > 5) args.IsValid = true; else args.IsValid = false; } function SprawdzPromien(source, args) { if (args.Value.length > 5) args.IsValid = true; else args.IsValid = false; }

Walidacja po stronie klienta Oparta o skrypt kliencki JavaScript Natychmiastowa informacja o błędzie Brak przeładowania strony Brak działania w wypadku wyłączenia skryptów klienckich

Walidacja po stronie serwera Oparta o skrypt serwerowy Zawsze realizowana Wymaga sprawdzenia właściwości strony IsValid prawdziwej, gdy nie aktywował się żaden walidator Wymaga przeładowania strony

protected void btnObliczPole_Click(object sender, EventArgs e) { if (IsValid) lblPole.Text = (Convert.ToDouble(txtWysokosc.Text) * Convert.ToDouble(txtSzerokosc.Text)).ToString("F2"); } Prostokąt Wysokość <asp:RequiredFieldValidator ID="rfvWysokosc" runat="server" ControlToValidate="txtWysokosc">Brak wysokości. <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtWysokosc" Operator="GreaterThan" Type="Double" ValueToCompare="0">Zła wysokość. Szerokość <asp:RequiredFieldValidator ID="rfvSzerokosc" runat="server" ControlToValidate="txtSzerokosc" Display="Dynamic">Brak szerokości. <asp:RegularExpressionValidator ID="revSzerokosc" runat="server" ControlToValidate="txtSzerokosc" ValidationExpression="\d*[0248]">Szerokość nieparzysta. <asp:Button ID="btnObliczPole" runat="server" onclick="btnObliczPole_Click" Text="Oblicz" /> <asp:Label ID="lblPole" runat="server" BackColor="#3399FF" Text="0" Width="150px">

Komunikacja błędu inna niż tekst. Wartość poza zakresem.. Tekst Obrazek

ValidationSummary Kontrolka zawierająca spis wszystkich błędów (ErrorMessage) wygenerowanych przez walidatory z tej samej grupy (ValidtionGroup) <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtPromien" ErrorMessage="Zly promeń" MaximumValue="10" MinimumValue="0" Type="Double">Podaj promień od 0 do 10 Wysokość <asp:RangeValidator ID="rvWysokość" runat="server" ControlToValidate="txtWyskość" ErrorMessage="Zła wysokość" MaximumValue="15" MinimumValue="5" Type="Double"> Podaj wysokość 5 do 15 Właściwości: ShowMessageBox ShowSummary

Grupa walidacyjna Właściwość ValidationGroup posiadają: kontrolki walidatorów kontrolka podsumowania walidacji kontrolki powodujące inicjujące akcje i przeładowanie strony: przyciski Button, LinkButton, ImageButton listy ListBox, DropDownList, CheckBoxList, RadioButtonList pola RadioButton, CheckBox Właściwość ValidationGroup pozwala rozdzielić stronę na niezależnie sprawdzane sekcje

Grupy walidacyjne - przykład

Kontrola danych Walidacja po stronie klienckiej Walidacja po stronie serwerowej Własna logika sprawdzania Obsługa wyjątków

Literatura M. Mysior: Wprowadzenie do ASP.NET 2.0. Ćwiczenia praktyczne, NAKOM 2008 MCTS Self-Paced Training Kit (Exam ): Microsoft.NET Framework ASP.NET

KONIEC