Om sessions, application och cookies
Förord
Här kommer en liten genomgång för sessions, application, cookies, request och response objektet som används frekvent i ASP. Denna artikel är avsedd för nybörjare.Innehåll
»»
»
»
»
»
Sessions
Detta objekt hanterar information för varje individuell användare. Ett sessionsobjekt skapas när användaren inte tidigare har haft åtkomst till en sida. Objektet lever så länge den inte gör timeout eller är avbruten (abend). Om du tänker dig att du hade använt en fri mailtjänst såsom yahoo eller någon annan provider så kommer din mailadress finnas överst i inboxen så länge som du befinner dig på yahoo's domännamn. När du sedan loggar ut så stängs sessionen av och därmed tas informationen bort. Hela denna processen är väldigt enkel och görs genom att en nyckel innehållande ett sessionsid som lagras på din dator samt att samma variabel finns på servern. Detta exempel ger dig förståelse i hur det kan användas:
<%
session("permission") = "yes"
session("username") = "Pelle Johansson"
%>
Vi skapar ett sessionsobjekt med namnet permission och tilldelar värdet "yes". Nu kan detta användas på alla sidor för denna domänen och enkelt refereras med följande exempel:
Välkommen <%session("username")%> till denna hemsida
För att frigöra ett sessionsobjekt kan du skriva session.abandon och det innebär att hela sessionen avbryts. Om du skriver session("username") = "" får kanske samma funktion men då finns alla sessionsobjekt fortfarande kvar i minnet på arbetsstation och server.
Application
Du kan använda application objektet för att dela information mellan flera användare till skillnad från sessionsobjektet som är personligt mellan användare och webbserver. Du kan exempelvis använda detta objekt för att räkna antalet personer som finns på din hemsida och det objektet kan användas, ändras och manipuleras av alla användare. För att undvika problem då alla kan ändra värdet i detta objekt så används en .Lock funktion som gör att det inte blir något fel vid uppdateringen.Här är ett exempel som visar en mycket enkel besöksräknare. Värdet ökas för varje gång en sida laddas och kommer att minskas då du stänger av datorn eller webbläsaren.
<%
application.lock
application("counts") = application("counts") +1
application.unlock
%>
Denna sida har visats <%= application("counts") %> gånger.
Request
När du klickar på en knapp på en form så ber du servern att hämta något. Request objektet används på samma sätt och det kan vara för att uppdatera en databas med information skrivet i en textruta eller kanske hämta ett värde från url-strängen. Genom att skriva antingen Request.Form eller Request.QueryString så bestämmer du vilket av alternativen det gäller.Här ser du ett exempel hur man lägger till ett namn i databasen från en form där textrutans namn är "name". Här förutsätts att du först öppnat anslutning och recordset till databasen.
<%
rs("name") = request.form("name")
rs.Update
%>
Response
När du hämtat någon information från servern så får du information tillbaks. Detta görs via response-objektet. Med detta objekt skriver DU värden eller utför någonting till skillnad från Request objektet som hämtar information.Response kan även användas för att skicka vidare användaren till en helt annan sida och det gör man genom att skriva:
<%
If login = True Then
Response.Redirect "loginok.asp"
Else
Response.Redirect "failed.asp"
End If
%>
Du använder även Response objektet oftast genom att skriva ut information på skärmen med kommandot Response.Write "Hejsan", eller 'Ditt namn är <%Response.Write "Pelle"%>.
Cookies
Som du vet så kan man lagra information lokalt på en användares dator. Detta kallas cookies och används främst för att hjälpa användaren med exempelvis inloggningsnamn när användaren återvänder till en speciell sida. Denna funktion fungerar inte om användaren tagit bort alla cookies på sin dator lokalt eller formaterat om hårddisken - det är en fysisk fil som kan läsas. Filen lagras i katalogen c:\windows\cookies. Fölkande exempel skriver en cookie:<%Response.Cookies("test") = "Nu är den skriven"%>
och för att läsa den skriver du:
<%Request.Cookies("test")%>
Här måste du tänka på att när du skriver en cookies på detta sätt så dör den så fort du stänger ditt fönster i webbläsaren. För att se till att din cookies skall leva längre så måste du sätta en tidsangivelse på den:
<%
Response.Cookies("test") = "Nu är den skriven"
Response.Cookies("test").Expires = dateAdd("d", 365, now)
%>
Ovan säger vi också åt din cookies med namnet test att inte upphöra förrän 365 dagar med början idag. Nu tar vi ett exempel som skriver och läser en cookies där du via en textruta ändrar värdet:
<%
If request("content_length") <> 0 then
Response.Cookies("data") = request("cookie")
End If
%>
Utforskar cookies
Aktuellt värde i cookie är: <%= Request.Cookies("data") %>
%>
Avslutningsvis
Nu har vi ytligt gått igenom hur dessa objekt kan användas på ett enkelt sätt. Om du vill läsa mer om varje specifikt objekt så kan du läsa om detta i de specifika artiklarna som du ser på samlingssidan för de kurser som finns i ASP. För att kunna göra kursen bättre så tar jag tacksamt emot era röster. Fler röster ger mig en förståelse för om denna artikeln är bra eller dålig så att jag vet om det behövs skrivas tydligare. Maila mig gärna om ni har frågor rörande denna artikel.
/Pelle Johansson
0 Kommentarer