Poradniki ASP

ASP DOM

Samouczek WP

Wprowadzenie do stron internetowych Strony internetowe Brzytwa Układ stron internetowych Foldery stron internetowych Globalne strony internetowe Formularze stron internetowych Obiekty stron internetowych Pliki stron internetowych Bazy danych stron internetowych Pomocnicy stron internetowych Strony internetowe WebGrid Wykresy stron internetowych Adres e-mail stron internetowych Bezpieczeństwo stron internetowych Strony internetowe Opublikuj Przykłady stron internetowych Klasy stron internetowych

Brzytwa ASP.NET

Wprowadzenie do brzytwy Składnia brzytwy Zmienne C# brzytwy Pętle C# brzytwy Razor C# Logika Zmienne VB brzytwy Pętle Razor VB Razor VB Logic

ASP klasyczny

Wprowadzenie do ASP Składnia ASP Zmienne ASP Procedury ASP Warunki korzystania z ASP Zapętlanie ASP Formularze ASP Pliki cookie ASP Sesja ASP Aplikacja ASP ASP #zawiera ASP Global.as ASP AJAX e-mail ASP Przykłady ASP

Odniesienie do ASP

Funkcje ASP VB Słowa kluczowe ASP VB Odpowiedź ASP Zapytanie ASP Aplikacja ASP Sesja ASP Serwer ASP Błąd ASP System plików ASP Strumień tekstowy ASP Dysk ASP Plik ASP Folder ASP Słownik ASP ASP AdRotator Przeglądarka ASP Łączenie treści ASP Rotator treści ASP Szybkie ref. ASP

Samouczek ADO

Wprowadzenie ADO Connect Zestaw rekordów ADO Wyświetlacz ADO Zapytanie ADO Sortuj ADO ADO Dodaj Aktualizacja ADO ADO Usuń Demo ADO Przyspieszenie ADO

Obiekty ADO

ADO Polecenie Połączenie ADO Błąd ADO Pole ADO Parametr ADO Nieruchomość ADO Rekord ADO Zestaw rekordów ADO Strumień ADO Typy danych ADO

Obiekt sesji ASP


Obiekt Session przechowuje informacje o lub zmienia ustawienia sesji użytkownika.


Obiekt sesji

Kiedy pracujesz z aplikacją na swoim komputerze, otwierasz ją, wprowadzasz zmiany, a następnie ją zamykasz. To jest jak sesja. Komputer wie, kim jesteś. Wie, kiedy otwierasz aplikację, a kiedy ją zamykasz. Jednak w Internecie jest jeden problem: serwer WWW nie wie kim jesteś i co robisz, ponieważ adres HTTP nie utrzymuje stanu.

ASP rozwiązuje ten problem, tworząc unikalny plik cookie dla każdego użytkownika. Plik cookie jest wysyłany do komputera użytkownika i zawiera informacje identyfikujące użytkownika. Ten interfejs nazywa się obiektem Session.

Obiekt Session przechowuje informacje o lub zmiany ustawień sesji użytkownika.

Zmienne przechowywane w obiekcie Session zawierają informacje o jednym użytkowniku i są dostępne dla wszystkich stron w jednej aplikacji. Typowe informacje przechowywane w zmiennych sesji to nazwa, identyfikator i preferencje. Serwer tworzy nowy obiekt Session dla każdego nowego użytkownika i niszczy obiekt Session po wygaśnięciu sesji.


Kiedy zaczyna się sesja?

Sesja rozpoczyna się, gdy:

  • Nowy użytkownik żąda pliku ASP, a plik Global.asa zawiera procedurę Session_OnStart
  • Wartość jest przechowywana w zmiennej sesji
  • Użytkownik żąda pliku ASP, a plik Global.asa używa tagu <object> do utworzenia wystąpienia obiektu o zakresie sesji

Kiedy kończy się sesja?

Sesja kończy się, jeśli użytkownik nie zażądał ani nie odświeżył strony w aplikacji przez określony czas. Domyślnie jest to 20 minut.

Jeśli chcesz ustawić interwał limitu czasu, który jest krótszy lub dłuższy niż domyślny, użyj właściwości Timeout .

Poniższy przykład ustawia interwał limitu czasu wynoszący 5 minut:

<%
Session.Timeout=5
%>

Użyj metody Abandon , aby natychmiast zakończyć sesję:

<%
Session.Abandon
%>

Uwaga: Głównym problemem z sesjami jest KIEDY powinny się kończyć. Nie wiemy, czy ostatnia prośba użytkownika była ostateczna, czy nie. Nie wiemy więc, jak długo powinniśmy utrzymać sesję „żywą”. Zbyt długie oczekiwanie na bezczynną sesję zużywa zasoby na serwerze, ale jeśli sesja zostanie usunięta zbyt wcześnie, użytkownik musi zacząć wszystko od nowa, ponieważ serwer usunął wszystkie informacje. Znalezienie odpowiedniego przedziału czasu może być trudne!

Wskazówka: w zmiennych sesji przechowuj tylko MAŁE ilości danych!



Przechowuj i pobieraj zmienne sesji

Najważniejszą rzeczą w obiekcie Session jest możliwość przechowywania w nim zmiennych.

Poniższy przykład ustawi nazwę użytkownika zmiennej sesji na „Kaczor Donald”, a wiek zmiennej sesji na „50”:

<%
Session("username")="Donald Duck"
Session("age")=50
%>

Gdy wartość jest przechowywana w zmiennej sesji, można ją uzyskać z DOWOLNEJ strony w aplikacji ASP:

Welcome <%Response.Write(Session("username"))%>

Powyższy wiersz zwraca: „Witamy Kaczora Donalda”.

Możesz również przechowywać preferencje użytkownika w obiekcie sesji, a następnie uzyskać dostęp do tych preferencji, aby wybrać stronę, która ma powrócić do użytkownika.

Poniższy przykład określa wersję strony tylko tekstową, jeśli użytkownik ma niską rozdzielczość ekranu:

<%If Session("screenres")="low" Then%>
  This is the text version of the page
<%Else%>
  This is the multimedia version of the page
<%End If%>

Usuń zmienne sesji

Kolekcja Contents zawiera wszystkie zmienne sesji.

Istnieje możliwość usunięcia zmiennej sesyjnej metodą Remove.

Poniższy przykład usuwa zmienną sesji „sale”, jeśli wartość zmiennej sesji „age” jest mniejsza niż 18:

<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>

Aby usunąć wszystkie zmienne w sesji, użyj metody RemoveAll:

<%
Session.Contents.RemoveAll()
%>

Przeglądanie kolekcji zawartości

Kolekcja Contents zawiera wszystkie zmienne sesji. Możesz przeglądać kolekcję Contents w pętli, aby zobaczyć, co jest w niej przechowywane:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
  Response.Write(i & "<br>")
Next
%>

Wynik:

username
age

Jeśli nie znasz liczby elementów w kolekcji Contents, możesz użyć właściwości Count:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br>")
Next
%>

Wynik:

Session variables: 2
Donald Duck
50

Przeprowadź pętlę przez kolekcję StaticObjects

Możesz zapętlić kolekcję StaticObjects, aby zobaczyć wartości wszystkich obiektów przechowywanych w obiekcie Session:

<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br>")
Next
%>