View
212
Download
0
Embed Size (px)
Disciplina:
MsC. Alexandro Vladno
Edmilson Campos
MsC. Fbio Procpio
Esp. Felipe Dantas
MsC. Joo Maria
MsC. Liviane Melo
Corpo docente:
Ciclo de vida; Funcionamento; Requisies e Respostas.
Programao Web
AULA 05
Edmilson Campos (edmilson.campos@ifrn.edu.br) 2
Edmilson Campos (edmilson.campos@ifrn.edu.br) 3
Edmilson Campos (edmilson.campos@ifrn.edu.br) 4
Edmilson Campos (edmilson.campos@ifrn.edu.br) 5
Edmilson Campos (edmilson.campos@ifrn.edu.br) 6
1.
Edmilson Campos (edmilson.campos@ifrn.edu.br) 7
2.
Edmilson Campos (edmilson.campos@ifrn.edu.br) 8
Edmilson Campos (edmilson.campos@ifrn.edu.br) 9
Edmilson Campos (edmilson.campos@ifrn.edu.br) 10
Edmilson Campos (edmilson.campos@ifrn.edu.br) 11
Edmilson Campos (edmilson.campos@ifrn.edu.br) 12
public class OiMundo extends HttpServlet {
protected void service (HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
PrintWriter out = response.getWriter();
// escreve o texto
out.println("");
out.println("");
out.println("Primeira servlet");
out.println("");
out.println("");
}
}
O objetivo da servlet acima exibir uma mensagem HTML simples
para os usurios que a requisitarem
Observe que toda classe
Servlet extende HttpServlet
E aqui tm-se os parmetros request e response usados para controlar as
requisies e respostas, respectivamente
Edmilson Campos (edmilson.campos@ifrn.edu.br) 13
Mapear o nome das Servlets aumenta a flexibilidade e
a segurana da aplicao
Edmilson Campos (edmilson.campos@ifrn.edu.br) 14
Edmilson Campos (edmilson.campos@ifrn.edu.br) 15
Edmilson Campos (edmilson.campos@ifrn.edu.br) 16
Edmilson Campos (edmilson.campos@ifrn.edu.br) 17
Edmilson Campos (edmilson.campos@ifrn.edu.br) 18
Nome:
E-mail:
Endereo:
Data Nascimento:
O atributo action do form indica qual endereo deve ser chamado ao submeter o formulrio, ao clicar no boto Gravar.
Nesse caso, estamos apontando para um endereo que ser uma Servlet
que j vamos criar, chamada adicionarContato
Edmilson Campos (edmilson.campos@ifrn.edu.br) 19
Edmilson Campos (edmilson.campos@ifrn.edu.br) 20
public class AdicionaContatoServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//Recuperando os parmetros do request
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
String dataEmTexto = request.getParameter("dataNascimento");
//Realiza operao para inserir contato
//[]
// Imprime o nome do contato que foi adicionado
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("Contato " + nome + " adicionado com sucesso");
out.println("");
out.println("");
}
}
Edmilson Campos (edmilson.campos@ifrn.edu.br) 21
AdicionaContato
br.com.caelum.agenda.servlet.AdicionaContatoServlet
AdicionaContato
/adicionaContato
Ateno para no errar o caminho correto do e nem esquecer a barra da url no
Edmilson Campos (edmilson.campos@ifrn.edu.br) 22
A razo tambm de muitas pessoas s conhecerem os mtodos GET e
POST se dar pelo fato deles serem os nicos suportados pelo HTML 4
Edmilson Campos (edmilson.campos@ifrn.edu.br) 23
Edmilson Campos (edmilson.campos@ifrn.edu.br) 24
public class AdicionaContatoServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//Executado quando a requisio enviada pelo mtodo GET
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//Executado quando a requisio enviada pelo mtodo POST
}
}
plataforma do cliente informao do browser
cookies
sesso
mtodo HTTP
stream de dados
String cliente = request.getHeader(User-Agent);
Cookie[] cookies = request.getCookies();
String metodo = request.getMethod();
HttpSession sessao = request.getSession();
Edmilson Campos (edmilson.campos@ifrn.edu.br) 25
InputStream entrada = request.getInputStream();
Edmilson Campos (edmilson.campos@ifrn.edu.br) 26
Edmilson Campos (edmilson.campos@ifrn.edu.br) 27
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class BeerSelect extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Beer Selection Advice
");
String c = request.getParameter("color");
out.println("
Got beer color " + c);
}
}
Deve-se evitar a utilizao de stream. O correto utilizar pginas JSP (que ser estudo ainda) para retornar ao usurio a resposta
Edmilson Campos (edmilson.campos@ifrn.edu.br) 28
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class CodeReturn extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
response.setContentType(application/jar");
ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream(/bookCode.jar);
int read = 0;
byte[] bytes = new byte[1024];
OutPutStream os = response.getOutPutStream();
while((read = is.read(bytes)) != -1)
os.write(bytes, 0, read);
os.flush();
os.close();
}
}
Edmilson Campos (edmilson.campos@ifrn.edu.br) 29
Edmilson Campos (edmilson.campos@ifrn.edu.br) 30
Edmilson Campos (edmilson.campos@ifrn.edu.br) 31
ServletOutPutStream out = response.getOutPutStream();
out.writer(umArrayDeBytes);
PrintWriter writer = response.getWriter();
writer.println(algum texto e html);
O PrintWriter empacota o ServletOutPutStream, ele possui uma referncia para o ServletOutPutStream, adicionando mtodos de
alto nvel para tratar caracteres
Edmilson Campos (edmilson.campos@ifrn.edu.br) 32
Edmilson Campos (edmilson.campos@ifrn.edu.br) 33
//...
if (Se o trabalho for para o Servlet){
// O Servlet trata a solicitao
}
else response.sendRedirect(http://www.ufla.br);
//...
Edmilson Campos (edmilson.campos@ifrn.edu.br) 34
public RequestDispatcher getRequestDispatcher(String path)
public void forward(ServletRequest req, ServletResponse res)
public void forward(ServletRequest req, ServletResponse res)
Edmilson Campos (edmilson.campos@ifrn.edu.br) 35
Edmilson Campos (edmilson.campos@ifrn.edu.br) 36
http://www.corewebprogramming.com/
http://www.w3schools.com/
Edmilson Campos (edmilson.campos@ifrn.edu.br) 44
http://www.corewebprogramming.com/http://www.w3schools.com/