IT-Academy Logo
Sign Up Login Help
Home - Programmieren - ASP - Die @-Direktive



Die @-Direktive

Am Anfang einer jeden ASP-Seite kann man @-Direktiven einsetzen, die den Internet Information Server (IIS) anweisen wie eine ASP-Seite zu verarbeiten ist und somit mögliche Fehler umgehen. Aus diesem Grund möchte ich mit diesem Artikel auf die genau Verwendung dieser Direktive eingehen.


Autor: Peter Becker (Floyd)
Datum: 06-02-2004, 16:11:32
Referenzen: aspheute.com - Artikel: 20000405
Schwierigkeit: Fortgeschrittene
Ansichten: 3229x
Rating: 6.67 (3x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Die @-Direktive

@-Direktiven kommen überall dort zum Einsatz wo man dem Internet Information Server (IIS) Anweisungen über die Verarbeitung einer ASP-Seite geben möchte. Sie können zum Beispiel angeben in welcher Sprache - ob Visual Basic Script oder JScript - die Befehle der ASP-Seite geschrieben sind.

Standardmäßig ist auf dem IIS die Sprache Visual Basic Script eingestellt was jedoch für jede Web Site oder jedes Verzeichnis eines IIS einzeln eingestellt werden.

Zu beachten ist das die @-Direktive immer nur an der ersten Stelle einer ASP-Seite stehen kann.

Ein Beispiel:

<% @LANGUAGE=VBScript %>
<%

Dim objRS, objConn
…,


Die fünf @-Direktiven des IIS 5.0

@CODEPAGECodeseite festlegen
@ENABLESESSIONSTATEVerfolgen von User Sessions
@LANGUAGESkriptsprache (VBScript, JScript) einstellen
@LCIDGebietsschema ID vorgeben
@TRANSACTIONSkript als Transaktion behandeln


Das @CODEPAGE-Statement

Mittels der @Codepage-Direktive kann man festlegen, welcher Zeichensatz verwendet werden soll.

Hierfür stehen die folgenden Zeichensätze unter Windows zur Verfügung:

ZeichensatzCOEPAGEZeichensatzCOEPAGE
Arabisch1256Japanisch932
Baltisch1257Koreanisch949
Chinesisch950Osteuropäisch1250
Cyrillisch1251Türkisch1254
Griechisch1253Unicode1200
Hebräisch1255USA (ANSI)1252


Das @ENABLESESSIONSTATE-Statement

Die @EnableSessionState-Anweisung erlaubt es, die einzustellen, ob User-Sessions ("Sitzungen") verfolgt werden oder nicht, zu ändern und somit die Ausführung der ASP-Seite beschleunigt, was insbesondere bei großen Websites eine wichtige Rolle spielt.

Technisch wird diese Geschwindigkeitsgewinn dadurch bewirkt. dass wenn die Sessionverfolgung ausgeschaltet ist, der IIS den Session Cookie des Browsers weder ausliest, noch setzt.

Sie sollten diese Einstellung jedoch nur dann auf FALSE setzten wenn Sie sich sicher sind, das Sie keine Session-Cookies innerhalb Ihrer ASP-Seite benutzen.

Ein Beispiel:

<% @ENABLESESSIONSTATE = False %>


Das @LANGUAGE-Statement

Die @Language-Anweisung erlaubt es Einzustellen über welchen Interpreten die ASP-Seite intern geleitet werden soll. Dieses ist notwendig um die Befehle die innerhalb der ASP-Seite verwendet werden auch zu verarbeiten.
Standardmäßig werden alle Seiten über den VBScript interpreten geschickt welcher die VBScript-Befehle in Maschinensprache "übersetzt".
Außerdem unterstützt der IIS standardmäßig auch JScript wobei hier zu beachten ist das JScript nicht JavaScript ist sondern JavaScript im Sinne vom Tomkat.
Der Funktionsumfang des IIS in dieser Hinsicht kann, mittels Plugins, für jede gängige Programmiersprache, von PHP über C bis hin zu Brainfuck, erweitert werden.

Ein Beispiel:

<% @LANGUAGE = VBScript %>


Das LCID-Statement

LCID steht für Local Identifier ID und legt das Gebietsschema fest, welches in der ASP-Seite verwendet werden soll.
Gebietsschema wiederrum legt fest, welche Trennzeichen (Punkt oder Beistrich) als Komma bei Zahlenwerten verwendet wird, oder in welcher Reihenfolge bei einem Datum Tag, Monat und Jahr angegeben werden.
Um das deutsche Gebietsschema zu verwenden muss man lediglich die LCID-Eigenschaft auf 1013 stellen.

Das sieht dann so aus:

<% @LCID = 1013 %>


Ab sofort werden alle Datumsangaben, Währungen, Zahlen ec. im deutschen gängigen Format angegeben.

Dieses Statement ist vorallem für solche Fälle wichtig in denen man zum Beispiel die Webapplikation auf einem deutschen IIS Entwickelt, jedoch die fertige Seite bei einem englischsprachigen Provider wie (Brinkster oder DataReturn) hostet.
Die Auswirkungen einen fehlenden LCID-Statements würden dann wie folgt aussehen:

Der Rückgabewert der Funktion Now(): 2/4/04 15:45 PM
Der Rückgabewert der Funktion Round(3.123456,5): 3.12345


Und mit gesetzten LCID-Statement:

Der Rückgabewert der Funktion Now(): 04.02.04 17:45
Der Rückgabewert der Funktion Round(3.123456,5): 3,12345


Daher ist es empfehlenswert auf jeden Seite das LCID-Statement zu setzten um nicht in Konflikt mit der voreingestellten LCID des Servers zu kommen.

Nachfolgend noch eine Liste andere eurpoäischer Gebietsschemen:

SchemaLCIDSchemaLCID
Dänisch1030Griechisch1032
Deutsch1031Italienisch1040
Englisch (AUS)3081Niederländisch1043
Englisch (UK)2057Portugisisch2070
Englisch (USA)1033Schwedisch1053
Finnisch1035Spanisch1034
Französisch1036


Das @TRANSACTION-Statement

Diese @-Direktive wird verwendet um ein Skript vom IIS als Transaktion behandeln zu lassen. Um alle Objektaufrufe in einer ASP-Seite in einer Transaktion laufen zu lassen, greift der Webserver auf den Microsoft Transaction Server (MTS) zurück, der die Transaktion verwaltet.
Die @Transaction Direktive kann auf folgende Werte gesetzt werden: Required, Requires_New, Supported, Not_Supported. Für nähere Erläuterungen zur @Transaction Direktive, Transaktionen und dem MTS sehen sie in der MSDN, Platform SDK oder der IIS (und PWS)-Dokumentation nach.


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06245
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1150
Comments: 0