1. Connaissance de base de l'ASP
1 et 1 ASP est l'abréviation de pages de serveurs actifs, un paramètre de script interprété;
2 ASP nécessite que le système d'exploitation Windows s'exécute et PWS doit être installé sous 9x;
3 et 3 Les balises de script pour ASP et JSP sont <%%>, tandis que pour PHP, vous pouvez les définir sur plusieurs types;
4 Le symbole de commentaire d'ASP est ';
5. Utilisez des modules complémentaires pour étendre les fonctions d'ASP.
de www.knowsky.com
exemple:
Helloworld_1.asp
<% = Bonjour, World%>
Effet:
Bonjour le monde
Helloworld_2.asp
<%
pour i = 1 à 10
Response.Write Bonjour, Monde
suivant
%>
Effet:
Bonjour le monde
Bonjour le monde
Bonjour le monde
Bonjour le monde
Bonjour le monde
Bonjour le monde
Bonjour le monde
Bonjour le monde
Bonjour le monde
Bonjour le monde
Remarque: ASP est insensible à la casse;
2. Utilisation d'objets intégrés ASP:
Tous les objets intégrés ASP ci-dessous peuvent être utilisés sans avoir à les déclarer spécifiquement dans le script ASP.
1 et 1 Demande:
Définition: Cet objet peut être utilisé pour accéder aux informations de demande envoyées par le navigateur au serveur.
ensemble:
Cookies: la valeur contenant des cookies du navigateur
Formulaire: contient des valeurs dans les champs de formulaire HTML
QueryString: valeur contenant la chaîne de requête
ServerVariables: contient des valeurs dans les variables d'en-tête et d'environnement
exemple:
request_url.asp
<%
'Obtenez les entrées des utilisateurs et stockez des variables
user_id = request.querystring (user_id)
user_name = request.querystring (user_name)
'Juger si l'entrée de l'utilisateur est correcte
Si user_id = alors
réponse.write user_id est nul, veuillez le vérifier
réponse.
terminer si
Si user_name = alors
réponse.write user_name est nul, veuillez le vérifier
réponse.
terminer si
'Variables d'impression
réponse.write user_id & <br>
réponse.write user_name
%>
Effet:
Lorsque vous accédez à http://10.1.43.238/course/request_url.asp?user_name=j:
User_id est nul, veuillez le vérifier
Lorsque vous accédez à http://10.1.43.238/course/request_url.asp?user_name=j&user_id=my_id:
my_id
J
Pensée: Comment les variables sont-elles passées dans les URL et obtenues par les pages ASP?
request_form.htm
<style type = text / css>
<! -
.Input {Colorant en arrière-plan: #FFFFF; : Géorgie; taille de police: 9pt; couleur: MidnightBlue;}
A: lien {Couleur: # 1B629C;
A: Hover {Couleur: # FF6600;
A: Visité {text-décoration: Aucun}
->
</ style>
<Nenter>
<form name = cours action = request_form.asp méthode = post>
User_id: <input type = text name = user_id maxLength = 20 class = input> <br> <br>
User_name: <input type = text name = user_name maxLength = 30 class = input>
</ form>
<br> <br>
<a href = javascript: document.course.sumit ();> soumettre </a>
</ Center>
request_form.asp
<%
'Obtenez les entrées des utilisateurs et stockez des variables
user_id = request.form (user_id)
user_name = request.form (user_name)
'Juger si l'entrée de l'utilisateur est correcte
Si user_id = alors
réponse.write user_id est nul, veuillez le vérifier
réponse.
terminer si
Si user_name = alors
réponse.write user_name est nul, veuillez le vérifier
réponse.
terminer si
'Variables d'impression
réponse.write user_id & <br>
réponse.write user_name
%>
Remarque: Quelle est la différence entre le pointage d'action du formulaire, request_form.asp et request_url.asp dans le code source?
2 Réponse:
Définition: Utilisé pour renvoyer des informations au navigateur et utiliser cet objet pour envoyer la sortie du script au navigateur.
ensemble:
Cookies: Ajoutez un cookie à votre navigateur
méthode:
Fin: terminer le traitement du script
Redirection: démarrez le navigateur vers une nouvelle page
Écrivez: Envoyez une chaîne au navigateur
propriété:
Tampon: cache un ASP
CacheControl: Le cache est contrôlé par le serveur proxy
ContentType: spécifie le type de contenu de la réponse
Expire: le navigateur utilise du temps relatif pour contrôler le cache
ExpiresAbsolute: le navigateur utilise du temps absolu pour contrôler le cache
exemple:
réponse_redirect.asp
<%
Allez sur Google et jetez un œil
réponse.redirect http://www2.google.com
réponse.
%>
réponse_cookies.asp
<%
'Définir et lire les cookies
réponse.cookies (time_now) = maintenant ()
réponse.write request.cookies (time_now)
%>
Effet:
Lorsque vous accédez à http://10.1.43.238/course/response_cookies.asp:
2002-9-1 16:20:40
réponse_buffer.asp
<% 'réponse.buffer = true%>
<a href = a> a </a>
<% réponse.redirect request_form.htm%>
Effet:
①. Lorsque la fonction tampon d'IIS est désactivée, une erreur s'est produite lors de l'accès à cette page
un
Répondre Erreur d'objet 'Asp 0156: 80004005'
En tête mal
/course/response_buffer.asp, ligne 3
L'en-tête HTTP a été écrit au navigateur client. Toute modification des en-têtes HTTP doit être avant l'écriture du contenu de la page.
②. Lorsque la fonction tampon d'IIS est désactivée et que les commentaires sur la première ligne du fichier sont supprimés, la redirection de la page est réussie
③. Lorsque la fonction tampon d'IIS est activée, la redirection de la page sera réussie, que le commentaire sur la première ligne du fichier soit supprimé ou non,
3 et 3 Serveur
Définition: différentes fonctions d'entité peuvent être utilisées sur le serveur, comme le contrôle du temps d'exécution du script avant l'arrivée du temps. Peut également être utilisé pour créer d'autres objets.
méthode:
CreateObject: créer une instance d'objet
Htmlencode: convertir les chaînes pour utiliser des caractères HTML spéciaux
Mappath: convertir les chemins virtuels en chemins physiques
Urlencode: convertir les chaînes en URL
ScriptTimeout: le nombre de secondes un script est autorisé à exécuter avant la terminaison
exemple:
server_htmlencode.asp
<%
'Html Encode
réponse.write server.htmlencode (atime_now)
%>
Effet:
atime_now
Lors de l'affichage du fichier source, il apparaît comme: Atime_Now
Penser: Pourquoi n'est-ce pas un effet tel que Atime_Now? Quel est le problème avec le fichier source?
server_mappath.asp
<%
'Mappath
réponse.write server.mappath (server_mappath.asp)
%>
Effet:
G: /asp_www/test/course/server_mapath.asp
Penser: comment obtenir le chemin réel vers le répertoire racine du site? Comment obtenir le chemin réel vers un répertoire?
server_urlencode.asp
<%
'Encode d'URL
réponse.write server.urlencode (a / time_now)
%>
Effet:
un% 5Ctime% 5fnow
4 Application
Définition: Utilisé pour stocker et lire les informations d'application partagées par les utilisateurs.
méthode:
Verrouillage: empêcher les autres utilisateurs d'accéder aux ensembles d'applications
Déverrouiller: permet aux autres utilisateurs d'accéder à l'ensemble d'applications
événement:
Onend: déclenché en terminant le serveur réseau et en modifiant le fichier global.asa
Sur le start: déclenché par la première application pour une page Web dans l'application
exemple:
application_counter.asp
<%
'Un compteur simple fait à l'aide de l'application
Application.lock
Application (clics) = application (clics) +1
Application.unlock
Response.Write Vous êtes le premier et l'application (clics) et le visiteur de ce site!
réponse.write <br> <br> Vous êtes de & request.servervariables (Remote_addr)
%>
Effet:
Vous êtes le premier visiteur de ce site!
Vous êtes à partir de 10.1.43.238
Pensée: Quelles sont les fonctions de verrouillage et de déverrouillage dans cet exemple?
5 session
Définition: stocker et lire des informations spécifiques de conversation utilisateur, telles que le stockage des informations d'accès aux utilisateurs au site Web, et les informations sont perdues après le redémarrage du serveur.
méthode:
Abandon: Après le traitement de la page actuelle, terminez une session utilisateur
propriété:
Timeout: Durée de la session utilisateur (minutes)
événement:
Onend: temps de temps mort de session extérieure, l'utilisateur ne demande plus la page pour déclencher l'événement
Sur le start: déclenché par la première application de l'utilisateur pour la page Web
exemple:
session_counter.asp
<%
'Un compteur simple fait à l'aide de la session
Session (clics) = session (clics) +1
Response.Write Vous êtes le premier visiteur de ce site et session (clics) &!
réponse.write <br> <br> Vous êtes de & request.servervariables (Remote_addr)
%>
Effet:
Vous êtes le premier visiteur de ce site!
Vous êtes à partir de 10.1.43.238
Pensée: puisque la session et l'application peuvent compter, quelle est la différence entre eux? Comment recommencer à compter si vous voulez en obtenir plus de 100?
3. Utilisez ASP pour faire fonctionner la base de données:
1 et 1 La différence entre la connexion via ODBC ou OLE?
Il existe maintenant deux façons de se connecter à la base de données. D'une part, une connexion peut être générée à l'aide d'ODBC, qui est compatible avec n'importe quelle base de données avec un lecteur ODBC (c'est-à-dire essentiellement toutes les bases de données du marché);
Quel fournisseur dois-je utiliser? Utilisez le fournisseur OLE DB d'origine chaque fois que possible, car il offre un accès plus efficace aux données. Microsoft remplace progressivement la norme ODBC par OLE DB et ne devrait utiliser ODBC que sans le fournisseur OLE DB d'origine.
⑴. Connectez-vous à SQL Server à l'aide d'ODBC:
①. Configurer ODBC
②. Code de connexion:
Conn_odbc.asp
<%
Définir Conn = Server.CreateObject (ADODB.Connection)
'Conn.open dsn = cours_dsn; uid = cours_user; pwd = cours_password; database = cours
Conn.open Course_dsn, Course_User, Course_Password
%>
Remarque: Lors de la configuration de MyDSN, si la base de données par défaut est spécifiée comme cours, le code ci-dessus sera le même. La prémisse est que Course_User a des autorisations opérationnelles sur cette base de données).
⑵. Connectez-vous à SQL Server à l'aide d'Ole:
Conn_ole.asp
<%
Définir Conn = Server.CreateObject (ADODB.Connection)
Conn.Open Provider = SqloledB; Data Source = 10.1.43.238,2433;
%>
2 Base de données de l'opération: connexion et ensemble de dossiers
Utilisez la connexion et le jeu d'enregistrements pour utiliser la base de données ou utilisez la connexion uniquement pour faire fonctionner la base de données.
exemple:
⑴. Utiliser la connexion et le coffre-fort pour faire fonctionner la base de données ensemble
use_db_1.asp
<%
Définir Conn = Server.CreateObject (Adodb.Connection) 'Créez un objet se connectant à la base de données
Conn.open Course_dsn, Course_User, Course_Password 'Utilisez cet objet pour se connecter à la base de données
Set rs = server.createObject (adodb.recordSet) 'Créer un objet RecordSet
Rs.Open SELECT * FROM USER_INFO, Conn, 1,1 'Open Database Utilisation de l'objet d'enregistrement d'enregistrement
Si Rs.RecordCount> 0 alors'f il y a un enregistrement
réponse.write user_iduser_name <br>
pour i = 1 à Rs.RecordCount 'Loop pour lire tous les enregistrements
réponse.write rs (id) && rs (user_name) & <br>
'Sortie des champs d'enregistrement au navigateur
Rs.MoVenext 'Pointer déplace une ligne vers le bas
Si Rs.Eof, puis sortez pour la boucle si le bas du jeu d'enregistrements est atteint
suivant
terminer si
%>
Effet:
User_iduser_name
1ahyi
3test
⑵. Utilisez uniquement la connexion pour faire fonctionner la base de données:
use_db_2.asp
<%
Définir Conn = Server.CreateObject (Adodb.Connection) 'Créez un objet se connectant à la base de données
Conn.open Course_dsn, Course_User, Course_Password 'Utilisez cet objet pour se connecter à la base de données
Conn.execcute Supprimer de user_info
%>
Effet:
Toutes les données du tableau User_info sont supprimées
Pensée: y a-t-il des différences entre les deux méthodes? Dans quelles occasions sont-elles utilisées?
3 et 3 Comment utiliser les transactions, les procédures stockées et les vues?
⑴. Utilisation des procédures stockées
①. Définir les procédures stockées
Créer une procédure [Output_1]
@Sid int sorput
COMME
set @ sid = 2
Créer une procédure [return_1]
(@user_name varchar (40), @ mot de passe varchar (20))
COMME
Si existe (sélectionnez ID dans user_info où user_name = @ user_name et mot de passe = @ mot de passe)
retour 1
autre
retour 0
Créer une procédure [user_info_1]
(@user_name varchar (40), @ mot de passe varchar (20))
COMME
Sélectionnez ID dans user_info où user_name = @ user_name et mot de passe = @ mot de passe
Créer une procédure [user_info_2]
(@user_name varchar (40), @ mot de passe varchar (20))
COMME
Définir XACT_ABORT ON
Commencer la transaction
Supprimer de user_info où user_name = @ user_name et mot de passe = @ mot de passe
Engager une transaction
Définir XACT_ABORT
Créer une procédure [user_info_3] comme
Sélectionner * dans user_info
②. Appelé Asp
use_proc.asp
<! - #include virtual = / adovbs.inc ->
<%
Définir Conn = Server.CreateObject (ADODB.Connection)
Conn.open Course_dsn, Course_User, Course_Password
'Appelez les procédures stockées avec deux paramètres d'entrée et le jeu d'enregistrements de retour à l'aide de l'enregistrement
'Créer une procédure [user_info_1]
'(@user_name varchar (40), @ mot de passe varchar (20))
'COMME
'Sélectionnez ID dans user_info où user_name = @ user_name et mot de passe = @ mot de passe
Response.Write Méthode d'appel normal: <br>
set rs = server.createObject (adodb.recordSet)
sql = user_info_1 '& request.querystring (user_name) &', '& request.Querystring (mot de passe) &'
Rs.Open SQL, Conn, 1,1
Response.Write RS (ID) & <br>
Rs.Close
«Utilisez un ensemble de records pour appeler les procédures stockées sans paramètres d'entrée, Retour RecordSet, vous pouvez utiliser RecordCount et d'autres attributs
'Créer une procédure [user_info_3] comme
'Sélectionner * dans user_info
Response.Write <br> Renvoie l'ensemble d'enregistrements, vous pouvez utiliser RecordCount et d'autres propriétés:
sql = exec user_info_3
Rs.Open SQL, Conn, 1,1
pour i = 1 à Rs.recordCount
réponse.write <br> & rs (user_name)
Rs.MovEnext
suivant
Rs.Close
Définir RS = rien
«Utilisez la commande pour appeler les procédures stockées avec des paramètres de sortie
'Créer une procédure [Output_1]
'@Sid Int Sortie
'COMME
'set @ sid = 2
Response.Write <br> <br> Appel des procédures stockées avec des paramètres de sortie: <br>
Définir cmd = server.createObject (adodb.command)
cmd.activeConnection = Conn
cmd.commandText = output_1
CMD.Parameters.APPEND CMD.CreateParameter (@ SID, ADInteger, AdParamoutput)
cmd (@sid) = 10
cmd.execute ()
bbb = cmd (@sid)
Response.Write BBB & <br>
Définir CMD = rien
«Utilisez la commande pour appeler les procédures stockées avec deux paramètres d'entrée et la valeur de retour
'Créer une procédure [return_1]
'(@user_name varchar (40))
'COMME
'Si existe (sélectionnez ID dans User_info où user_name = @ user_name)
'retour 1
'autre
'Retour 0
Response.Write <br> Appel d'une procédure stockée avec deux paramètres d'entrée et une valeur de retour: <br>
Définir cmd = server.createObject (adodb.command)
cmd.activeConnection = Conn
cmd.commandType = adcmdstoredProc
cmd.commandText = return_1
CMD.Parameters.APPEND CMD.CreateParameter (@ return_value, AdInteger, AdParaMreturnValue)
cmd.parameters.append cmd.createParameter (@ user_name, advarchar, adparaminput, 40)
CMD.Parameters.APPEND CMD.CreateParameter (@ Password, Advarchar, AdParaminput, 20)
cmd (@user_name) = Tuth
cmd (@password) = yyuyu
cmd.execute ()
rrr = cmd (@return_value)
réponse.WRITE RRR
Définir CMD = rien
Conn.Close
Définir Conn = Rien
%>
Effet:
Lors de la visite de http://10.1.43.238/course/use_proc.asp?user_name=ahyi&password=tt, ce qui suit apparaît
Méthode d'appel normale:
12
Retour à l'ensemble d'enregistrements, vous pouvez utiliser RecordCount et d'autres propriétés:
ahyi
Tet
bouchée
Appelez les procédures stockées avec des paramètres de sortie:
2
Appelez une procédure stockée avec deux paramètres d'entrée et la valeur de retour:
1
Remarque: s'il n'y a pas de paramètres dans la procédure stockée, l'instruction SQL appelée est directement le nom de la procédure stockée, et un paramètre est le paramètre de nom de procédure stocké. ., paramètre n; Si dans Add Exec à l'instruction SQL, vous pouvez utiliser des propriétés telles que RecordCount dans le jeu d'enregistrements renvoyé; .
⑵. Utiliser le traitement des transactions
①. Prise en charge de la transaction intégrée ASP
exemple:
use_transaction_1.asp
<%
'Utilisation de transactions dans ASP
Définir Conn = Server.CreateObject (ADODB.Connection)
Conn.open Course_dsn, Course_User, Course_Password
Conn.Begintrans est à la fin de la transaction
sql = supprimer de user_info
set rs = server.createObject (adodb.recordSet)
Rs.Open SQL, Conn, 3,3
Si Conn.errors.Count> 0 alors il y a une erreur
rollback de Conn.rollbacktrans
Définir RS = rien
Conn.Close
Définir Conn = Rien
Réponse.WRITE La transaction a échoué et a été renvoyé à l'état avant la modification!
réponse.
autre
Conn.committrans de la transaction
Définir RS = rien
Conn.Close
Définir Conn = Rien
Response.Write La transaction a réussi!
réponse.
terminer si
%>
②. Transactions au niveau de la base de données
je. Créer des procédures stockées
Créer une procédure [user_info_2]
(@user_name varchar (40), @ mot de passe varchar (20))
COMME
Définir XACT_ABORT ON
Commencer la transaction
Supprimer de user_info où user_name = @ user_name et mot de passe = @ mot de passe
Engager une transaction
Définir XACT_ABORT
ii Appelé Asp
use_transaction_2.asp
<%
Définir Conn = Server.CreateObject (ADODB.Connection)
Conn.open Course_dsn, Course_User, Course_Password
sql = user_info_2 '& request.querystring (user_name) &', '& request.Querystring (mot de passe) &'
set rs = server.createObject (adodb.recordSet)
Rs.Open SQL, Conn, 1,1
Définir RS = rien
Conn.Close
Définir Conn = Rien
%>
Discussion: les avantages et les inconvénients des deux méthodes?
⑶. Utilisation de la vue
Après avoir défini la vue dans la base de données, utilisez la vue dans ASP comme si vous utilisez un tableau
4 Un exemple de pagination de base de données
db_page.asp
<%
sur l'erreur reprendre ensuite
Définir Conn = Server.CreateObject (Adodb.Connection) 'Créez un objet se connectant à la base de données
Conn.open Course_dsn, Course_User, Course_Password 'Utilisez cet objet pour se connecter à la base de données
set rs = server.createObject (adodb.recordSet)
SQL = SELECT * FROM User_Info Order by ID DESC
Rs.Open SQL, Conn, 1,1
Si Rs.RecordCount> 0 alors'f il y a un enregistrement
Rs.PageSize = 2'a maximum de 2 enregistrements sont affichés par page
'Affichez la page à partir de l'URL
page = Cint (demande (page))
'Gestion des exceptions du paramètre de page
Si page = alors page = 1
Si page <1 alors page = 1
Si page> = Rs.PageCount alors page = Rs.PageCount
Rs.AbsoluTepage = Page 'La page actuelle est la page spécifiée par le paramètre de la page
pour i = 1 à Rs.PageSize'cycle les enregistrements dans la page actuelle en fonction de la taille du paramètre PageSize
réponse.write user_id: & rs (id) & <br>
réponse.write user_name: & rs (user_name) & <br> <br>
Rs.MovEnext 'Pointer baisse
Si Rs.Eof, puis sortez pour la boucle si le bas du jeu d'enregistrements est atteint
suivant
terminer si
'Afficher le bouton de virage de la page
Si page> 1 alors
réponse.write <a href = & request.servervariables (document_name) &? page = 1> page 1 </a>
réponse.write <a href = & request.servervariables (document_name) &? page = & (page-1) &> page précédente </a>
terminer si
Si page <> Rs.PageCount alors
réponse.Write <a href = & request.servervariables (document_name) &? page = & (page + 1) &> page suivante </a>
Response.Write <a href = & request.servervariables (document_name) &? page = & rs.pageCount &> dernière page </a>
terminer si
Numéro de page Response.Write: & Page & & & Rs.PageCount
'Fermez l'objet et relâchez la mémoire
Rs.Close
Définir RS = rien
Conn.Close
Définir Conn = Rien
%>
Pensée: Quels attributs supplémentaires sont utilisés pendant le processus de pagination?