Este objeto proporciona acceso a distintas funciones de utilidad para el programador de aplicaciones internet.
El objeto Server tiene 1 propiedad y 7 métodos:
Por ejemplo, si se quiere aumentar el tiempo de ejecución a 100 segundos, se escribe:
<% Server.ScriptTimeout = 100 %>
El ejemplo siguiente crea dos objetos: DB que es del tipo Connection (conexión) a una DB y RS que es un RecordSet (conjunto de registros extraido de una DB). Los nombres asignados a los objetos son libres, y puedes llamarlos como quieras:
<%
Set DB = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
%>
Seguramente te habrás fijado en que hay una instrucción que hasta ahora no habíamos visto: Set. En efecto, hasta el momento para asignar un valor a una variable, simplemente escribíamos una igualdad, por ejemplo:
Nuevocod = Request.Form("NuevoCod").
Esto se puede hacer siempre que la variable vaya a recibir como valor un string, un número, el resultado de una función, una propiedad o un método, pero en el caso de recibir un objeto hay que anteponer la instrucción Set, tal como se muestra.
Otro tipo de objetos muy utilizados son los FileSystem y TextStream que sirven para crear, leer y escribir ficheros de texto. Por ejemplo:
<%
Set FS = Server.CreateObject("Scripting.FileSystemObject")
Set Fichero = FS.CreateTextFile("D:\ASP\texto.txt", True)
%>
Dada su utilidad, en otras páginas de la guia veremos ejemplos más extensos de estos y otros objetos creados con el método Server.CreateObject().
No debe confundirse con los métodos Server.Transfer o Response.Redirect ya que con ellos el control no vuelve a la página llamadora, y el proceso concluye en la página llamada.
Por ejemplo:
'---Fichero llamador.asp
'---Fichero llamado.asp
<HTML>
<HEAD><TITLE>PRUEBA</TITLE></HEAD>
<BODY>
Esto es la parte 1 que se escribe desde el fichero Llamador <BR>
<% Server.Execute("llamado.asp") %>
Esto es la parte 3 que se escribe desde el fichero Llamador <BR>
</BODY>
</HTML>
<HTML>
<HEAD><TITLE>PRUEBA</TITLE></HEAD>
<BODY>
<%
Response.Write "Esto es la parte 2 que se escribe desde el fichero Llamado <BR>"
%>
</BODY>
</HTML>
Y este sería el resultado:
Esto es la parte 1 que se escribe desde el fichero Llamador
Esto es la parte 2 que se escribe desde el fichero Llamado
Esto es la parte 3 que se escribe desde el fichero Llamador
<% Response.Write Server.HTMLEncode("Esto es un break <BR> que no funciona") %>
Este sería el código interno obtenido, visible en formato HTML pero no ejecutable como tal:
Esto es un break <BR> que no funciona
Y esto es lo que mostrará es navegador:
Esto es un break <BR> que no funciona
<HTML>
<HEAD><TITLE>PRUEBA</TITLE></HEAD>
<BODY>
La ruta de fichero1.asp es: <% Response.Write Server.MapPath("fichero1.asp") %>
La ruta de fichero2.asp es: <% Response.Write Server.MapPath("\fichero2.asp") %>
La ruta de fichero3.asp es: <% Response.Write Server.MapPath("asp\fichero3.asp") %>
La ruta de fichero4.asp es: <% Response.Write Server.MapPath("\") %>
</BODY>
</HTML>
Y este sería el resultado:
La ruta de fichero1.asp es: D:\Inetpub\wwwroot\fichero1.asp
La ruta de fichero2.asp es: D:\Inetpub\wwwroot\asp\fichero2.asp
La ruta de fichero3.asp es: D:\Inetpub\wwwroot\asp\fichero3.asp
La ruta de fichero4.asp es: D:\Inetpub\wwwroot
No confundir con el método Response.Redirect que funciona de modo similar, pero partiendo de otro objeto. El proceso de transferencia de una página a otra es completo, incluyendo todos los objetos y variables que hayan sido creados en la página llamadora como si se tratase de la misma, aunque con otro nombre de página.
Por ejemplo:
'---Fichero llamador.asp
'---Fichero llamado.asp
<HTML>
<HEAD><TITLE>PRUEBA</TITLE></HEAD>
<BODY>
Esto es la parte 1 que se escribe desde el fichero Llamador <BR>
<%
Session("prueba") = "Variable de sesión creada desde el fichero Llamador <BR>"
Server.Transfer("llamado.asp")
%>
Esto es la parte 3 que se escribe desde el fichero Llamador <BR>
</BODY>
</HTML>
<HTML>
<HEAD><TITLE>PRUEBA</TITLE></HEAD>
<BODY>
<%
Response.Write Session("prueba") & "<BR>"
Response.Write "Esto es la parte 2 que se escribe desde el fichero Llamado <BR>"
%>
</BODY>
</HTML>
Y este sería el resultado:
Esto es la parte 1 que se escribe desde el fichero Llamador
Variable de sesión creada desde el fichero Llamador
Esto es la parte 2 que se escribe desde el fichero Llamado
<% Response.Write Server.URLEncode("http://sestud.uv.es/manual.esp") %>
Este sería el código interno obtenido URL-encoded, que es precisamente con el que trabajan internamente los navegadores, aunque habitualmente se vea de otra forma (formato ASCII).
http%3A%2F%2Fsestud%2Euv%2Ees%2Fmanual%2Eesp
Como puedes ver, la conversión lo que hace es transformar cualquier cosa que no sea una letra o un número en su código hexadecimal separados por el signo %
Hex Dec ASCII --------------------- 3A 58 : 2F 47 / 2E 46 .