Buscar

06 - Fundamentos Web

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Servidor 
Sistemas web
Fundamentos Web
ClienteCliente--ServidorServidor
• Aplicação típica cliente-servidor – programa 
executável em estação e servidor BD remoto.
• Interface e regras de negócios no cliente.
• Dados no servidor.
Servidor 
Dados
Programa.exe
ClienteCliente--ServidorServidor
• Processamento das regras de negócios do lado do
cliente.
• Processamento do evento ocorre na cpu da estação.
• Exibição de resposta da aplicação tratada
diretamente no lado cliente.
Cliente
Programa.exe
Private Sub Button1_Click(ByVal sender As System.Object, 
ByVal e As System.EventArgs) Handles btnSalvar.Click
Try
String sql = "SELECT FROM TBProdutos..."
Catch ex As Exception
End Try
End Sub
Plataforma WebPlataforma Web
• Baseada em HTTP
– Protocolo simples de transferência de arquivos
– Fluxo de troca de páginas entre um browser e um 
servidor Web
• Funcionamento (simplificado):
Servidor 
Abre conexão para www.xyz.com: (1)
Uma requisição:
GET /cadastro.html HTTP/1.1 ...(2)
Uma resposta:
HTTP/1.1 200 OK ... (3)
Fecha conexão (4)
Browser
Web
www.xyz.com
Servidor Web
www.xyz.com
browser
Plataforma WebPlataforma Web
protected void doPost(HttpServletRequest request, 
HttpServletResponse response) throws ServletException, 
IOException {
String acao = request.getParameter("acao");
if (acao.equals(“SALVAR"))
{
try {
//Processa Salvar
<HTML> 
<HEAD> 
<TITLE>Formulario Exemplo</TITLE> 
</HEAD> 
<BODY> 
<FORM METHOD=POST ACTION="servlet/usuario"> 
Qual seu nome? 
<INPUT TYPE=TEXT NAME=“vNome"><P> 
• Processamento da ação do usuário envolve estação
(envio request) e servidor (processamento request)
} catch (Exception e) {
}
}
Container Java (JSP/Servlet)
Trecho de código de Servlet
<INPUT TYPE=TEXT NAME=“vNome"><P> 
<INPUT TYPE=SUBMIT VALUE=Salvar> 
</FORM> 
</BODY> 
</HTML> 
browser
post /http
resposta/html
Plataforma WebPlataforma Web
• Pode estar num arquitetura n tier (neste exemplo 
3 camadas)
• Browser – apenas exibe interface.
• Servidor Web – Processa regras de negócios e 
formata a interface a ser enviada ao Browser.
Uma requisição (envio de 
dados para uma 
JSP/servlet)
Servidor processa a 
Servlet e responde ao 
cliente
BD
browser
Plataforma WebPlataforma Web
• Do lado do cliente (browser) apenas captura e
envia de informações ao servidor (web).
• Validação básica dos dados no lado do cliente -
Javascript
<HTML>
<HEAD> 
<TITLE></TITLE> 
</HEAD> 
<BODY> 
<FORM METHOD=POST ACTION="servlet/Usuario"> 
Dados do formulário…
<INPUT TYPE=“SUBMIT” NAME=“Consultar” />
</FORM> 
</BODY> 
</HTML>
Para Servidor Web
browser
Plataforma WebPlataforma Web
• O servidor recebe a requisição do browser (1).
• O servidor processa a requisição (2).
• O servidor formata a resposta a ser enviada ao 
cliente (browser) (3)
BD
protected void doGet(HttpServletRequest request, 
HttpServletResponse response) throws ServletException, 
IOException {
//... 
String sql = “SELECT * FROM ...”
//...
out.println(“Informação não localizada....)
} 
2
3
1
Para Browser
Principais métodos HTTP (requisição)
• GET – solicito um arquivo ao servidor HTTP/Envia requisição
para processamento
GET <url> <protocolo>/<versão> <Cabeçalhos HTTP>:<valores>
• GET pode enviar dados através da URL (tamanho limitado) de
JSP
• GET pode enviar dados através da URL (tamanho limitado) de
forma visível ao usuário
<URL>?dados
• POST - envia request/dados ao servidor (como fluxo de bytes)
embutidos na estrutura de dados do HTTP
POST <url> <protocolo>/<versão> <Cabeçalhos HTTP>: <valores>
<linha em branco>
<dados>
JSP
Protocolo HTTP
Uso de GET x POST no envio de formulário:
Limitações para o GET:
•Quantidade de dados a ser transmitida •Quantidade de dados a ser transmitida 
(2048 bytes IE)
•Dados como senha
•Caracteres não imprimíveis
Aplicações Web e Java 
• Servlets e JavaServer Pages (JSP) são as soluções Java
para estender o servidor HTTP
– Suportam os métodos de requisição padrão HTTP (GET,
POST)
– Geram respostas compatíveis com HTTP (códigos de status,
cabeçalhos e dados)
JSP
• É preciso usar um servidor que suporte as especificações de
servlets e JSP. Exemplo: Tomcat, JBoss, outros.
JSP
Protocolo HTTP
Pedido:
GET /cadastro.htmlcadastro.html HTTP/1.0 
Connection: Keep-Alive 
User-Agent: Mozilla/4.08 [en] (X11; I; Linux 2.0.36 i586; Nav) 
Host: www.xyz.com 
Accept: image/gif, image/jpeg, image/png, */* 
Accept-Encoding: gzip
Accept-Language: en 
Accept-Charset: iso-8859-1,*,utf-8 
JSP
Protocolo HTTP
Resposta:
HTTP/1.1 200 OK 
Date: Mon, 10 May 1999 06:15:49 GMT
Server: Apache/1.3.0 (Unix) 
Connection: close Connection: close 
Content-Type: text/html 
<HTML><HEAD> 
<meta http-equiv="refresh" content="0; 
URL=http://www.xyz.com/"> 
</HEAD>
JSP
Protocolo HTTP
Formulário:
<HTML>
<HEAD> 
<TITLE>Formulario Exemplo</TITLE> 
</HEAD> 
<BODY> <BODY> 
<FORM METHOD=POST ACTION="servlet/Hello"> 
Qual seu nome? 
<INPUT TYPE=TEXT NAME=“v_nome"><P> 
<INPUT TYPE=SUBMIT VALUE=Salvar> 
</FORM> 
</BODY> 
</HTML>
formulario.html
JSP
Protocolo HTTP
Envio do formulário:
POST /servletservlet//UsuarioUsuario HTTP/1.0 
Envio da Requisição (request) (a partir do browser)
http://www.servidor.com/cadastro.html
POST /servletservlet//UsuarioUsuario HTTP/1.0 
Referer: http://www.servidor.com/
Connection: Keep-Alive 
User-Agent: Mozilla/4.08 [en] (X11; I; Linux 2.0.36 i586; Nav) 
Accept-Encoding: gzip
Accept-Language: en 
Accept-Charset: iso-8859-1,*,utf-8 
Content-length: 19 
vNome=Joaquim Manoel 
Exemplo de Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SimpleServlet extends HttpServlet {
public void doGet (HttpServletRequest request, 
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out;
response.setContentType("text/html");
JSP
response.setContentType("text/html");
out = response.getWriter();
String user = request.getParameter(“vNome");
if (user == null)
user = "World";
out.println("<HTML><HEAD><TITLE>");
out.println("Simple Servlet Output");
out.println("</TITLE></HEAD><BODY>");
out.println("<H1>Simple Servlet Output</H1>");
out.println("<P>Hello, " + user);
out.println("</BODY></HTML>");
out.close();
}
}
Exemplo de JSP
<HTML><HEAD>
<TITLE>Simple Servlet Output</TITLE>
</HEAD><BODY>
<% String user = request.getParameter(“vNome");
if (user == null)
JSP
if (user == null)
user = "World";
%>
<H1>Simple Servlet Output</H1>
<P>Hello, <%= user %>
</BODY></HTML>
Página recebida no browser
• Página recebida no browser, Url da requisição
Requisição para o servlet:
http://servidor/servlet/SimpleServlet?vNome=Joaquim
Requisição para o JSP:
http://servidor/hello.jsp?vNome=Joaquim
JSP
http://servidor/hello.jsp?vNome=Joaquim
• Código fonte visto no cliente (no browser), retornado pelo
servidor
<HTML><HEAD>
<TITLE> Simple Servlet Output</TITLE>
</HEAD><BODY>
<H1>Simple Servlet Output</H1>
<P>Hello, Joaquim
</BODY></HTML>
Arquiteturas de aplicações Web
• Grandes aplicações Web geralmente consistem
de várias páginas JSP, HTML, imagens
misturadas com classes Java comuns e servlets
• Procura-se separar responsabilidades
– Controle de requisição, resposta, repasse de
dados
– Processamento de lógica de negócio
JSP
– Processamento de lógica de negócio
– Processamento de resposta e geração de
páginas
• Aplicações que dividem-se em camadas de
acordo com as responsabilidades acima são
aplicações MVC (Model-View-Controller) Mais
fáceis de manter e de reutilizar por equipes
heterogêneas (web designers, programadores,
etc.)

Outros materiais