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> </p> <p> </p> <form name="form1" method="post" action="/test/servlet/loginServlet"> <p>codigo <input type="text" name="codigo"> </p> <p> </p> <p> <input type="submit" name="Submit" value="ok"> </p> </form> <p> </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> </p> <p> </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
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 maisIntrodução a Java Server Pages
<%@ page import="java.util.*" %> diretivas <%@ page import="j2eetut.webhello.MyLocales" %> <%@ page contentType="text/html; charset=iso-8859-9" %>
Lista de Exerc´ıcios - Servlets
enviados pelo cliente.
15. Seja o deployment descriptor de uma Aplicação Web representado por:
Java 2 Enterprise Edition
<%@ page import="java.util.*" %> diretivas <%@ page import="j2eetut.webhello.MyLocales" %> <%@ page contentType="text/html; charset=iso-8859-9" %>