1. Conocimiento básico de ASP
1. ASP es la abreviatura de las páginas de servidor activo, un local de secuencias de comandos interpretado;
2. ASP requiere que el sistema operativo Windows se ejecute, y PWS debe instalarse bajo 9x;
3. Las etiquetas de script para ASP y JSP son <%%>, mientras que para PHP, puede configurarlas en múltiples tipos;
4. El símbolo de comentarios de ASP es ';
5. Use complementos para extender las funciones de ASP.
de www.knowsky.com
ejemplo:
Helloworld_1.asp
<%= Hola, Mundo%>
Efecto:
Hola Mundo
Helloworld_2.asp
<%
para i = 1 a 10
Respuesta. Escribe hola, mundo
próximo
%>
Efecto:
Hola Mundo
Hola Mundo
Hola Mundo
Hola Mundo
Hola Mundo
Hola Mundo
Hola Mundo
Hola Mundo
Hola Mundo
Hola Mundo
Nota: ASP es insensible a los casos;
2. Uso de objetos incorporados ASP:
Cualquier objeto incorporado ASP a continuación se puede usar sin tener que declararlos específicamente en el script ASP.
1. Pedido:
Definición: Este objeto se puede usar para acceder a la información de solicitud enviada desde el navegador al servidor.
colocar:
Cookies: el valor que contiene galletas del navegador
Formulario: contiene valores en campos de formulario HTML
QUERYTRING: Valor que contiene cadena de consulta
ServerVariables: contiene valores en las variables de encabezado y entorno
ejemplo:
request_url.asp
<%
'Obtenga variables de entrada y almacenamiento del usuario
user_id = request.QueryString (user_id)
user_name = request.Querystring (user_name)
'Juzga si la entrada del usuario es correcta
Si user_id = entonces
Response.write user_id es nulo, verifíquelo
respuesta.
final si
Si user_name = entonces
Response.write user_name es nulo, por favor verifíquelo
respuesta.
final si
'Variables de impresión
Response.Write user_id & <br>
Respuesta.WRITE USER_NAME
%>
Efecto:
Al acceder a http://10.1.43.238/course/request_url.asp?user_name=j:
User_id es nulo, verifíquelo
Al acceder a http://10.1.43.238/course/request_url.asp?user_name=j&user_id=my_id:
my_id
j
Pensamiento: ¿Cómo se pasan las variables en las URL y se obtienen por las páginas ASP?
request_form.htm
<estilo type = text/css>
<!-
.Input {Color de fondo: #fffff; : Georgia;
a: enlace {color: #1b629c;
A: Hover {Color: #FF6600;
A: Visited {Text-Decoration: None}
->
</style>
<centro>
<form de nombre = curso de acción = request_form.asp método = 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.submit ();> enviar </a>
</Center>
request_form.asp
<%
'Obtenga variables de entrada y almacenamiento del usuario
user_id = request.form (user_id)
user_name = request.form (user_name)
'Juzga si la entrada del usuario es correcta
Si user_id = entonces
Response.write user_id es nulo, verifíquelo
respuesta.
final si
Si user_name = entonces
Response.write user_name es nulo, por favor verifíquelo
respuesta.
final si
'Variables de impresión
Response.Write user_id & <br>
Respuesta.WRITE USER_NAME
%>
Nota: ¿Cuál es la diferencia entre la acción apuntando de formulario, request_form.asp y request_url.asp en el código fuente?
2. Respuesta:
Definición: Se usa para enviar información al navegador y use este objeto para enviar la salida desde el script al navegador.
colocar:
Cookies: Agregue una galleta a su navegador
método:
Fin: finalice el procesamiento de scripts
Redireccionar: arranca el navegador a una nueva página
Escribir: Envíe una cadena al navegador
propiedad:
Buffer: caché un ASP
Cachecontrol: el caché es controlado por el servidor proxy
ContentType: especifica el tipo de contenido de la respuesta
Expira: el navegador usa tiempo relativo para controlar el caché
ExpiresAbSolute: el navegador utiliza tiempo absoluto para controlar el caché
ejemplo:
respuesta_redirect.asp
<%
'Ve a Google y eche un vistazo
Response.Redirect http://www2.google.com
respuesta.
%>
respuesta_cookies.asp
<%
'Establecer y leer cookies
Response.cookies (Time_now) = ahora ()
Response.Write Solic.Cookies (Time_now)
%>
Efecto:
Al acceder a http://10.1.43.238/course/Response_cookies.asp:
2002-9-1 16:20:40
respuesta_buffer.asp
<%'Response.Buffer = True%>
<a href = a> a </a>
<%respuesta.Redirect request_form.htm%>
Efecto:
①. Cuando se desactiva la función de almacenamiento en búfer de IIS, se produjo un error al acceder a esta página
a
Error de objeto de respuesta 'ASP 0156: 80004005'
Encabezado mal
/course/Response_Buffer.asp, línea 3
El encabezado HTTP ha sido escrito en el navegador del cliente. Cualquier modificación de los encabezados HTTP debe ser antes de que se escriba el contenido de la página.
②. Cuando se desactiva la función de almacenamiento en búfer de IIS y se eliminan los comentarios en la primera línea del archivo, la redirección de la página es exitosa
③. Cuando se enciende la función de almacenamiento en búfer de IIS, la redirección de la página tendrá éxito independientemente de si el comentario en la primera línea del archivo se elimina o no,
3. Servidor
Definición: Se pueden usar diferentes funciones de entidad en el servidor, como controlar el tiempo de ejecución de script antes de que llegue el tiempo. También se puede usar para crear otros objetos.
método:
CreateObject: cree una instancia de objeto
Htmlencode: Convertir cadenas para usar caracteres HTML especiales
Mappath: convierte las rutas virtuales en rutas físicas
URLEncode: Convierta las cadenas en URL codificada
Scripttimeut: el número de segundos se permite que se ejecute un script antes de la terminación
ejemplo:
server_htmlencode.asp
<%
'HTML codifica
Response.write Server.htmlencode (atime_now)
%>
Efecto:
atime_now
Al ver el archivo fuente, aparece como: ATIME_NOW
Pensando: ¿Por qué no es un efecto tan grande como ATIME_NOW? ¿Qué pasa con el archivo fuente?
server_mappath.asp
<%
'Mappath
Response.Write Server.Mappath (server_mappath.asp)
%>
Efecto:
G: /asp_www/test/course/server_mapath.asp
Pensamiento: ¿Cómo obtener la ruta real al directorio raíz del sitio? ¿Cómo obtener el camino real a un directorio?
server_urlencode.asp
<%
'URL codifica
Response.write Server.urlencode (A/Time_Now)
%>
Efecto:
un%5cTime%5fnow
4. Solicitud
Definición: Se utiliza para almacenar y leer la información de la aplicación compartida por los usuarios.
método:
Bloqueo: evitar que otros usuarios accedan a conjuntos de aplicaciones
Desbloquear: permite a otros usuarios acceder al conjunto de aplicaciones
evento:
ONEND: activado terminando el servidor de red y cambiando el archivo global.ASA
OnStart: activado por la primera aplicación para una página web en la aplicación
ejemplo:
Application_counter.asp
<%
'Un contador simple hecho usando la aplicación
Application.lock
Aplicación (Clicks) = Aplicación (Clicks) +1
Aplicación
Respuesta. ¡Escribe usted es la primera y aplicación (clics) y visitante de este sitio!
Response.write <br> <br> Usted es de y request.servervariables (remota_addr)
%>
Efecto:
¡Eres el primer visitante de este sitio!
Eres del 10.1.43.238
Pensamiento: ¿Cuáles son las funciones de bloqueo y desbloqueo en este ejemplo?
5. sesión
Definición: almacenar y leer información específica de conversación del usuario, como almacenar información de acceso de usuario al sitio web, y la información se pierde después de que se reinicia el servidor.
método:
Abandonar: después de procesar la página actual, finalice una sesión de usuario
propiedad:
Tiempo de espera: duración de la sesión del usuario (minutos)
evento:
ONEND: tiempo de tiempo de espera de sesión externo, el usuario ya no se aplica a la página para activar el evento
OnStart: activado por la primera aplicación del usuario para la página web
ejemplo:
session_counter.asp
<%
'Un simple contador hecho con sesión
sesión (clics) = sesión (clics) +1
Respuesta. Visite Usted es el primer visitante de este sitio y sesión (clics) y!
Response.write <br> <br> Usted es de y request.servervariables (remota_addr)
%>
Efecto:
¡Eres el primer visitante de este sitio!
Eres del 10.1.43.238
Pensamiento: dado que tanto la sesión como la aplicación pueden contar, ¿cuál es la diferencia entre ellos? ¿Cómo comenzar a contar nuevamente si quieres superar los 100?
3. Use ASP para operar la base de datos:
1. ¿La diferencia entre conectarse a través de ODBC o OLE?
Ahora hay dos formas de conectarse a la base de datos. Por un lado, se puede generar una conexión utilizando ODBC, que es compatible con cualquier base de datos con una unidad ODBC (es decir, básicamente todas las bases de datos en el mercado);
¿Qué proveedor debo usar? Use el proveedor original de OLE DB siempre que sea posible, ya que proporciona un acceso más eficiente a los datos. Microsoft está reemplazando gradualmente el estándar ODBC con OLE DB y solo debe usar ODBC sin el proveedor original de OLE DB.
⑴. Conéctese al servidor SQL usando ODBC:
①. Configurar ODBC
②. Código de conexión:
conn_odbc.asp
<%
Establecer conn = server.createObject (ADODB.Connection)
'Conn.open dsn = curso_dsn; uid = curso_user; pwd = curso_password; base de datos = curso
Conn.open curso_dsn, curso_user, curso_password
%>
Nota: Al configurar Mydsn, si la base de datos predeterminada se especifica como curso, el código anterior será el mismo de lo contrario, el método de conexión de la segunda línea es más flexible. La premisa es que Course_User tiene permisos operativos en esta base de datos).
⑵. Conectarse al servidor SQL usando OLE:
conn_ole.asp
<%
Establecer conn = server.createObject (ADODB.Connection)
Conn.open Provider = SQLoledB; Data Source = 10.1.43.238,2433;
%>
2. Base de datos de operación: conexión y conjunto de registros
Use Connection y RecordSet para operar la base de datos, o use Connection solo para operar la base de datos.
ejemplo:
⑴. Use la conexión y el conjunto de registros para operar la base de datos juntas
use_db_1.asp
<%
Establecer conn = server.createObject (ADODB.Connection) 'Cree un objeto que se conecte a la base de datos
conn.open curso_dsn, curso_user, curso_password 'Use este objeto para conectarse a la base de datos
Establecer rs = server.createObject (ADODB.RecordSet) 'Crear objeto de registro
rs.open select * de User_info, Conn, 1,1 'Abrir base de datos utilizando el objeto establecido
Si Rs.RecordCount> 0, entonces, si hay un registro
Response.write user_iduser_name <br>
para i = 1 a rs.RecordCount 'bucle para leer todos los registros
Response.Write RS (id) && RS (user_name) & <br>
'Campos de registro de salida al navegador
Rs.Movenext 'Pointer mueve una línea hacia abajo
Si rs.EOF, salga por el bucle si se alcanza la parte inferior del conjunto de registros
próximo
final si
%>
Efecto:
User_iduser_name
1ahyi
3tre
⑵. Solo use la conexión para operar la base de datos:
use_db_2.asp
<%
Establecer conn = server.createObject (ADODB.Connection) 'Cree un objeto que se conecte a la base de datos
conn.open curso_dsn, curso_user, curso_password 'Use este objeto para conectarse a la base de datos
Conn.execute Eliminar de User_Info
%>
Efecto:
Todos los datos en la tabla user_info se eliminan
Pensar: ¿Hay alguna diferencia entre los dos métodos? ¿En qué ocasiones se usan?
3. ¿Cómo usar transacciones, procedimientos almacenados y vistas?
⑴. Uso de procedimientos almacenados
①. Definir procedimientos almacenados
Crear procedimiento [output_1]
@sid int salida
COMO
establecer @sid = 2
Crear procedimiento [return_1]
(@user_name varchar (40),@contraseña varchar (20))
COMO
Si existe (seleccione ID de User_info donde user_name =@user_name y contraseña =@contraseña)
Devolver 1
demás
regresar 0
Crear procedimiento [user_info_1]
(@user_name varchar (40),@contraseña varchar (20))
COMO
Seleccione ID de user_info donde user_name =@user_name y contraseña =@contraseña
Crear procedimiento [user_info_2]
(@user_name varchar (40),@contraseña varchar (20))
COMO
Establecer xact_abort en
Comenzar la transacción
Eliminar de user_info donde user_name =@user_name y contraseña =@contraseña
Transacción de compromiso
Establecer xact_abort
Crear procedimiento [user_info_3] como
Seleccionar * de user_info
②. Llamado en ASP
use_proc.asp
<!-#include virtual =/Adovbs.inc->
<%
Establecer conn = server.createObject (ADODB.Connection)
conn.open curso_dsn, curso_user, curso_password
'Llame a los procedimientos almacenados con dos parámetros de entrada y retrocedir el conjunto de registros utilizando Registro
'Crear procedimiento [user_info_1]
'(@user_name varchar (40),@contraseña varchar (20))
'COMO
'Seleccione ID de user_info donde user_name =@user_name y contraseña =@contraseña
Respuesta. Escribe el método de llamadas normales: <br>
establecer rs = server.createObject (ADODB.RecordSet)
sql = user_info_1 '& request.queryString (user_name) &', '& request.querystring (contraseña) y'
Rs.open SQL, Conn, 1,1
Response.Write RS (ID) y <br>
rs.
'Use el conjunto de registros para llamar a los procedimientos almacenados sin parámetros de entrada, return RecordSet, puede usar Registro y otros atributos
'Crear procedimiento [user_info_3] como
'Seleccionar * de user_info
Response.write <br> Devuelve el conjunto de registros, puede usar Registro y otras propiedades:
SQL = EXEC USER_INFO_3
Rs.open SQL, Conn, 1,1
para i = 1 a Rs.RecordCount
Response.write <br> & rs (user_name)
Rs.Movenext
próximo
rs.
establecer RS = nada
'Use el comando para llamar a los procedimientos almacenados con parámetros de salida
'Crear procedimiento [output_1]
'@sid int salida
'COMO
'set @sid = 2
Response.write <br> <br> Llamando a los procedimientos almacenados con parámetros de salida: <br>
Establecer 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)
Respuesta.WRITE BBB & <br>
Establecer CMD = nada
'Use el comando para llamar a los procedimientos almacenados con dos parámetros de entrada y el valor de retorno
'Crear procedimiento [return_1]
'(@user_name varchar (40))
'COMO
'Si existe (seleccione ID de USER_INFO donde user_name =@user_name)
'Regreso 1
'demás
'Regreso 0
Response.Write <br> Llamando a un procedimiento almacenado con dos parámetros de entrada y valor de retorno: <br>
Establecer 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 (@contraseña, advertar, adparaminput, 20)
cmd (@user_name) = tuth
cmd (@password) = yyuyu
cmd.execute ()
rrr = cmd (@return_value)
Respuesta. Escribe RRR
Establecer CMD = nada
Conn.clar
establecer conn = nada
%>
Efecto:
Al visitar http://10.1.43.238/course/use_proc.asp?user_name=ahyi&password=tt, aparece lo siguiente
Método de llamadas normales:
12
Volver al conjunto de registros, puede usar Registro y otras propiedades:
ahyi
tet
tuth
Llame a los procedimientos almacenados con parámetros de salida:
2
Llame a un procedimiento almacenado con dos parámetros de entrada y valor de retorno:
1
Nota: Si no hay parámetros en el procedimiento almacenado, la instrucción SQL llamada es directamente el nombre del procedimiento almacenado, y un parámetro es el parámetro de nombre del procedimiento almacenado. ., Parámetro n; .
⑵. Utilice el procesamiento de transacciones
①. Soporte de transacciones incrustadas ASP
ejemplo:
use_transaction_1.asp
<%
'Uso de transacciones en ASP
Establecer conn = server.createObject (ADODB.Connection)
conn.open curso_dsn, curso_user, curso_password
Conn.Begintrans.
SQL = Eliminar de User_Info
establecer rs = server.createObject (ADODB.RecordSet)
Rs.open SQL, Conn, 3,3
Si conn.errors.count> 0 entonces hay un error
Conn.RollbackTrans 'Rollback
establecer RS = nada
Conn.clar
establecer conn = nada
Respuesta. ¡La transacción de escritura falló y regresó al estado antes de la modificación!
respuesta.
demás
Conn.Committrans 'Commit Transaction
establecer RS = nada
Conn.clar
establecer conn = nada
Respuesta. ¡Escribe la transacción fue exitosa!
respuesta.
final si
%>
②. Transacciones a nivel de base de datos
i. Crear procedimientos almacenados
Crear procedimiento [user_info_2]
(@user_name varchar (40),@contraseña varchar (20))
COMO
Establecer xact_abort en
Comenzar la transacción
Eliminar de user_info donde user_name =@user_name y contraseña =@contraseña
Transacción de compromiso
Establecer xact_abort
II. Llamado en ASP
use_transaction_2.asp
<%
Establecer conn = server.createObject (ADODB.Connection)
conn.open curso_dsn, curso_user, curso_password
sql = user_info_2 '& request.queryString (user_name) &', '& request.queryString (contraseña) y'
establecer rs = server.createObject (ADODB.RecordSet)
Rs.open SQL, Conn, 1,1
establecer RS = nada
Conn.clar
establecer conn = nada
%>
Discusión: ¿Las ventajas y desventajas de los dos métodos?
⑶. Uso de la vista
Después de definir la vista en la base de datos, use la vista en ASP como si usara una tabla
4. Un ejemplo de una bolsa de datos
db_page.asp
<%
En el currículum de error siguiente
Establecer conn = server.createObject (ADODB.Connection) 'Cree un objeto que se conecte a la base de datos
conn.open curso_dsn, curso_user, curso_password 'Use este objeto para conectarse a la base de datos
establecer rs = server.createObject (ADODB.RecordSet)
SQL = SELECCIONAR * DEL ORDER USER_INFO por ID DESC
Rs.open SQL, Conn, 1,1
Si Rs.RecordCount> 0, entonces, si hay un registro
rs.pagesize = 2'A se muestran el máximo de 2 registros por página
'Obtenga la página que se muestre desde la URL
página = cint (solicitud (página))
'Manejo de excepciones de parámetros de página
si página = entonces página = 1
if página <1 entonces página = 1
if página> = rs.pageCount entonces página = rs.pageCount
Rs.AbsolutePage = Page'The Page actual es la página especificada por el parámetro de la página
para i = 1 a rs.pagesize'cicla los registros en la página actual de acuerdo con el tamaño del parámetro de páginas
Response.write user_id: & rs (ID) & <br>
Response.write user_name: & rs (user_name) & <br> <br>
Rs.Movenext 'Record Pointer se mueve hacia abajo
Si rs.EOF, salga por el bucle si se alcanza la parte inferior del conjunto de registros
próximo
final si
'Mostrar el botón de giro de la página
Si la página> 1 entonces
Response.write <a href = & request.ServerVariAbles (document_name) &? Page = 1> Página 1 </a>
Response.write <a href = & request.ServerVariAbles (document_name) &? Page = & (Page-1) &> Página anterior </a>
final si
if página <> rs.pageCount entonces
Response.write <a href = & request.ServerVariAnbles (document_name) &? Page = & (página+1) y> página siguiente </a>
Response.write <a href = & request.ServerVariAnbles (document_name) &? Page = & rs.pageCount &> Última página </a>
final si
Respuesta. Número de página de escritura: y página y/rs.pagecount
'Cierre el objeto y suelte la memoria
rs.
establecer RS = nada
Conn.clar
establecer conn = nada
%>
Pensamiento: ¿Qué atributos adicionales se usan durante el proceso de paginación?