Podstawy strony aktywnej ASP.NET, klasa Page

 

 

 

 

Cele ćwiczenia

 

Klasa Page

 

Klasa Page reprezentuje stronę internetową.

Ważne właściwości klasy Page:

·         Response – zwraca obiekt HttpResponse, który reprezentuje odpowiedź HTTP na bieżące żądanie, ważne metody klasy HttpResponse

o       Write – zapisuje dane do strumienia HTTP,

o       Redirect – przełącza żądanie do innej strony,

·         Request – zwraca obiekt HttpRequest, który reprezentuje bieżące żądanie HTTP wysłane przez przeglądarkę, ważne właściwości klasy HttpRequest

o       Cookies – zwraca kolekcję ciasteczek odesłanych przez przeglądarkę,

o       Form – zwraca kolekcję danych formularza wysłanych z żądaniem,

o       QueryString – zwraca kolekcję danych wysłanych w ciągu zapytania razem z żądaniem,

o       ServerVariebles – zwraca kolekcję nazwanych danych serwera wysłanych razem z żądaniem,

o       Params – zwraca łączną kolekcję Cookies, Form, QueryString i ServerVariebles,

o       FilePath – zwraca wirtualną ścieżkę do bieżącej strony,

o       PhisicalPath – zwraca fizyczną ścieżkę do bieżącej strony,

o       ApplicationPath – zwraca wirtualną ścieżkę aplikacji,

o       Phisical ApplicationPath – zwraca fizyczną ścieżkę aplikacji,

·         IsPostBack – zwraca wartość false, gdy strona jest wywoływana po raz pierwszy i wartość true, jeśli jest to kolejne wywołanie strony.

 

Aktywne tworzenie treści strony

 

  1. Utwórz nową witrynę w lokalnym systemie plików.
  2. Na stronie Default.aspx umieść skrypt dodający do strony tekst Ala ma kota i przetestuj jego działanie.

<%

    Response.Write("Ala ma kota<br />");        

%>

  1. Zmień skrypt tak, aby umieścił na stronie 10 linii zawierających tekst Ala ma kota nr k, gdzie k cyfry od 1 do 10. W skrypcie do konwersji liczby na tekst można wykorzystać klasę Convert i metodę ToString().

 

Odczytanie i wydruk parametrów żądania

 

  1. Dodaj do witryny nowa stronę typu Web Form.
  2. Umieść na nowej stronie skrypt z listingu 1 umieszczający na stronie listę parametrów żądania.

 

Listing 1. Kod skryptu wypisującego na stronie WWW listę parametrów żądania

 

<%

// Wydruk parametrów żądania

for (int i = 0; i < Request.Params.Count; i++)

{

    Response.Write("Indeks : " + i.ToString() + "<br />");

    Response.Write("Nazwa  : " + Request.Params.GetKey(i) + "<br />");

    Response.Write("Ilość  : " + Request.Params.GetValues(i).Length.ToString() + "<br />");

  

    for (int j = 0; j < Request.Params.GetValues(i).Length; j++)       

        Response.Write("Wartość:" + Request.Params.GetValues(i)[j] + "<br /><br />");

}        

%>

 

  1. Uruchom stronę i zapoznaj się z listą parametrów.
  2. W przeglądarce dodaj do adresu strony łańcuch query string, który jest częścią adresu URL umożliwiającą przesłanie do aplikacji danych.

 

Format adresu: http://server/path/program?query_string

Format łańcucha: parametr1=wartość1&parametr2=wartość2&parametr3=wartość3...

 

  1. Przeładuj stronę i znajdź wprowadzone dane na liście parametrów, wśród parametrów znajdź też QUERY_STRING.

 

Przesyłanie danych formularza

 

Uwaga: W bieżącym ćwiczeniu używane będą głównie standardowe kontrolki HTML, znajdujące się w zakładce HTML, na dole paska narzędzi (Toolbox) Visual Studio.

 

  1. Dodaj do witryny nową stronę typu Web Form.
  2. Na formularzu strony, w widoku Design, umieść następujące kontrolki HTML:
    1. dwie kontrolki Input (Text),
    2. Input (Submit),
    3. Input (Reset).
  3. Pod formularzem umieść kod skryptu z listingu 1.
  4. Uruchom stronę, wpisz dowolne dane do kontrolek tekstowych i kliknij przycisk Submit.
  5. Spróbuj odnaleźć dane formularza na liście parametrów, jeśli ich nie znajdziesz przejdź dalej.
  6. Nadaj nazwy kontrolkom tekstowym np. Nazwisko, Imię i ponownie wykonaj punkty 4 i 5 – tym razem parametry o nazwach kontrolek powinny się pojawić na liście parametrów.
  7. Zmień metodę przesyłania danych z domyślnej GET na POST i zaobserwuj różnicę (parametry nie będą już przesyłane w łańcuch query string dodawanym do adresu).
  8. W przeglądarce dodaj do adresu strony dowolny query string zawierający parametry, wpisz dane do formularza, następnie kliknij Submit i znajdź parametry query string i dane formularza na liście.

