Asp concetti teorici

OGGETTI ASP

Adesso vediamo quali sono gli oggetti presenti nell'Active Server Page ed illustriamo in breve il loro compito.

  • Oggetto response : Questo oggetto viene utilizzato per inviare dati al browser dell'utente durante l'elaborazione di pagine Asp.
  • Oggetto request : Questo oggetto viene utilizzato per recuperare dati al browser dell'utente durante l'elaborazione di pagine Asp.
  • Oggetto application : Questo oggetto viene utilizzato per condividere dati tra le diverse applicazioni dei vari visitatori.
  • Oggetto session : Questo oggetto serve per mantenere viva una variabile in tutta la sessione di navigazione dell'utente.
  • Oggetto server : Questo oggetto serve per utilizzare e creare istanze di componenti presenti sul server.
  • Oggetto ASPError : Questo oggetto serve per una migliore ed efficace gestione degli errori che si presenteranno nel corso della creazione di script

RESPONSE

Col Response abbiamo la possibilità di inviare dati al browser dell'utente.
I metodi presenti all'interno di quest'oggetto sono i seguenti:

  • Write
  • Buffer
  • Clear
  • Flush
  • End
  • Redirect
  • Expires

Response buffer

Grazie a questo comando, è possibile controllare il buffer del processo Asp in esecuzione. Nel caso specifico della programmazione Asp, possiamo decidere se controllare o no il buffer. Se decidiamo di farlo, tutte le informazioni da mostrare a video, verranno mostrate una volta completata tutta l'elaborazione della pagina in questione. Nel caso decidessimo di non controllarlo, le informazioni inviate mano a mano che verranno elaborate.

"Il problema delle intestazioni HTTP". Questo problema si verifica quando nella pagina contenente il response.redirect sono già stata aperte le intestazioni html. Infatti se queste intestazioni vengono riaperte nella pagina di destinazione, esse provocheranno un errore. Il secondo problema è il ritorno alla pagina di partenza. Purtroppo col response.redirect non è possibile tornare indietro

Un altro errore possibile nel redirect viene a verificarsi quando la pagina di destinazione è inesistente.

Oggetto Response: Expires

Permette di sfruttare la memorizzazione della pagina asp nella cache del browser.

response.expires = tempo

Il tempo si esprime in minuti. Se il numero fosse positivo, indica la quantità di tempo che la pagina rimarrà in memoria. In caso contrario, se fosse negativo indica che la pagina deve scadere prima ancora di essere eseguita.
Per evitare problemi con il fuso-orario quando si vuole impostare la pagina perchè non venga memorizzata in cache si imposta come valore -1500

response.expires = - 1500

Questo non l'ho capito molto ….

Esiste un metodo molto simile al response.expires ed è chiamato response.expiresAbsolute. La sua struttura sintattica è:

response.expiresAbsolute = Data Tempo

Per sfruttare al meglio questo metodo è opportuno impegnare nella scadenza il dataAdd. Questo comando aggiunge o sottrae quello che si desidera(giorni, mesi, anni, ore, minuti, secondi) ad una data specificata.

La struttura sintattica del dateAdd è la seguente:

dateAdd( fascia_tempo , quanti , data_partenza )

Il valore fascia_tempo è possibile ritrovarlo nella seguente tabella:
Valore

Significato
"yyyy" Anno
"q" Trimestre
"m" Mese
"d" Giorno
"h" Ore
"n" Minuto
"s" Secondo

OGGETTO SESSION

Esempio di definizione di una var di sessione

' Attivazione di una variabile di sessione
session("nome_variabile") = valore_da_assegnare

Ogni variabile di sessione, appena creata viene a generare un numero univoco di identificazione da parte del Server. Questo numero è progressivo e serve appunto al Server per riconoscere il valore della sessione ogni volta che la utilizziamo. La sintassi per visualizzare il numero Id di una sessione è:

response.write session.sessionId

Va fatta una nota fondamentale sul numero di identificazione delle sessione. Questo numero è dipendente dal server. Se quest'ultimo venisse resettato, l'Id delle variabile di sessione ripartirebbe da zero. Quindi è vivamente sconsigliato far riferimento al sessionId quando si memorizzano dati in fonti esterne alla pagina.

Per quanto riguarda il loro periodo di sopravvivenza dall'istante dell'attivazione della variabile, ha un tempo pari a 20 minuti. E' possibile variare questo tempo con la seguente sintassi:

