|
ASP: la guida introduttiva
Capitolo 8 - l'oggetto built-in Server
8.0 Proprietà e
metodi di Server
8.1 Il metodo Server.CreateObject
8.2 Il
metodo Server.HTMLEncode
8.3 Il metodo Server.MapPath
8.4 Il metodo
Server.URLEncode
8.5 La proprietà
Server.ScriptTimeout
8.0 - Proprietà e metodi di Server
L'oggetto built-in Server, il terzo oggetto di questo tipo
presentato nel corso della guida, si occupa di fornire il
controllo di certi metodi e proprietà del server, alcuni dei
quali davvero utili nella realizzazione di un'applicazione ASP.
L'interfaccia dell'oggetto built-in Server è costituita da
quattro metodi ed una proprietà.
|
Metodi |
|
|
|
|
CreateObject |
Genera un'istanza di una componente del server |
|
HTMLEncode |
Applica le regole della codifica HTML ad una stringa |
|
MapPath |
Trasforma un percorso relativo nel corrispondente percorso
assoluto |
|
URLEncode |
Applica le regole della codifica URL ad una stringa |
|
|
|
|
Proprietà |
|
|
|
|
ScriptTimeout |
Specifica in secondi la durata massima di esecuzione dello
script |
|
|
|
8.1 - Il metodo Server.CreateObject
Il
metodo CreateObject(progID) genera
un'istanza della componente installata sul server identificata
tramite la stringa progID. Per certi
versi l'uso di questo metodo può risultare equivalente al
costruttore della classe ActiveXObject, fornita nativamente da
JScript. Negli esempi incontrati sinora, infatti, ogni oggetto
ActiveX è stato istanziato mediante la sintassi
var riferimentoOggetto = new ActiveXObject(idOggetto);
E'
dunque possibile fare altrettanto attraverso la sintassi
var riferimentoOggetto = Server.CreateObject(idOggetto);
Ad
esempio si potrebbe istanziare
Scripting.FileSystemObject alla seguente maniera:
var fso = Server.CreateObject("Scripting.FileSystemObject");
Gli
oggetti istanziati in questa maniera godono di quello che è
generalmente definito il "page scope", ovvero restano in vita
tanto quanto dura il processo di interpretazione e di esecuzione
della pagina che li dichiara, al termine del quale vengono
distrutti. ASP, comunque, permette anche di istanziare anche
oggetti con scope differenti, ad esempio con un ciclo di vita
equivalente alla durata della sessione di un utente, oppure
della durata dell'intera applicazione. Si tornerà su questo
argomento nei capitoli a venire, quando saranno presi in esami i
due rimanenti oggetti built-in: Session
e Application.
Molte componenti vengono distribuite insieme al Web Server
stesso, per questo alcune di esse sono considerate standard e
praticamente parte integrante di ASP.
|
I componenti più diffusi per ASP |
|
|
|
|
MSWC.AdRotator |
Oggetto utilizzato per la gestione automatica dei banner in
rotazione sulle pagine Web |
|
MSWC.BrowserType |
Oggetto in grado di fornire allo script delle informazioni
sul browser del client |
|
Scripting.FileSystemObject |
Oggetto che fornisce accesso al file system |
|
ADODB.Connection |
Sfruttatissimo oggetto che fornisce accesso ai database |
|
MSWC.NextLink |
Oggetto utilizzato per indicizzare diversi URL e gestirli
come si trattasse di un libro |
|
MSWC.Tools |
Oggetto che raccoglie alcune funzioni di piccola utilità |
|
MSWC.Counters |
Oggetto utilizzato per gestire dei contatori di accesso |
|
|
|
Prima di far ricorso ad una qualsiasi componente esterna,
comunque, è sempre bene verificare che essa sia installata
all'interno del Web Server che dovrà ospitare il lavoro una
volta completato.
8.2 - Il metodo Server.HTMLEncode
Il
metodo HTMLEncode(stringa) applica ad
una stringa la codifica HTML. Si tratta di un metodo che può
tornare utile in certe occasioni, ad esempio quando si vogliono
disabilitare dei marcatori HTML. Il comando
Response.Write(Server.HTMLEncode("<b>grassetto</b>"));
restituisce un output come il seguente
<b>grassetto</b>
I
due tag così convertiti non vengono più riconosciuti tali dal
parser del browser, eppure < e
> vengono mostrati a video
esattamente come i caratteri di minore e maggiore.
8.3 - Il metodo Server.MapPath
Il
metodo MapPath(stringa), che già è
stato presentato al lettore nel corso dei capitoli precedenti,
si occupa del desumere un percorso assoluto per un file o una
cartella a partire dal suo percorso relativo. Poichè molte
componenti necessitano di percorsi assoluti per interagire con
il file system il ruolo ricoperto dal metodo Server.MapPath è di
vitale importanza, e permette sostanzialmente la creazione di
applicazioni indipendenti dall'organizzazione delle cartelle del
server che le ospita. Tanto per portare un esempio, se la root
del server fosse c:\inetpub\wwwroot il
codice
Response.Write(Server.MapPath("file.txt"));
se
incluso in un documento ASP posto esattamente in tale cartella
produrrebbe l'output
c:\inetpub\wwwroot\file.txt
8.4 - Il metodo Server.URLEncode
Il
metodo URLEncode(stringa), applica ad
una stringa le regole della codifica utilizzata nella
formulazione degli URL. Sostanzialmente questa stessa funzione è
già offerta nativamente da JScript, tramite il comando
escape(). JScript, inoltre, è in grado
di effettuare anche la codifica inversa, attraverso l'uso di
unescape(). Il codice
Response.Write("cerca.asp?words=" + Server.URLEncode(risorse per
il webmaster));
fornirebbe l'output
cerca.asp?words=risorse%20per%20il%20webmaster
8.5 - La proprietà Server.ScriptTimeout
Il
valore dell'intero ScriptTimeout può
essere modificato per determinare il tempo di esecuzione massimo
concesso ad uno script. Può infatti capitare che, per svariati
fattori, una pagina impegni troppo a lungo il server, senza
riuscire a completare la propria esecuzione. Per questo esiste
un "tetto massimo" di secondi concesso ad uno script entro il
quale tutti i compiti devono essere ultimati. Superato questo
limite l'interpretazione della pagina viene bloccata e al client
viene restituito un errore. Il valore di default di questa
proprietà è settato solitamente a 90 secondi. E' possibile
quindi modificare tale arco di tempo in base alle proprie
necessità, soprattutto per prolungarlo quando di sa a priori che
la pagina che si sta realizzando necessiterà di un tempo
superiore al limite imposto. La modifica è semplice:
Server.ScriptTimeout = 120;
Questo esempio porta il tempo massimo di esecuzione a due minuti
(120 secondi) per la pagina corrente. |