CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection:...

30
CI-2413 CGI & Compañía

Transcript of CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection:...

Page 1: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

CI-2413

CGI & Compañía

Page 2: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

mensaje.html

GET /~bsolano/ci2413/mensaje.html HTTP/1.0

Connection: Keep-Alive

User-Agent: Mozilla/3.0 (Win95; I)

Host: www.ecci.ucr.ac.cr

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

Page 3: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

mensaje.html

FORM– action– Method

Campos INPUT– id, name– type

Page 4: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

mensaje.php

Recibe el header HTTP:POST /~bsolano/ci2413/mensaje.php HTTP/1.0Referer: http://www.ecci.ucr.ac.cr/mensaje.htmlConnection: Keep-AliveUser-Agent: Mozilla/3.0 (Win95; I)Host: asgard.ecci.ucr.ac.crAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*Content-type: application/x-www-form-urlencodedContent-length: 18

mensaje=Hola+Mundo

Page 5: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Server Side Includes

Archivos .shtml<!-- #include virtual = “nombre_archivo” -->

Page 6: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

ASP, Active Server Pages

ASP es un modelo de objetos para el “Microsoft Internet Information Server”. Con ASP se pueden manipular objetos del servidor y sus propiedades, métodos y eventos que exponen, extendiendo así la operación del servidor. El rendimiento de ASP, la facilidad de desarrollo, y la independencia de lenguaje, lo han convertido en una de las tecnologías más populares para el desarrollo de aplicaciones “Web”.

Page 7: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

ASP, Active Server Pages

Modelo de Objetos– Application– Request– Response– Session– Server– ObjectContext

Page 8: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Ejemplo

<%@ LANGUAGE=“VBSCRIPT” %>

<HTML><HEAD><TITLE>ASP Ejemplo</TITLE><BODY>

Buenas tardes.<BR>Bienvenido al ejemplo. Ahora son aproximadamente las <%=Time()%> en el servidor. He aqu&iacute; un par de demostraciones:<BR><BR><BR>

Alg&uacute;n formateo de texto simple hecho utilizando HTML:<BR><FONT size=“1”> Hello Size 1</FONT><BR><FONT size =“2”> Hello Size 2</FONT><BR><FONT size =“3”> Hello Size 3</FONT><BR><FONT size =“4”> Hello Size 4</FONT><BR><FONT size =“5”> Hello Size 5</FONT><BR><BR>The same text formatting using server-side code:<BR><%For intCounter = to 5%><FONT size =“<%=intCounter%>”>Hello Size <%=intCounter%></FONT><BR><%Next%><BR></BODY></HTML>

Page 9: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

ASP.NET

ASP.NET es un marco de desarrollo Web que utiliza el Common Language Runtime de Microsoft.

Page 10: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Diferencias entre ASP y ASP.NET

Request Request.QueryString Request.Form

ASP devuelve una matriz de cadenas ASP.NET devuelve una cadena

Page 11: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Diferencias entre ASP y ASP.NET

Code Behind. Las páginas ASP.NET sólo admiten un único

lenguaje. La nueva opción predeterminada es el paso

de argumentos por valor.

Page 12: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Diferencias entre ASP y ASP.NET

Declarar las funciones de página en bloques <script runat=server>:

ASP<%

Sub DoSomething() Response.Write "Hello World!"

End Sub

DoSomething() %>

ASP .Net<script language="VB" runat=server>

Sub DoSomething() Response.Write ("Hello World!")

End Sub</script><%

DoSomething()%>

Page 13: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Diferencias entre ASP y ASP.NET

ASP.NET no admite funciones de procesamiento de páginas:

ASP<% Sub RenderSomething() %>

<font color="red"> Here is the time: <%=Now %> </font><% End Sub %><%

RenderSomething RenderSomething

%>

ASP .Net<script language="VB" runat=server>