Przesyłanie danych formularza między stronami

 

  1. Dodaj do witryny nowa stronę o nazwie odbiornik.aspx.
  2. Na stronie umieść skrypt z listingu 1.
  3. Dodaj do witryny nowa stronę o nazwie nadajnik.htm.
  4. Do strony w widoku Source dodaj formularz.
  5. Na formularzu, w widoku Design lub Source, umieść następujące kontrolki HTML:
    1. dwie kontrolki Input (Text),
    2. Input (Submit),
    3. Input (Reset).
  1. Nazwij kontrolki i ustaw atrybut formularza action="odbiornik.aspx".
  2. Uruchom stronę, wpisz dowolne dane do kontrolek tekstowych i kliknij przycisk submit.
  3. Na stronie odbiornik.aspx znajdź przesłane parametry formularza.
  4. Przetestuj dwie metody przesyłania danych POST i GET, dla obu metod zapoznaj się z parametrem QUERY_STRING.
  5. Ustaw atrybut formularza action="http://argo.umg.edu.pl/www/aplikacje/Cw01/odbiornik.aspx". i przetestuj przesyłanie parametrów na powyższy adres.
  6. Dodaj do witryny nowa stronę o nazwie nadajnik.aspx.
  7. Na stronie umieść standardowe kontrolki ASP.NET TextBox i Button.
  8. Ustaw atrybut przycisku PostBackUrl="~/odbiornik.aspx".
  9. Uruchom stronę, w przeglądarce zapoznaj się ze źródłem strony, znajdź kod
    1. kontrolek tekstowych,
    2. kontrolek ukrytych,
    3. przycisku,
    4. skryptu obsługującego kliknięcie przycisku.
  10. Wpisz dowolne dane do kontrolek tekstowych i kliknij przycisk.
  11. Na stronie odbiornik.aspx znajdź przesłane parametry formularza, jawne i ukryte.

 

Wykorzystanie parametrów żądania i formularza w aplikacji

 

  1. Utwórz nową stronę odbierającą z formularza dane osobowe i drukującą je.
  2. Na listingu 2 przedstawiono kod skryptu sprawdzającego, czy w żądaniu jest parametr Nazwisko i w przypadku, gdy jest, drukujący go.

 

Listing 2. Kod skryptu sprawdzającego, czy przesłano parametr Nazwisko

 

<%

    if (Request.Params["Nazwisko"]==null)

        Response.Write("Nie przesłano parametru Nazwisko");

    else

        Response.Write("Przesłano parametr Nazwisko = " + Request.Params["Nazwisko"]);

%>

 

  1. Przetestuj działanie aplikacji.

 

Przesyłanie plików na serwer

 

  1. Dodaj do witryny nowa stronę typu Web Form.
  2. Na formularzu strony, w widoku Design, umieść następujące kontrolki HTML:
    1. Input (Text) – name="nazwa",
    2. Input (File) – name="plik",
    3. Input (Submit).
  1. Ustaw atrybuty formularza: enctype="multipart/form-data" method="post".
  2. Na stronie umieść skrypt z listingu 3, który

a.       sprawdza ilość przesłanych plików,

b.      jeśli plik został przesłany, zapisuje go na twardym dysku serwera pod nazwą pobraną z kontrolki tekstowej,

c.       umieszcza zawartość pliku na stronie.

 

Listing 3. Kod skryptu zapisującego pobrany plik i umieszczający jego treść na stronie

 

<%

if (Request.Files.Count > 0)

{

    string nazwa = Request.PhysicalApplicationPath + Request.Params["nazwa"];

    Request.Files.Get(0).SaveAs(nazwa);

    Response.Write("Traść przesłanego pliku<br />");

    Response.WriteFile(nazwa);

}  

%>

<form id="form1" enctype="multipart/form-data" method="post">

<div>  

    <input id="Text1" type="text" name="nazwa" /><br />

    <input id="File1" type="file" name="plik" /><br />

    <input id="Submit1" type="submit" value="submit" /></div>

</form>

 

  1. Przetestuj działanie aplikacji, znajdź przesłany plik w katalogu głównym aplikacji.

 

Uwaga: przesyłanie i zapisywanie plików na serwerze może być potencjalnie niebezpieczne, dlatego trzeba stosować daleko idące zabezpieczenia.

 

Zapis przekazanych danych formularza do pliku

 

  1. Napisz aplikację, która pobiera z formularza strony dane osobowe i po kliknięciu przycisku submit dopisuje wprowadzone dane do pliku tekstowego umieszczonego w katalogu głównym aplikacji.
  2. Do wykonania zadania może być pomocny listing 3 zawierający kod dopisywania do pliku tekstowego test.txt zdania „Ala ma kota”.

 

Listing 4. Kod dopisywania do pliku test.txt (umieszczonego w katalogu głównym aplikacji) zdania „Ala ma kota”

 

string nazwa_pliku = Request.PhysicalApplicationPath + @"\test.txt";

// Otwarcie pliku do dopsywania

System.IO.StreamWriter plik = new System.IO.StreamWriter(nazwa_pliku,true);

 

plik.WriteLine("Ala ma kota");

plik.Close();

 

  1. Przetestuj działanie aplikacji dopisując kilkakrotnie do pliku przykładowe dane osobowe.
  2. Znajdź plik test.txt w katalogu głównym aplikacji i odczytaj jego treść.

 

Uwaga: w aplikacjach internetowych głównym miejscem zapisu danych są bazy danych a nie pliki tekstowe.

Projekt

 

  1. Utworzyć aplikację prezentującą listę odebranych parametrów formularza i query string, wraz z pełną informacją od kogo przyszło żądanie.
  2. Utworzyć co najmniej 2 strony przesyłające do aplikacji dane.
  3. Utworzyć aplikację, która pobiera z formularza dane osobowe (nazwisko, imię, imię ojca, data urodzenia, adres Email) i zapisuje w pliku tekstowym – każda osoba w osobnym wierszu, dane rozdzielone średnikami.
  4. Utworzyć stronę prezentującą zebrane dane osobowe.