1. Conhecimento básico de ASP
1. ASP é a abreviação de páginas de servidor ativo, um local de script interpretado;
2. O ASP exige que o sistema operacional do Windows seja executado e o PWS precisa ser instalado em 9x;
3. As tags de script para ASP e JSP são <%%>, enquanto para PHP, você pode defini -las para vários tipos;
4. O símbolo de comentário da ASP é ';
5. Use complementos para estender as funções do ASP.
de www.knowsky.com
exemplo:
Helloworld_1.asp
<%= Olá, mundo%>
Efeito:
Olá, mundo
Helloworld_2.asp
<%
para i = 1 a 10
Response.Write Hello, World
próximo
%>
Efeito:
Olá, mundo
Olá, mundo
Olá, mundo
Olá, mundo
Olá, mundo
Olá, mundo
Olá, mundo
Olá, mundo
Olá, mundo
Olá, mundo
Nota: Asp são insensíveis ao caso;
2. Uso de objetos internos do ASP:
Quaisquer objetos internos do ASP abaixo podem ser usados sem precisar declará-los especificamente no script ASP.
1. Solicitar:
Definição: Este objeto pode ser usado para acessar as informações de solicitação enviadas do navegador para o servidor.
definir:
Cookies: o valor que contém biscoitos do navegador
Formulário: contém valores em campos de forma HTML
Consulta: valor contendo string de consulta
ServerVariables: contém valores nas variáveis de cabeçalho e ambiente
exemplo:
request_url.asp
<%
'Obtenha entrada do usuário e armazenar variáveis
user_id = request.QueryString (user_id)
user_name = request.querystring (user_name)
'Julgue se a entrada do usuário está correta
se user_id = então
Response.write user_id é nulo, verifique
resposta.END
final se
se user_name = então
Response.write user_name é nulo, verifique
resposta.END
final se
'Variáveis de impressão
Response.Write user_id & <br>
Response.Write user_name
%>
Efeito:
Ao acessar http://10.1.43.238/course/request_url.asp?user_name=j:
User_id é nulo, verifique
Ao acessar http://10.1.43.238/course/request_url.asp?user_name=j&user_id=my_id:
my_id
j
Pensando: Como as variáveis são passadas nos URLs e obtidas por páginas ASP?
request_form.htm
<tipo de estilo = texto/css>
<!-
.Input {Background-Color: #FFFFF; : Georgia;
A: Link {Color: #1B629C;
A: Hover {color: #ff6600;
A: Visitado {decoração de texto: nenhum}
->
</style>
<Center>
<nome de forma = ação do curso = request_form.asp método = post>
User_id: <tipo de entrada = nome do texto = user_id maxlength = 20 class = input> <br> <br>
User_name: <tipo de entrada = nome do texto = user_name maxlength = 30 class = entrada>>
</morm>
<br> <br>
<a href = javascript: document.course.submit ();> envie </a>
</central>
request_form.asp
<%
'Obtenha entrada do usuário e armazenar variáveis
user_id = request.form (user_id)
user_name = request.form (user_name)
'Julgue se a entrada do usuário está correta
se user_id = então
Response.write user_id é nulo, verifique
resposta.END
final se
se user_name = então
Response.write user_name é nulo, verifique
resposta.END
final se
'Variáveis de impressão
Response.Write user_id & <br>
Response.Write user_name
%>
Nota: Qual é a diferença entre a ação apontando do formulário, request_form.asp e request_url.asp no código -fonte?
2. Resposta:
Definição: Usado para enviar informações de volta ao navegador e usar esse objeto para enviar a saída do script para o navegador.
definir:
Cookies: adicione um biscoito ao seu navegador
método:
Fim: encerre o processamento do script
Redirecionar: inicialize o navegador para uma nova página
Escreva: Envie uma string para o navegador
propriedade:
Buffer: cache e ASP
CacheControl: o cache é controlado pelo servidor proxy
ContentType: especifica o tipo de conteúdo da resposta
Expira: o navegador usa tempo relativo para controlar o cache
ExpiresABSolute: O navegador usa tempo absoluto para controlar o cache
exemplo:
Response_redirect.asp
<%
'Vá ao Google e dê uma olhada
Response.Redirect http://www2.google.com
resposta.END
%>
Response_cookies.asp
<%
'Defina e leia cookies
Response.cookies (time_now) = agora ()
Response.write request.cookies (time_now)
%>
Efeito:
Ao acessar http://10.1.43.238/course/response_cookies.asp:
2002-9-1 16:20:40
Response_buffer.asp
<%'Respons.Buffer = True%>
<a href = a> a </a>
<%Response.Redirect request_form.htm%>
Efeito:
①. Quando a função de buffer do IIS é desativada, ocorreu um erro ao acessar esta página
um
Responder Erro do objeto 'ASP 0156: 80004005'
Cabeçalho errado
/course/Response_buffer.asp, linha 3
O cabeçalho HTTP foi gravado no navegador do cliente. Qualquer modificação dos cabeçalhos HTTP deve estar antes que o conteúdo da página seja gravado.
②. Quando a função de buffer do IIS é desligada e os comentários na primeira linha do arquivo são removidos, o redirecionamento da página é bem -sucedido
③. Quando a função de buffer do IIS estiver ligada, o redirecionamento de páginas será bem -sucedido, independentemente de o comentário que a primeira linha do arquivo seja removido ou não,
3. Servidor
Definição: Diferentes funções de entidade podem ser usadas no servidor, como o controle do tempo da execução do script antes da chegada do tempo. Também pode ser usado para criar outros objetos.
método:
CreateObject: Crie uma instância de objeto
Htmlencode: converter strings para usar caracteres HTML especiais
Mappath: converter caminhos virtuais em caminhos físicos
Urlencode: converter strings em URL codificado
ScriptTimeout: o número de segundos um script pode ser executado antes do término
exemplo:
Server_htmlencode.asp
<%
'Encode html
Response.Write Server.htmlencode (ATIME_NOW)
%>
Efeito:
atime_now
Ao visualizar o arquivo de origem, ele aparece como: ATIME_NOW
Pensando: por que não é um efeito como ATIME_now? O que há de errado com o arquivo de origem?
server_mappath.asp
<%
'Mappath
Response.write server.mappath (server_mappath.asp)
%>
Efeito:
G: /asp_www/test/course/server_mapath.asp
Pensando: como obter o caminho real para o diretório raiz do site? Como obter o caminho real para um diretório?
Server_urlencode.asp
<%
'URL Encode
Response.Write Server.urlencode (a/time_now)
%>
Efeito:
a%5ctime%5fnow
4. Aplicativo
Definição: Usado para armazenar e ler as informações do aplicativo compartilhadas pelos usuários.
método:
Bloqueio: impedir que outros usuários acessem conjuntos de aplicativos
Desbloqueio: permite que outros usuários acessem o conjunto de aplicativos
evento:
ONEND: acionado ao encerrar o servidor de rede e alterar o arquivo global.asa
OnStart: acionado pelo primeiro aplicativo para uma página da web no aplicativo
exemplo:
Application_Counter.asp
<%
'Um contador simples feito usando aplicação
Application.lock
Aplicativo (cliques) = Aplicativo (cliques) +1
Application.unlock
Response.Write Você é o primeiro e o aplicativo (cliques) e o visitante deste site!
Response.write <br> <br> Você é de & request.servervariables (remote_addr)
%>
Efeito:
Você é o primeiro visitante deste site!
Você é de 10.1.43.238
Pensando: Quais são as funções de bloqueio e desbloqueio neste exemplo?
5. sessão
Definição: Armazene e leia informações específicas sobre conversas do usuário, como armazenar informações de acesso ao usuário no site, e as informações são perdidas após o reinício do servidor.
método:
Abandono: Após o processamento da página atual, encerre uma sessão de usuário
propriedade:
Tempo limite: duração da sessão do usuário (minutos)
evento:
ONEND: tempo de tempo limite da sessão externa, o usuário não se aplica mais à página para acionar o evento
OnStart: acionado pelo primeiro aplicativo do usuário para a página da web
exemplo:
session_counter.asp
<%
'Um contador simples feito usando sessão
sessão (cliques) = sessão (cliques) +1
Response.Write Você é o primeiro visitante deste site e sessão (cliques) &!
Response.write <br> <br> Você é de & request.servervariables (remote_addr)
%>
Efeito:
Você é o primeiro visitante deste site!
Você é de 10.1.43.238
Pensando: Como a sessão e a aplicação podem contar, qual é a diferença entre eles? Como começar a contar novamente se você quiser obter mais de 100?
3. Use ASP para operar o banco de dados:
1. A diferença entre conectar -se através do ODBC ou OLE?
Agora existem duas maneiras de se conectar ao banco de dados. Por um lado, uma conexão pode ser gerada usando ODBC, que é compatível com qualquer banco de dados com uma unidade ODBC (ou seja, basicamente todos os bancos de dados no mercado);
Qual provedor devo usar? Use o provedor OLE DB original sempre que possível, pois fornece acesso mais eficiente aos dados. A Microsoft está substituindo gradualmente o padrão ODBC pelo OLE DB e deve usar apenas ODBC sem o provedor OLE DB original.
⑴. Conecte -se ao SQL Server usando ODBC:
①. Configure ODBC
②. Código de conexão:
conn_odbc.asp
<%
Definir Conn = Server.CreateObject (Adodb.Connection)
'Conn.open dsn = curso_dsn; uid = curso_user; pwd = curso_password; database = curso
Conn.Open CURSO_DSN, CUSTION_USER, CUSTION_PASSWORD
%>
Nota: Ao configurar o MyDSN, se o banco de dados padrão for especificado como curso, o código acima será o mesmo. A premissa é que o curso_user possui permissões operacionais neste banco de dados).
⑵. Conecte -se ao SQL Server usando OLE:
conn_ole.asp
<%
Definir Conn = Server.CreateObject (Adodb.Connection)
Conn.Open provedor = sqloledb; fonte de dados = 10.1.43.238.2433;
%>
2. Banco de dados de operação: conexão e conjunto de registros
Use o Connection and RecordSet para operar o banco de dados ou use a conexão apenas para operar o banco de dados.
exemplo:
⑴. Use a conexão e o RecordSet para operar o banco de dados juntos
use_db_1.asp
<%
Definir Conn = Server.CreateObject (Adodb.Connection) 'Crie um objeto conectado ao banco de dados
Conn.Open Course_DSN, curso_user, curso_password 'Use este objeto para se conectar ao banco de dados
Definir rs = server.createObject (adodb.recordset) 'Create RecordSet Object
Rs.Open Select * From User_info, Conn, 1,1 'Open Banco de Dados Usando o Objeto Definir Record Set
Se Rs.RecordCount> 0, se houver um registro
Response.Write user_iduser_name <br>
Para i = 1 a Rs.RecordCount 'Loop para ler todos os registros
Response.write rs (id) && rs (user_name) & <br>
'Campos de registro de saída para o navegador
O ponteiro de Rs.movenext move uma linha para baixo
Se rs.eof, então saia para a exposição do loop se a parte inferior do conjunto de registros for alcançada
próximo
final se
%>
Efeito:
User_iduser_name
1ahyi
3TEST
⑵. Use apenas a conexão para operar o banco de dados:
use_db_2.asp
<%
Definir Conn = Server.CreateObject (Adodb.Connection) 'Crie um objeto conectado ao banco de dados
Conn.Open Course_DSN, curso_user, curso_password 'Use este objeto para se conectar ao banco de dados
Conn.Execute Excluir de User_info
%>
Efeito:
Todos os dados na tabela user_info são excluídos
Pensando: existem diferenças entre os dois métodos? Em que ocasiões eles são usados?
3. Como usar transações, procedimentos armazenados e vistas?
⑴. Usando procedimentos armazenados
①. Definir procedimentos armazenados
Criar procedimento [output_1]
@sid int Output
COMO
set @sid = 2
Criar procedimento [return_1]
(@User_Name Varchar (40),@senha varchar (20))
COMO
Se existe (selecione ID de user_info onde user_name =@user_name e senha =@senha)
retornar 1
outro
retornar 0
Criar procedimento [user_info_1]
(@User_Name Varchar (40),@senha varchar (20))
COMO
Selecione ID de user_info onde user_name =@user_name e senha =@senha
Criar procedimento [user_info_2]
(@User_Name Varchar (40),@senha varchar (20))
COMO
Defina xact_abort ativado
Comece a transação
Exclua de user_info onde user_name =@user_name e senha =@senha
Cometer transação
Defina xact_abort off
Criar procedimento [user_info_3] como
Selecione * de user_info
②. Chamado em asp
use_proc.asp
<!-#include virtual =/Adovbs.inc->
<%
Definir Conn = Server.CreateObject (Adodb.Connection)
Conn.Open CURSO_DSN, CUSTION_USER, CUSTION_PASSWORD
'Chamada Procedimentos armazenados com dois parâmetros de entrada e conjunto de registros de retorno usando o RecordSet
'Crie procedimento [user_info_1]
'(@User_Name Varchar (40),@senha varchar (20))
'COMO
'Selecione ID de user_info onde user_name =@user_name e senha =@senha
Response.Write Normal Calling Method: <br>
set rs = server.createObject (adodb.recordset)
sql = user_info_1 '& request.querystring (user_name) &', '& request.querystring (senha) &'
Rs.Open SQL, Conn, 1,1
Response.Write RS (ID) & <br>
rs.close
'Use o RecordSet para chamar procedimentos armazenados sem parâmetros de entrada, retorno recordset, você pode usar o RecordCount e outros atributos
'Crie procedimento [user_info_3] como
'Selecione * de user_info
Response.write <br> Retorna o conjunto de registros, você pode usar o RecordCount e outras propriedades:
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.close
Defina rs = nada
'Use o comando para chamar procedimentos armazenados com parâmetros de saída
'Crie procedimento [output_1]
'@sid int Output
'COMO
'set @sid = 2
Response.write <br> <br> Chamando procedimentos armazenados com parâmetros de saída: <br>
set 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>
Defina CMD = nada
'Use o comando para chamar procedimentos armazenados com dois parâmetros de entrada e valor de retorno
'Criar procedimento [return_1]
'(@User_Name Varchar (40))
'COMO
'Se existe (selecione ID de user_info onde user_name =@user_name)
'Retornar 1
'outro
'Retornar 0
Response.Write <br> Chamando um procedimento armazenado com dois parâmetros de entrada e valor de retorno: <br>
set 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, Adverchar, adparaminput, 40)
cmd.parameters.append cmd.createParameter (@senha, avô, adparaminput, 20)
cmd (@User_Name) = Tuth
cmd (@password) = yyuyu
cmd.execute ()
rrr = cmd (@return_value)
Response.Write RRR
Defina CMD = nada
Conn.Close
Definir conn = nada
%>
Efeito:
Ao visitar http://10.1.43.238/course/use_proc.asp?user_name=ahyi&password=tt, o seguinte aparece
Método de chamada normal:
12
Voltar ao conjunto de registros, você pode usar o RecordCount e outras propriedades:
Ahyi
tet
Tuth
Ligue para os procedimentos armazenados com parâmetros de saída:
2
Ligue para um procedimento armazenado com dois parâmetros de entrada e o valor de retorno:
1
Nota: Se não houver parâmetros no procedimento armazenado, a instrução SQL chamada é diretamente o nome do procedimento armazenado e um parâmetro é o parâmetro de nome do procedimento armazenado. ., parâmetro n; .
⑵. Use processamento de transações
①. Suporte de transação incorporado ASP
exemplo:
use_transaction_1.asp
<%
'Usando transações no ASP
Definir Conn = Server.CreateObject (Adodb.Connection)
Conn.Open CURSO_DSN, CUSTION_USER, CUSTION_PASSWORD
Conn.BegIntrans 'inicia a transação
SQL = Exclua do user_info
set rs = server.createObject (adodb.recordset)
Rs.Open SQL, Conn, 3,3
Se Conn.errors.count> 0, então 'há um erro
Conn.Rollbacktrans Rollback
Defina rs = nada
Conn.Close
Definir conn = nada
A transação de resposta.Write falhou e voltou ao estado antes da modificação!
resposta.END
outro
Conn.Committrans transação de compromisso
Defina rs = nada
Conn.Close
Definir conn = nada
Response.Write A transação foi bem -sucedida!
resposta.END
final se
%>
②. Transações no nível do banco de dados
eu. Criar procedimentos armazenados
Criar procedimento [user_info_2]
(@User_Name Varchar (40),@senha varchar (20))
COMO
Defina xact_abort ativado
Comece a transação
Exclua de user_info onde user_name =@user_name e senha =@senha
Cometer transação
Defina xact_abort off
ii. Chamado em asp
use_transaction_2.asp
<%
Definir Conn = Server.CreateObject (Adodb.Connection)
Conn.Open CURSO_DSN, CUSTION_USER, CUSTION_PASSWORD
sql = user_info_2 '& request.querystring (user_name) &', '& request.querystring (senha) &'
set rs = server.createObject (adodb.recordset)
Rs.Open SQL, Conn, 1,1
Defina rs = nada
Conn.Close
Definir conn = nada
%>
Discussão: As vantagens e desvantagens dos dois métodos?
⑶. Usando a visualização
Depois de definir a visualização no banco de dados, use a visualização no ASP como se estivesse usando uma tabela
4. Um exemplo de paginação de banco de dados
db_page.asp
<%
em erro de erro em seguida
Definir Conn = Server.CreateObject (Adodb.Connection) 'Crie um objeto conectado ao banco de dados
Conn.Open Course_DSN, curso_user, curso_password 'Use este objeto para se conectar ao banco de dados
set rs = server.createObject (adodb.recordset)
sql = selecione * de user_info ordem por id des Desc
Rs.Open SQL, Conn, 1,1
Se Rs.RecordCount> 0, se houver um registro
rs.pagesize = 2'Um máximo de 2 registros são exibidos por página
'Obtenha a página a ser exibida no URL
página = cint (solicitação (página))
'Página Parâmetro de manuseio de exceção
Se página = então página = 1
Se página <1 então página = 1
se página> = rs.pagecount então página = rs.pageCount
rs.absolutePage = página 'A página atual é a página especificada pelo parâmetro da página
para i = 1 a rs.pagesize'cycle os registros na página atual de acordo com o tamanho do parâmetro PAGESize
Response.Write user_id: & rs (id) & <br>
Response.write user_name: & rs (user_name) & <br> <br>
Rs.movenext 'Record Pointer se move para baixo
Se rs.eof, então saia para a exposição do loop se a parte inferior do conjunto de registros for alcançada
próximo
final se
'Mostrar botão de giro da página
Se página> 1 então
Response.write <a href = & request.servervariables (document_name) &? Page = 1> página 1 </a>
Response.write <a href = & request.Servervariables (document_name) &? Page = & (Página-1) &> Página anterior </a>
final se
Se página <> rs.pagecount então
Response.write <a href = & request.Servervariables (document_name) &? Page = & (Page+1) &> Próxima página </a>
Response.write <a href = & request.servervariables (document_name) &? Page = & rs.pagecount &> Última página </a>
final se
Resposta.Write Página Número: & Page &/& Rs.PageCount
'Feche o objeto e solte a memória
rs.close
Defina rs = nada
Conn.Close
Definir conn = nada
%>
Pensando: Quais atributos adicionais são usados durante o processo de paginação?