Sub RenderSomething() Response.Write("<font color=red> ")Response.Write("Here is the time: " & Now)

End Sub</script><%

RenderSomething() RenderSomething()

%>

Page 14: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Diferencias entre ASP y ASP.NET

Ya no se utilizan las instrucciones Set y Let:

ASP<%

Dim MyConn Set MyConn = Server.CreateObject("ADODB.Connection")

%>

ASP .Net<%

Dim MyConn MyConn = Server.CreateObject("ADODB.Connection")

%>

Page 15: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Diferencias entre ASP y ASP.NET

Ya no existen propiedades predeterminadas no indizadas:

ASP<%

Set MyConn = Server.CreateObject("ADODB.Connection")MyConn.Open("TestDB")Set RS = MyConn.Execute("Select * from Products")Response.Write RS("Name")

%>

ASP .Net<%

MyConn = Server.CreateObject("ADODB.Connection")MyConn.Open("TestDB")RS = MyConn.Execute("Select * from Products")Response.Write RS("Name").Value

%>

Page 16: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP

                                                                                                                                           

Page 17: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP

Razones para utilizar JSP:– Corre en la plataforma JVM– Reutilización de componentes con JavaBeans y

EJB– JAVA

Page 18: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP, Diferencias con ASP

Son bastante similares. JSP puede tener una curva de aprendizaje

ligeramente mayor. Ambos permiten código empotrado en

HTML, variables de sesión y acceso a bases de datos junto con su manipulación.

Page 19: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP, Diferencias con ASP

Sin embargo ASP se encuentra sobre todo en plataformas Microsoft. [Nota: ASP.NET es una norma industrial]

JSP puede operar en cualquier plataforma conforme a la especificación J2EE.

JSP permite reutilización por medio de Javabeans y EJB. ASP provee el uso de controles COM / ActiveX.

Page 20: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP, Diferencias con Servlets

Un Servlet es una clase de Java que provee funcionalidad del lado del servidor web. Es difícil escribir código HTML en Servlets. En Servlets se necesitan declaraciones println para generar HTML.

Page 21: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP, Diferencias con Servlets

Page 22: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

Primer JSP: helloworld.jsp

<html> <head> <title>My first JSP page </title> </head> <body> <%@ page language="java" %> <% out.println("Hello World"); %> </body> </html>

Page 23: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP: Etiquetas de declaraciones

<%! private int counter = 0 ;

private String get Account ( int accountNo) ;

%>

Page 24: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP: Etiquetas de expresiones

Date : <%= new java.util.Date() %>

Page 25: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP: Etiquetas de directivas

<%@ directive ... %>

Hay tres tipos de directivas:– Página: procesa información para esta página.– Inclusión: incluye archivos. – Biblioteca de etiquetas: biblioteca que se va a

utilizar en esta página.

Page 26: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP: Etiquetas de Scriptlet

<%

String username = "ci2413" ;

out.println ( username ) ;

%>

Page 27: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP: Etiquetas de Acción

Hay tres papeles principales para las etiquetas de acción:

1. Activar el uso de Javabeans en el lado del servidor.

2. Transferir control entre páginas.

3. Apoyo independiente del navegador para applets.

Page 28: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP: Objetos Implícitos

Variable Tipo

Request Javax.servlet.http.httpservletrequest

Response Javax.servlet.http. httpservletresponse

Out Javax.servlet.jsp.JspWriter

Session Javax.servlet.http.httpsession

PageContent Javax.servlet.jsp.pagecontext

Application Javax.servlet.http.ServletContext

Config Javax.servlet.http.ServletConfig

Page Java.lang.Object

Page 29: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

JSP: Hola Mundo

<%

String sMensaje = request.getParameter(“mensaje");

out.print(sMensaje);

%>

Page 30: CI-2413 CGI & Compañía. mensaje.html GET /~bsolano/ci2413/mensaje.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/3.0 (Win95; I) Host: .

PHP