AT06 - Utilizando Servlets

Transcrição

AT06 - Utilizando Servlets
J2EE
Utilizando Servlet
Instrutor HEngholmJr
AT06 – Utilizando Servlet
Page 1 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
Version 1.0 ● November 7, 2014
Indice
COMPONENTES DO EXEMPLO ................................................................................................. 3
LOGIN.JSP .................................................................................................................................... 3
LOGINSERVLET.JAVA ................................................................................................................... 3
HOME.JSP ..................................................................................................................................... 5
INITCONFIGSERVLET.JAVA ........................................................................................................... 5
EXEMPLOS RELACIONADOS A FLUXOS WEBCENTRIC ....................................................... 7
CHAMADA DE JSP POR LINKS PASSANDO PARÂMETROS ................................................................... 7
1.1.
JSP CHAMADA RECUPERA OS DADOS ENVIADOS POR .......................................................... 7
DIRECIONANDO DE UMA JSP PARA OUTRA ..................................................................................... 7
CHAMADA DE SERVLET POR LINKS................................................................................................. 7
Servlet chamado.................................................................................................................... 7
REDIRECIONANDO PÁGINAS .......................................................................................................... 8
<jsp:forward page="/teste/jsp/login.jsp" / >...................................... 8
PROGRAMANDO NA JSP ........................................................................................................... 9
IMPORTANDO CLASSES NA JSP ...................................................................................................... 9
DECLARAÇÃO DE VARIÁVEIS NA JSP ............................................................................................. 9
INSTANCIANDO OBJETOS NA JSP ................................................................................................... 9
REALIZANDO REDIRECT NA JSP .................................................................................................. 10
Page 2 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
Componentes do exemplo
Login.jsp
Nesta pg usuário realiza tentative de login.
Ela chama o servlet loginServlet, passando o código
<%@page contentType="text/html"%>
<html>
<head><title>JSP Page</title></head>
<body>
<p>&nbsp;</p>
<p>&nbsp;</p>
<form name="form1" method="post" action="/test/servlet/loginServlet">
<p>codigo
<input type="text" name="codigo">
</p>
<p>&nbsp;</p>
<p>
<input type="submit" name="Submit" value="ok">
</p>
</form>
<p>&nbsp; </p>
</body>
</html>
LoginServlet.Java
/*
* LoginServlet.java
*
* Created on 22 de Agosto de 2003, 15:03
* Recebe o codigo do usuario, armazena em objeto, preenche arrayList e chama home.jsp
*/
package com.exemplo.servlet;
import java.io.*;
import java.net.*;
import
import
import
import
javax.servlet.*;
javax.servlet.http.*;
com.exemplo.*;
java.util.*;
/**
*
* @author asantana
* @version
*/
public class LoginServlet extends HttpServlet {
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
/** Destroys the servlet.
*/
public void destroy() {
}
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
Page 3 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
String codigoUsuario = request.getParameter("codigo");
Usuario usuario = new Usuario();
usuario.setCodigo(Integer.parseInt(codigoUsuario));
usuario.setNome("Nome do Usuario");
//usuario.recuperar();
ArrayList lista = new ArrayList();
lista.add("Mensagem 1");
lista.add("Mensagem 2");
lista.add("Mensagem 3");
//Preenchendo os valores dos objetos
request.setAttribute("usuario",usuario);
request.setAttribute("lista", lista);
//Definindo para qual pg será redirecionado o sistema
RequestDispatcher rd = request.getRequestDispatcher("/jsp/home.jsp");
//redirecionando o sistema
rd.forward(request, response);
}
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
}
Page 4 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
home.jsp
<%@page contentType="text/html"%>
<%@page import="java.util.*,com.exemplo.*" %>
<html>
<%
//Esta pg é chamada do servlet LoginServlet.java que a chama enviando os
//objetos Usuario e o ArrayList lista
Usuario usuario = (Usuario)request.getAttribute("usuario");
ArrayList lista = (ArrayList)request.getAttribute("lista");
%>
<head><title>JSP Page</title></head>
<body>
Codigo informado: <%=usuario.getCodigo()%>
<br>
<%
Iterator iLista = lista.iterator();
while(iLista.hasNext()){
String msg = (String)iLista.next();
out.println(msg);
out.println("<br>");
}
%>
</body>
</html>
InitConfigServlet.java
/* Utilizado para definição de variáveis de aplicação
* InitConfigServlet.java
*
* Created on 22 de Agosto de 2003, 15:04
*/
package com.exemplo;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
*
* @author asantana
* @version
*/
public class InitConfigServlet extends HttpServlet {
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
/***
* Definir as variaveis de Application
*/
ServletContext application = getServletConfig().getServletContext();
application.setAttribute("VERSION", "Versão 1.0.0");
// nas paginas Jsp utiliza-se os valores destas variaveis atraves de:
// application.getAttribute("VERSION")
}
Page 5 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
/** Destroys the servlet.
*/
public void destroy() {
}
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
/* output your page here
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("</body>");
out.println("</html>");
*/
out.close();
}
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
}
Page 6 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
Exemplos relacionados a fluxos webcentric
Chamada de Jsp por links passando parâmetros
<%@page contentType="text/html"%>
<html>
<head><title>JSP Page</title></head>
<body>
<p><a href=”pagina.jsp?codigo=10&acao=”adicionar”> Adicionar item A</a></p>
<p>&nbsp;</p>
<p>&nbsp; </p>
</body>
</html>
1.1.
Jsp chamada recupera os dados enviados por
int codigoMercadoria = integer.parseInt(request.getParameter("codigo"));
String acao = request.getParameter("acao ");
Direcionando de uma JSP para outra
Basta inserir, no local apropriado, as instruções abaixo com a localização da página
destino, neste exemplo /jsp/teste.jsp
Os objetos request e response existem implicitamente em todas as páginas JSP.
Deste modo, não é necessário declará-los
//Definindo para qual pg será redirecionado o sistema
RequestDispatcher rd = request.getRequestDispatcher("/jsp/teste.jsp");
//redirecionando o sistema
rd.forward(request, response);
Chamada de servlet por links
<a href=”servlets/servletTeste?codigo=1&acao=alterarCadastro”> Mercadoria A</a>
<a href=”servlets/servletTeste?codigo=1&acao=excluir”> Mercadoria A</a>
Servlet chamado
public class servletTeste extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void destroy() {
}
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
String codigo = request.getParameter("codigo");
String acao = request.getParameter("acao");
//FAÇA AS AÇÕES NECESSÁRIAS
Page 7 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
//Definindo para qual pg será redirecionado o sistema
RequestDispatcher rd =
request.getRequestDispatcher("/jsp/mntCadastro.jsp");
//redirecionando o sistema
rd.forward(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "Short description";
}
}
Redirecionando páginas
<%
if( ..........) {
%>
<jsp:forward page="/teste/jsp/login.jsp">
<jsp:param name=”userid” value=”<%=userId%>”/>
<jsp:param name=”userLogin” value=”<%=userLogin%>”/>
</jsp:forward>
<% else {
%>
<jsp:forward page=”error.jsp”/>
<% }
%>
<jsp:forward page="/teste/jsp/login.jsp" / >
Page 8 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
Programando na JSP
Importando classes na JSP
Podemos importer quantas classes necessitarmos nas JSP, com mostrado abaixo:
<%@page
<%@page
<%@page
<%@page
import="javax.servlet.http.HttpServletResponse" %>
import="models.acessoBD.BeanDeConexao"%>
import="models.administrativo.Pessoa"%>
import="java.sql.*"%>
Declaração de variáveis na JSP
Podemos declarar variáveis como desejarmos em uma JSP, mas isto é altamente
não recomendável.
A boa prática sugere apenas utilizar as JSP como interface do usuário com o
sistema.
Mesmo assim, veja abaixo como podemos declarar variáveis na JSP.
<%! String mensagem = “”; %>
<% for(int m=1; m<=5; m++){
out.println("<tr><td><font size='1' face='Verdana, Arial,
Helvetica, sans-serif' color='#0000FF'><b>x:</b>" + m + "</tr></td>");
}%>
Instanciando objetos na JSP
<%
//Recuperando a descricao digitada em cadCategoria.jsp
String nome = request.getParameter("nomePessoa");
//Obtendo o objeto armazenado em sessao
Pessoa pessoa = (Pessoa)session.getAttribute("Pessoa");
pessoa.setNome(nome);
pessoa.atualizaDadosUsuarioBancoDeDados();
//Inserindo objeto em variável de sessão
session.setAttribute("Pessoa", pessoa);
%>
Page 9 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved
Realizando redirect na JSP
<%
//Definindo para qual JSP será redirecionado o sistema
RequestDispatcher rd =
request.getRequestDispatcher("clientesCadastrados.jsp");
//redirecionando o sistema
rd.forward(request, response);
%>
servlet
componente web ou programa que gera conteúdo web dinamicamente;
escritos utilizando-se servlets API do Java;
permite escrever código que recebe e responde dinamicamente solicitações
cliente
Page 10 of 10
Documento: Utilizando Servlet
SytCom Training 2014. All rights reserved

Documentos relacionados

Servlet, JSP e Java Bean

Servlet, JSP e Java Bean Podem, por exemplo, executar as regras de negócio ou apenas mostrar uma página HTML dinamicamente. São para os servidores o correspondente aos applets para os browsers, mas não têm interface gráfic...

Leia mais

Introdução a Java Server Pages

Introdução a Java Server Pages <%@ page import="java.util.*" %> diretivas <%@ page import="j2eetut.webhello.MyLocales" %> <%@ page contentType="text/html; charset=iso-8859-9" %> Localized Dates<...

Leia mais

Lista de Exerc´ıcios - Servlets

Lista de Exerc´ıcios - Servlets enviados pelo cliente. 15. Seja o deployment descriptor de uma Aplicação Web representado por: InitParamsServlet s...

Leia mais

Java 2 Enterprise Edition

Java 2 Enterprise Edition <%@ page import="java.util.*" %> diretivas <%@ page import="j2eetut.webhello.MyLocales" %> <%@ page contentType="text/html; charset=iso-8859-9" %> Localized Dates<...

Leia mais