Desenvolvimento de Sistemas Web
Módu lo II: Programação lado-
servidor
����������� � ������� � ���������������� � ! "#���%$��&��'�! ��$�� "#(�� )+* , - . /�021�3 4 3�576 8�9#4 8�:�3 ; <�=�> ? @ A�B�>
Modelo Cliente-Servidor
Solicita serviço
Envia resultado
ClienteUsuário Servidor Rede
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Tecnologias que implementam estes modelos
z HyperText Markup Language (HTML)– Linguagem que permite definir a estrutura de um
documento a ser exibido por um browser
z Uniform Resource Identifiers (URI)– Esquema pelo qual os recursos da internet são
endereçados
z HyperText Transfer Protocol (HTTP)– Protocolo que define a interação entre um browser
(cliente) e um servidor de documentos hipertextuais.
/�0�1�1�23�4 5 6�7�8�9 5 :�9; 9�<�9�=�>�? @ > 5 A 9�=!:�?B�9C$5 <�:�9 A 4�< D&9 E F G 9�H+=�? @ ?�I-5 4�< @ 4�B�? J <�9�6 > 5 B�?�6
Modelos e tecnologias em Sistemas Web
KArquitetura Cliente-Servidor
KHipertexto
KProtocolo HTTP
KLinguagem HTML
KEndereçamento através da URI
HTTP + URI
HTML, GIF, ...
Browser(cliente)
Usuário Servidor HTTP
Aplicação(programa)
Documento(arquivosHTML)
Internet
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Transação cliente-servidor na Web
InternetCliente Servidor
Softwarede TCP/IP
Browser
Softwarede TCP/IP
ServidorHTTP
HTTP
TCP
HTTP
TCP
Resposta do servidor
Solicitação HTTP
Ligação física
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo de uma sessã o Web –1/2
z 1 Usuário solicita http://www.empresa.com/arq.html
z 2 DNS é consultado e fornece o endereço IP – 200.13.16.8
z 3 O browser faz a conexão e envia a solicitação em HTTP– GET /arq.html HTTP / 1.0– ... (seguem outras
informações)GET / HTTP /1.0
Browser(cliente)
Internet
Usuário
http://www.empresa.com
DNS
200.13.16.8
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo de uma sessã o Web –2/2
z 5 Servidor recebe solicitação e procura pelo recurso (arq.html)
z 6 Servidor:HTTP/1.1 200 OK
Date: Thu, 23 Oct 1997 21:45:56 GMT
... (após o cabeçalho segue o conteúdo de arq.html)
z 7 Browser apresenta o resultado na tela
Browser(cliente)
Internet
Usuário
Servidor
Cabeçalho + conteúdo de
arq.html
arq.html
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Tecnologias para Sistemas Web
InternetCliente
Interface de Usuário
HTML(Forms)
CSSScripts
Núcleo funcional:Programas utilizando
CGI, API, etc.e Banco de dados
Servidor
Sof
twar
eH
ardw
are
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Tecnologias para programação lado-servidor
Tecnologias paraSistemas Web
Tecnologias paraprogramação lado-cliente
Tecnologias paraprogramação lado-servidor
ScriptsLado-servidor
ProgramasCompilados
•Perl + CGI•PHP•Active Server Pages•Cold Fusion
•Programas + CGI•Programas + API•Java Servlets•ASP.NET
ScriptsLado-cliente
ProgramasCompilados
Outras soluções
•Javascript•VBScript •Java Applets
•Macromedia FlashTecnologias
híbridas
•Java Server Pages•ASP.NET
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Tecnologias do lado cliente
InternetCliente
DOM
ScriptsHTML
Módulo Compilado(Applets, ActiveX)
Plug-in
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Tecnologias do lado servidor
Servidor
InternetCliente
ServidorHTTP
Arquivos HTML,GIF,
Programasaplicativos
PáginaHTML
Solicitação HTTP
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Tecnologias do lado servidor
z Sistema operacional– Unix (Aix, Solaris, Linux),
Windows NT
z Servidor HTTP– Apache– Internet Information Server
(IIS), – Personal Web Server
z Programas Gateway– Perl, C/C++, TCL/TK, Lua,
PHP
z API – Interface de programação de aplicações– ISAPI, NSAPI
z Java Servletsz Scripting
– Server-side JavaScript
– Active Server Pages - ASP
– Cold Fusion - CFM
z Banco de dados– Oracle, Sybase, SQLServer,
MSAccess
z Database Middleware– Oracle Internet Platform
– Informix Internet Foundation.2000
– Sybase web.sql
Sistemas de Informação na Web
Arquitetura e Tecnologias
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Arquitetura Típica – 3 camadas
Internet
Browser Servidor HTTP Servidor de Banco de Dados(SGBD)
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo de um sistema de comércio eletrônico
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Transações em sistemas de informação web?
z Formulário no clientez Envio de dados para o servidor através da internet
usando o protocolo HTTPz Execução de programas no servidor
– Existem diferentes alternativas
z Acesso a dados em um banco de dados através de um SGBD
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Formulário no cliente
Nome:
Sobrenome:
Masculino Feminino
Enviar consulta Redefinir
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Código HTML
<FORM action=“cgi-bin/programa1” method=“GET”><P><INPUT type=“text” name=“primnome”><BR><INPUT type=“text” name=“sobrenome”><BR><INPUT type=“radio” name=”sexo” value=“M”>Masculino<INPUT type=“radio” name=”sexo” value=“F”>Feminino<INPUT type=“submit” ><INPUT type=“reset”></P>
</FORM>
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Envio de dados usando HTTP
z Dados podem ser enviados pelo cliente através de dois métodos HTTP
z O método GET– O programa recebe os dados através da variável de
ambiente QUERY_STRING
z O método POST– O programa recebe os dados através da entrada padrão
do sistema operacional– O número de dados a serem lidos é informado pela
variável CONTENT_LENGTH
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Como funciona? – 1/3
z Cada formulário, além de texto e de outros elementos HTML, contém um conjunto de controles que pertencem ao seu escopo
z Cada controle possui um tipo , um nome, um valor e outros atributos
z O tipo determina qual é o controlez O nome é associado ao valor fornecido pelo
usuário durante o preenchimento do formulário
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Como funciona? – 2/3
z Cada formulário possui alguns elementos chaves padronizados
z O atributo action associa o formulário com uma URI onde deverá estar um programa
z Este programa deverá ser capaz de processar os dados fornecidos através do formulário
z O controle submit é um botão que pode ser pressionado pelo usuário
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Como funciona? – 3/3
z Após o elemento submit (botão) ter sido pressionado o browser envia uma série de pares nome/valor com os dados fornecidos
z A submissão pode ser feita pelos métodos HTTP GET ou POST
z No método GET, os pares nome/valor são enviados juntos com a URI
z No método POST os pares nome/valor são enviados no corpo da solicitação HTTP
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Forma dos dados enviados
z O usuário fornece os dados preenchendo os controles de um formulário
z No código HTML cada controle deve ter um nome, especificado pelo atributo name
z O valor fornecido pelo usuário é associado ao atributo value
z Os dados são enviados em pares nome=valor da seguinte forma, por ex.:
primnome=Jair&sobrenome=Leite&sexo=M
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Enviando dados pelo método POST
POST /cgi-bin/programa1 HTTP/1.0Accept : text/plainAccept : apliation/x-htmlAccept : ...User-Agent: NSCA Mosaic for X Window System/2.4Content-type application/x-www-form-urlencodedContent-length: 58Nome=jair&sobrenome=Leite&sexo=M
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Enviando dados pelo método POST
POST /cgi-bin/programa1 HTTP/1.0Accept : text/plain...Content-length: 58primnome=Jair&sobrenome=Leite&sexo=M
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Enviando dados pelo método GET
GET /cgi-bin/programa1?prinnome=Jair&sobrenome=Leite...
Accept : text/plain
Accept : apliation/x-htmlAccept :
.
.
.
User-Agent: NSCA Mosaic for X Window System/2.4(uma linha contendo apenas CRLF)
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Arquiteturas alternativas de programação lado-servidor
z Programas + CGI (gateway)– Scripts– Programas compilados
z Scripts lado-servidor (SSS)– Interpretados no servidor Web
z Programas + APIs– Utiliza APIs do servidor Web
z Servidores HTTP integrados com Servidores de Banco de Dados (SGBDs)– Servidores, Interpretadores/Compiladores e SGBD num
único pacote – mesmo fabricante.
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Ilustração
ProgramaGatewayProgramaGateway
Browser(cliente) Servidor como Base de Dados
Base deDados
Base de Dados
APIAPI
Base deDadosSSSSSS
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Conexão com banco de dados
z ODBC – Open DataBase Connectivity– Interface de padrão de conexão a banco de dados– Principais fabricantes fornecem drivers ODBC– Portabilidade
z SQL – Structured Query Language– Linguagem padrão de consulta a banco de dados
relacionais– Desenvolvida pela IBM– Interpretada pelos principais banco de dados
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
SQL – Structured Query Langu age
z Exemplos de comandos SQLSELECT primnome, sobrenome FROM clientes
WHERE sexo=MORDER BY primnome, sobrenome ;
INSERT INTO clientes (primnome, sobrenome )VALUES (Jair', ‘Leite’);
DELETE FROM clientes WHERE sexo=F
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Programas Gateway
z Programas Gateway são aqueles que podem ser ativados pelo servidor
z A Common Gateway Interface (CGI) define mecanismos pelo qual servidores HTTP comunicam com programas gateway
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Transações com programas gateway
Browser(cliente) Página HTML
Query String
Solicitação HTTP
Resultados+Código HTML
ServidorHTTP
ProgramasGateway
Servidor de Bancode DadosCGI
Arquivos de dados
Arquivos HTML,GIF,
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
A CGI
z Interface para troca de dados servidor- programa gateway
z No sentido servidor-programa– Variáveis de ambiente– Argumentos de linha de comando– Entrada padrão
z No sentido programa-servidor– Saída padrão
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Enviando dados pela entrada padrão
z Quando o browser utiliza o método POST o servidor coloca a query string na entrada padrão
z O programa deve ler estes dados e processa-los
ServidorHTTP
ProgramasGatewayprimnome=Jair&sobrenome=Leite&sexo=M
Entrada padrãoArquivos de dados
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Decodificando os dados
z O programa CGI deve decodificar os dadosz Separar cada par nome=valor identificando o “&”z Identificar os nomes e valoresz Processar os valores adequadamente
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Enviando dados CGI-Servidor
z Usa-se a saída padrãoz O programa deve colocar na saída padrão o
documento HTML junto com os dados que foram processados
ServidorHTTP
ProgramasGateway
<HTML><HEAD><TITLE>....
Saída padrão
Arquivos de dados
Jair
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Enviando do cumentos ao servidor
z O programa CGI pode enviar ao cliente, através do servidor diversos tipos de documentos– Documentos HTML– Arquivos texto, imagens, áudio, etc.
z Qualquer que seja o tipo do arquivo, o programa deve enviar uma seqüência de bytes através da saída padrão
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Informando o tipo do conteúdo
z O programa CGI deve especificar qual o tipo do conteúdo que está sendo enviado
z O documento ou referência deve ser especificado através de um pequeno cabeçalho antes do conteúdo
Content-type: text/htmlLinha em branco (CRLF)
<HTML><HEAD><TITLE>Documento HTML</TITLE>...
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo de resposta do servidor
HTTP/1.0 200 OKDate: Friday, 18-aug-99 21:45:00 GTMServer: NCSA/1.3MIME-version: 1.0Last-modified: Friday, 10-jul-99 20:44:00 GTMContent-length: 106Content-type: text/html(CRLF)
<html><head><title>Teste HTML</title></head><body><h1>Olá Jair!</h1></body></html>
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Conectividade baseada em CGI
ProgramaGatewayProgramaGateway
Base de Dados
HTML
HTTP
•Gera comandos SQL•Ler resultados do BD•Gera doc HTML incluindo os resultados
CGI
Dados
HTML
QuerySQL
Resultadoda Query
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo: Usando Apache, Perl e MySQL
Arquivo PerlArquivo Perl
MySQL
QuerySQL
Servidor Apache Resultado
da Query
Entrada/Saída padrão
CGI
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Conectividade usando Perl e SQL
#!/usr/bin/perl...print “<h1> Doc HTML </h1><p>”foreach $key (keys(%FORM)) {
print "$key = $FORM{$key}<br>";print “INSERT INTO Students (lastname, firstname) VALUES ($nome, &sobrenome)”;
}
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Características da conectividade com CGI
z Grande portabilidade e flexibilidadez Baixo custoz Maior esforço de programaçãoz Difícil manutençãoz Baixo desempenho
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Scripts do lado servidor (SSS)
z Documentos HTML contém um scriptz O servidor possui interpretador de scripts
z Script é executado antes de ser enviadoz Podem interagir com base de dados, sistema de
arquivos, etc.z São dependentes da plataforma e do servidor
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Interpretação de SS Scripts
InternetCliente
ServidorHTTP
Arquivos HTML,GIF,+ SCRIPTS
InterpretadorScript
BDScripts
PáginaHTML
Solicitação HTTP
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Scripts mais comuns (1/2)
z Server-Side JavaScript– Utilizado com a ferramenta LiveWire para servidores
Netscape– Integração com componentes Java
z Active Server Pages (ASP)– Extensão do Internet Information Server (IIS) da
Microsoft para programas do lado servidor e execução de scripts
– Independente da linguagem script – Permite o desenvolvimento de Componentes
ActiveX/COM
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Scripts mais comuns (1/2)
z Java Servlets– Programa Java no lado-servidor– Utiliza browsers específicos: Tomcat, Sun Java Web
Server, Allaire JRun, etc. – JavaServer Web Development Kit
z Java Server Pages (JSP) – Versão Java para a ASP. – Scripts são traduzidos em Java Servlets– Mais fácil de programar do que servlets
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Tecnologia ASP - Active Server Pages
Base de Dados
InterpretadorVBScript
InterpretadorVBScript
VBScript
ASP = Doc HTML
+ VBScript
ComponentesActiveX
HTML
InternetInformation
Server
Browser
HTTP
SQLHTML
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo ASP – conectando com um banco de dados
<%@ LANGUAGE="VBScript" %><%Option ExplicitDim ConnectionDim RSDim SQLStmtDim SSN, Firstname, LastnameSet Connection =
Server.CreateObject("ADODB.Connection")Connection.Open "DSN=Clientes; UID=sa“
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo ASP – solicitando d ados com SQL
SQLStmt = "SELECT SSN, primnome, sobrenome "SQLStmt = SQLStmt & "FROM Clientes"SQLStmt = SQLStmt & "ORDER BY primnome "Set RS = Connection.Execute(SQLStmt)%><html><head>...</head><body><h1>Oi RS.Fields(“primnome") </h1></body></html>
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Java Servlets
z Programas Java do lado servidorz Solução Java para programas gatewayz Equivalentes aos Appletsz Funcionamento semelhante às API’sz Programa “compilado”z Geração de código HTML trabalhosa
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo de Java Servlet -1
package hall;
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
public class HelloWWW extends HttpServlet {public void doGet(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<HTML>\n" +
"<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +"<BODY>\n" +"<H1>Hello WWW</H1>\n" +"</BODY></HTML>");
}}
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo de Java Servlet -2
String title = “Exemplo com três parâmetros de formulário";out.println(ServletUtilities.headWithTitle(title) +
"<BODY>\n" +"<H1 ALIGN=CENTER>" + title + "</H1>\n" +"<UL>\n" +" <LI>param1: "+ request.getParameter(“ primnome") + "\n" +" <LI>param2: "+ request.getParameter(“ sobrenome") + "\n" +" <LI>param3: "+ request.getParameter(“ sexo") + "\n" +"</UL>\n" +"</BODY></HTML>");
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Java Server Pages
z Tecnologia que permite incluir num mesmo arquivo comandos HTML com construtores JSP
z Os construtores JSP são:– Elementos script – código Java– Diretivas – estrutura o servlet resultande– Ações – especificação de componentes existentes
z O JSP é traduzido em Servlets na primeira vez que é requisitado pelo servidor
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo de JSP -1
<HTML><HEAD><TITLE>Banco de Negócios</TITLE></HEAD><BODY><H1>Banco de Negócios</H1><P>Olá,<!– Se UserName for vazio, escreve “Novo usuário” --> <% out.println(Utils.getUserNameFromCookie(request)); %>Para acessar sua conta, clique<A HREF="Account-Settings.html">aqui.</A></P><P>Aqui segue o restante do código HTML da página do banco.</BODY></HTML>
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Exemplo de JSP - 2
<P><jsp:useBean id="test" class="hall.SimpleBean" /><jsp:setProperty name="test"
property="message" value="Hello WWW" />
<H1>Mensagem: <I><jsp:getProperty name="test" property="message" /></I></H1><P> <jsp:include page="news/Item1.html" flush="true"/></P>
package hall;pub lic class SimpleBean {
private String message = “ Vazio" ;public String getMessage() {
return(message);}public void setMessage(String message) {
this.message = message;}
} SimpleBean.java
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Servidores com API’s
z Interfaces de Programação de Aplicações (Applications Programming Interface – API)
z NSAPI – proposta Netscape
z ISAPI – proposta Microsoft para desenvolvedoresWindows NT
z São análogos aos plug-ins do lado clientez Melhor desempenho que as CGIs
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
API’s em servidores HTTP
InternetCliente
ServidorHTTP Arquivos
HTML,GIF,
API BD
Programa compilado
PáginaHTML
Solicitação HTTP
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Usando a ISAPI
HTML
InternetInformation
Server
Browser
HTTP
Arquivo.dll
•GetExtensionVersion( )•HttpExtensionProc( )•Extension_Control_Block
ISAPI
•GetServerVariable( )•ReadClient ( )•WriteClient ( )•ServerSupportFunction ( )
BD
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Integração de servidor Web e banco de dados
z Alguns fabricantes oferecem produtos que integram o servidor HTTP com um servidor de banco de dados
z Solução da Oracle: Oracle Internet Platformz Solução da Sybase: web.sqlz Solução da Informix: Informix Internet
Foundation.2000
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Oracle Internet Platform
z Possui três componentes básicos– Browsers de clientes– Servidores de aplicação– Banco de dados Oracle 8i
z Browser– Responsável pela apresentação
z Servidor da aplicação e banco de dados– Funcionalidade da aplicação– Armazenamento de dados
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Oracle Internet Platform – visão geral
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Oracle Internet Platform – arquitetura
•Java Servlets•EnterpriseJavaBeans
Gerencia usuários,
aplicações eplataforma
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Sybase web.sql
z Oferece acesso a BD relacionaisz Gera um documento HTML final de forma
dinâmica e personalizada
z Comando SQL e scripts Perl podem ser introduzidos no documento HTML
z Elimina a necessidade de CGIz Processa dois tipos de arquivos
– .hts – hypertext sybase– .pl – programas Perl
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Sybase web.sql - arquitetura
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Conectividade com web.sql
Web.sqlWeb.sqlHTML
HTTP Req. HTS
HTML
Arquivo HTSou Perl
BD1
SQL
CGI ou NSAPI
BD2
SQL
����������� � ������� � ���� ����������� � � � � ���!���"��#$� ����� � �� %&� ' ( ) ��*+��� � ��,-� �� � �"�� . ����� � � "����
Informix Internet Foundation.2000
z Plataforma integrada– Informix Dynamic Server.2000 – maquina básica– Informix J/Foundation – implementa a JVM– Informix Office Connect – conexão com produtos
MSOficce– Informix Web DataBlade – consultas SQL a BD– Excalibur Text Data Blade Module – pesquisa
z Integra dados e conteúdosz Suporte a HTML, XML e Java
Top Related