'Impostiamo la vita di sessione a n minuti
session.timeout = n

Col termine cancellazione, si intende lo svuotamento e quindi l'annullamento della variabile di sessione indicata. La sintassi per svolgere questo compito è la seguente:

'Cancellazione di una variabile di sessione desiderata
session("nome_variabile") = Null

Con l'abbandono, a differenza della cancellazione, si cancellano tutte quante le variabili di sessione attive nell'istante in cui il comando viene incontrato.

' Abbandono di tutte le variabili di sessione
session.abandon

Se possibile evitate di riempire le pagine di variabili di sessione in quanto appesantiscono notevolmente il carico di lavoro sul server rallentandolo di conseguenza. Infatti queste variabili lavorano completamente sul Server-Side (lato server). Se possibile, è consigliato l'utilizzo di cookies in quanto vengono creati e manipolati sul Server-Side ma memorizzati sul Client-Side.

Come ultima nota, bisogna ricordare che le variabili session si appoggiano ai cookies. Nel caso l'utente finale avesse i cookies disabilitati, il funzionamento di questa tipologia di variabili è garantita in quanto il server attiva un cookies speciale che ne consente la gestione.

OGGETTO APPLICATION

L'Application è molto più potente. Infatti la stessa variabile, purché usata come Application, consente di condividere lo stesso dato tra tutti i visitatori presenti in un dato istante di tempo.

Nella gestione delle Application è possibile a volte ottenere un conflitto per accedere alla stessa. Per evitare ciò, bisogna prima bloccare la variabile e poi ricordarsi di sbloccarla una volta terminata la modifica. Ecco un breve esempio di come effettuare una modifica alla variabile di questo tipo:

' Bloccare la variabile di tipo Application
   Application.lock
' Inserimento del valore 5 nella variabile mio_numero
   Application("mio_numero") = 5
' Sblocco della variabile di tipo Application
   Application.unlock
' Prosecuzione dello scripting di pagina Asp

Da notare una cosa

application.lock
appliation("mia_variabile")= valore_da_impostare
application.unlock

Questa variabile sarà visibile a tutti gli utenti ma ha una vita a noi non prevedibile in quantità di tempo. Infatti questa vive sino a quando abbiamo un utente collegato al nostro sito web. Quando il nostro web resta deserto (si intende senza visitatori) la nostra application muore.

OGGETTO SERVER

Questo oggetto occorre per utilizzare dei componenti messi a disposizione dal server su cui risiede il nostro sito web. Tramite il CreateObject si generano delle istanze dei componenti presenti sui Server.

Set NuovaIstanza = Server.CreateObject("classe.componente")

Questo tipo di istruzione verrà usata frequentemente quando si utilizzeranno i database per memorizzare grosse quantità di informazione ed interrogarle in modo opportuno
Set Conn=Server.CreateObject("ADODB.Connection")

Vi è un modo per controllare che lo script non impieghi più di un tot di secondi, se questo accade visualizza un messaggio di errore. Ecco un esempio che lo stopppa dopo 10.
Server.ScriptTimeout = 10
dim ctInt
ctint = 1

' il ciclo non finisce mai perchè la condizione matcha solo valori dispari e il contatore prende solo valori pari 
do while( ctInt Mod 2 <> 0 ) 
ctInt = ctInt + 2
loop

Il metodo HTMLEncode permette di visualizzare stringhe di testo esattamente come sono scritte senza incorrere nel pericolo che non vengano formattate e presentate correttamente all'utente finale.

Server.Transfer vs Response.Redirect

Il metodo Transfer è stato introdotto con ASP 3.0 e, come si intuisce dal nome, serve a trasferire il controllo ad una nuova pagina. Se torniamo indietro di qualche lezione, lo possiamo assimilare al metodo Redirect dell'oggetto Response.

La differenza tra i due però è sostanziale

  • Response.Redirect produce il caricamento di una nuova pagina, cambiando del tutto il contesto e anche l'url visualizzato nella barra indirizzi del browser
  • Server.Transfer invece trasferisce il controllo del flusso dell'applicazione alla nuova pagina ma mantenendo lo stesso contesto della richiesta precedente, questo ad esempio significa che non cambia l'url nella barra indirizzi

Oggetto ASPERROR

Il suo compito è quello di spiegare e segnalarci meglio un errore ottenuto durante l'esecuzione dello script Asp processato

….
rivedere velocemente da lez 20 a 27

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License