AASP est une application développée par Microsoft pour remplacer les programmes de script CGI. Il peut interagir avec les bases de données et autres programmes. Ici, l'éditeur lui donnera quelques discussions simples. Le contenu suivant parle principalement des principes essentiels du code d'écriture ASP.
1. Déclarer les variables VBScript
Dans ASP, VBScript reçoit un support solide et peut intégrer de manière transparente les fonctions et méthodes VBScript, ce qui offre une grande commodité pour l'extension des fonctions existantes d'ASP. Étant donné que le concept de types de variables a été floue dans ASP, de nombreux programmeurs sont habitués à ne pas déclarer les variables VBScript pendant l'interaction entre ASP et VBScript, ce qui augmente la charge d'analyse du serveur et affecte ainsi la vitesse de demande de réponse du serveur.
Compte tenu de cela, nous pouvons forcer l'utilisateur à effectuer des déclarations variables dans VBScript comme nous obligeons l'utilisateur à effectuer des déclarations variables dans VB. La méthode d'implémentation consiste à placer <% l'option explicite%> au début de la ligne du programme ASP.
2. Encoder l'adresse URL
Lorsque nous utilisons ASP pour générer dynamiquement une adresse URL avec des paramètres et sauter, il est normal de analyser dans IE, mais lors de la navigation sur le netscrapes, il y a des erreurs comme suit:
Erreur HTTP 400 400 Bad Request En raison de la syntaxe mal formée, la demande n'a pas pu être comprise par le serveur. Le client ne doit pas répéter la demande sans modifications.
La solution consiste à utiliser la méthode URLencode de l'objet de serveur intégré ASP pour coder URL les paramètres URL générés. L'exemple est le suivant:
<% Url = "xur.asp" var1 = "username =" & server.urlencode ("xur") var2 = "& company =" & server.urlencode ("xurstudio") var3 = "& phone =" & server.urlencode ("021-53854336-186") Response.redirect url "?"? " & var1 & var2 & var3%>3. Effacer l'objet
Après avoir utilisé l'objet, utilisez d'abord la méthode Close pour libérer les ressources système occupées par l'objet; Définissez ensuite la valeur de l'objet sur "rien" pour libérer la mémoire de l'objet. À l'époque, j'ai écrasé mon IIS en créant plus de 100 ensembles d'enregistrements sur une page sans objets clairs. Le code suivant utilise le contenu de la base de données pour créer une liste déroulante. L'exemple de code est le suivant:
<% mydSn = "dsn = xur; uid = xur; pwd = xur" mysql = "select * from Auteurs où aU_id <100" set contempt = server.createObject ("adodb.connection") ConnTemp.open Mydsn set rstemp = ConnTemp.execute (mysql) if rtest Response.Write mysql ConnTemp.close Set ConnTemp = Nothing Response.end end If%> <% faire jusqu'à RSTEMP.EOF%> <% rstemp.movènex LOOP rstemp.close set rstemp = rien connTemp.close set ConnTemp = Nothing%>4. Créer une requête SQL à l'aide de chaînes
L'utilisation de chaînes pour établir des requêtes n'accélère pas la vitesse d'analyse du serveur. Au contraire, il augmentera également le temps d'analyse du serveur. Mais il est toujours recommandé d'utiliser des chaînes au lieu de instructions de requête simples à la question. L'avantage de cela est qu'il peut rapidement découvrir le problème du programme, facilitant ainsi et générant efficacement le programme. Les exemples sont les suivants:
<% mysql = "" select * "mysql = mysql &" from editshers "mysql = mysql &" where state = 'ny' "Response.write mysql set rstemp = contemptemp.execute (mysql) rstemp.close set rstemp = rien%%>
5. Cas d'utilisation pour sélectionner la condition
Lorsque vous effectuez une sélection conditionnelle, essayez d'utiliser les instructions de cas et évitez d'utiliser les instructions IF. L'utilisation d'instructions de cas peut rendre le programme fluide et exécuter plus rapidement que les instructions IF. Les exemples sont les suivants:
<% Pour i = 1 à 1000 n = i réponse.Write AddSuffix (n) & "<br>" Next %> <% Fonction AddSuffix (num) numpart = right (num, 1) case nuchart case "1" if instlin (num, "11") alors num = num & "th" else num = num & "st" fini if "2" if instlin (num, "12") alors Fin si le cas "3" si instr (num, "13") alors num = num & "th" else num = num & "rd" end if case "4" num = num & "th" case else num = num & "th" fin sélectionner addSuffix = num fin function%>
6. Utiliser les constantes définies dans le fichier Adovbs.inc pour ouvrir l'ensemble d'enregistrements
Lors de l'ouverture d'un ensemble d'enregistrements, vous pouvez définir le type de curseur et le type de verrouillage que le jeu d'enregistrements s'ouvre.
Certaines constantes sont définies dans le fichier ADOVBS.INC pour définir ces types. Le fichier ADOVBS.INC est enregistré dans le répertoire / IneTpub / IISSamples / iisamples. Vous trouverez ci-dessous quelques types de curseur couramment utilisés et types de verrouillage.
Type de curseur:
Type de verrouillage:
<! - # inclue virtual = "/ Adovbs.inc" -> <% connectMe = "dsn = xur; uid = xur; pwd = xur" sqlTemp = "select * from Publishers Where name = 'xur'" set rstemp = server.createObject ("adodb.recordSet") Adlockoptimstic Response.Write rstemp.recordCount & "enregistre dans <br>" & sqlTemp rstemp.close set rstemp = rien%>7. Évitez la définition d'objet dans le fichier global.asa
Étant donné que le contenu dans le fichier global.asa peut être référencé par tous les fichiers du site, sans aucun doute, la définition d'objets dans le fichier global.asa peut enregistrer beaucoup de duplication.
Par exemple, dans la fonction application_onstart dans global.asa, la définition suivante est faite:
<% Sub Application_onstart Set Application ("theConn") = server.createObject ("adodb.connection") end sous%>;Cela vous permet de faire des références similaires dans n'importe quel code sur le site:
<% mysql = "select * dans les éditeurs où state = 'xur' set rstemp = application (" theConn "). Execute (mysql)%>De même, l'objet d'enregistrement d'enregistrement peut être créé dans la fonction session_onstart
<% Sub session_onstart set session ("rstemp") = server.createObject ("adodb.recordSet") end sous%>Ensuite, les citations suivantes sont faites sur le site:
<% mysql = "SELECT * FROM Publishers Where State = 'xur' set Session (" RSTEMP ") = ConnTemp.Execute (MySQL)%>Cependant, cela a également un grand impact négatif. Étant donné que les variables d'application et de session ne libèrent que les ressources occupées lors de la fermeture du site Web, les paramètres de session gaspilleront beaucoup de mémoire inutile et, à l'heure actuelle, la variable d'application devient un goulot d'étranglement des performances du serveur.
Solution:
Créez une page ASP pour définir des objets et introduisez cette page ASP sur la page où ces objets doivent être appelés. En supposant que le nom de la page ASP de l'objet défini est défini.asp, la page peut être introduite en ajoutant l'instruction suivante à la page ASP correspondante.
<! - # Inclure virtual = "/ define.asp" ->
Lors de l'introduction de pages, il est préférable de ne pas inclure <% @ linguisétique = "VBScript"%> dans le fichier ASP à introduire. Parce que dans le fichier ASP, il ne peut y avoir qu'une seule langue d'analyse de script définie par @.
8. Protection de la sécurité
ASP fournit un bon mécanisme de protection de code, et tout le code ASP est exécuté du côté du serveur et renvoie uniquement le résultat de l'exécution du code client. Même ainsi, dans l'ancienne version d'IIS, vous pouvez afficher le code source d'ASP après le nom de fichier :: $ Data, qui relève déjà du champ de la sécurité du serveur Web et n'est pas dans le cadre de cet article. Voici deux précautions de sécurité simples.
Bien qu'il soit recommandé d'introduire des fichiers avec Inc ASP comme extension, il est toujours recommandé d'utiliser ASP comme extension pour introduire des fichiers ici. Lorsque ces codes s'exécutent sur un serveur Web avec un mécanisme de sécurité médiocre, vous pouvez parcourir le contenu du fichier importé en entrant simplement la barre d'adresse (Inc est l'extension). En effet, sur le serveur Web, si une bibliothèque de connexion dynamique qui résout un certain type (tel que Inc) n'est pas définie, le fichier s'affiche dans le code source.
Ne mettez pas le fichier de base de données dans la structure du site Web, de sorte que lorsqu'une personne malveillante obtient le chemin de la base de données, il peut facilement obtenir la base de données puis modifier le contenu de la base de données arbitrairement. Une meilleure approche consiste à établir un DSN (nom de la source de date) pour la base de données et à accéder directement au DSN lors de l'accès à la base de données.
Grâce à cet article, avez-vous une compréhension de l'encodage ASP? J'espère que cela peut vous aider.