Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Servidor Sistemas web Java Server Pages – JSP Parte III Ciclo de vida das JSPs Requisição HTTP GET/POST http://localhost/contexto/index.jsp 1.Localiza JSP arquivo JSP 4. service() classe Java HTTP html tradutor JSP Servidor Web/Container JSP Código-fonte Java traduzido Compilador javac classe Java Servlet 2.Traduz em Servlet 3. Compila Servlet JSP uso com JavaBeans • Problemas na escrita de código Java e o elementos HTMl. • O uso de JavaBeans reduz a quantidade de código Java na página.Java na página. • Os JavaBeans ajudam a separar a apresentação e os componentes lógicos do aplicativo. JavaBeans • Os beans são classes Java escritas de acordo com uma convenção. • Um bean: – deve ter um construtor sem argumentos. – pode fornecer propriedades que permitam a personalização do bean. – deve definir métodos de obtenção (get) e configuração (set) das propriedades existentes no bean. – deve definir métodos de obtenção (get) e configuração (set) das propriedades existentes no bean. – o método get não deve ter parâmetros e deve retornar um tipo primitivo ou objeto do tipo da propriedade. – o método set deve receber um único parâmetro do tipo primitivo ou objeto do tipo da propriedade e retornar void. – podem definir métodos de negócios para fornecer funcionalidade adicional. Bean - exemplo package pod; public class ContaBean { private float saldo; //propriedade saldo public float getSaldo() {public float getSaldo() { return saldo; } public void setSaldo(float saldo) { this.saldo = saldo; } } Definindo um Bean em JSP • Os JavaBeans são definidos na JSP usando-se a tag (elemento) <jsp:useBean>. • Essa tag cria uma instância de um JavaBean e o associa a um nome para uso na JSP. definição: <jsp:useBean id=“nome do bean” class=“classe do bean” scope=“escopo”>scope=“escopo”> • Nome do bean – nome definido para o bean. • Classe do bean – classe que implementa o bean. • Escopo – define o escopo da referência do bean. JavaBean – valores de escopo • page – disponível apenas nesta página. • request – disponível para a requisição HTTP (a página que recebeu a requisição e as páginas para onde a requisição é encaminhada). • session – duração da sessão do cliente (o bean pode ser usado de uma requisição para outra).ser usado de uma requisição para outra). • application – pode ser usado no contexto da aplicação por qualquer outro componente no aplicativo Web. JavaBean – instância • O código abaixo cria uma instância do bean para uma requisição corrente e associa ao nome definido. <jsp:useBean id=“conta” class=“pod.Conta” scope=“request”/> • Um exemplo de página que utiliza o bean <jsp:useBean id="conta" class="pod.ContaBean" scope=“request“/> <HTML> <HEAD><TITLE>Consulta</TITLE></HEAD> <BODY> <B>Saldo: <%= conta.getSaldo()%> </B> </BODY> </HTML> conta1.jsp JSP/JavaBeans – tags propriedades • Os atributos de um bean podem ser configuradas ou obtidas a partir dos métodos set e get ou por tags próprias. Aqui os atributos são conhecidos como propriedades. • As propriedades de um bean pode ser recuperadas usando-se a tag (elemento) <jsp:getProperty e pode ser configurada pela tag <jsp:setProperty na formaser configurada pela tag <jsp:setProperty na forma abaixo: <jsp:getProperty name=“nome do bean” property=“nome da propriedade”/> <jsp:setProperty name=“nome do bean” property=“nome da propriedade” value=“valor para a propriedade” /> JSP/JavaBeans – jsp:setProperty Exemplo – setProperty na definição do bean: <jsp:useBean id="conta" class="pod.ContaBean" scope="request"> <jsp:setProperty name="conta" property="saldo" value="150.00"/> </jsp:useBean> <HTML> <HEAD><TITLE>Consulta</TITLE></HEAD><HEAD><TITLE>Consulta</TITLE></HEAD> <BODY> <B>Saldo da conta: <%= conta.getSaldo()%> </B> </BODY> </HTML> conta2.jsp JSP/JavaBeans – jsp:setProperty Exemplo – setProperty após a definição do bean, no corpo do HTML: <jsp:useBean id="conta" class="pod.ContaBean" scope="request“/> <HTML> <HEAD><TITLE>Consulta</TITLE></HEAD> <BODY> <jsp:setProperty name="conta" property="saldo" value=“200.00"/> <B>Saldo da conta: <%= conta.getSaldo()%> </B> </BODY> </HTML> conta3.jsp JSP/JavaBeans – jsp:getProperty Exemplo – getProperty: <jsp:useBean id="conta" class="pod.ContaBean" scope="request“/> <HTML> <HEAD><TITLE>Consulta</TITLE></HEAD> <BODY> <B>Saldo da Conta: <jsp:getProperty name="conta" property="saldo“/> </B> </BODY> </HTML> conta4.jsp JSP/JavaBeans – jsp:setProperty • As propriedades de um bean podem ser iniciadas a partir de parâmetros da requisição HTTP. Isto é feito utilizando o atributo param. • Se o nome do parâmetro for igual ao nome da propriedade param pode ser omitido. <jsp:useBean id="conta" class="pod.ContaBean" scope="request“/><jsp:useBean id="conta" class="pod.ContaBean" scope="request“/> <HTML> <HEAD><TITLE>Consulta</TITLE></HEAD> <BODY> <jsp:setProperty name="conta" property="saldo" param=“pSaldo"/> <B>Saldo da conta: <%= conta.getSaldo()%> </B> </BODY> </HTML> conta5.jsp Requisitção http: http://servidor/conta5.jsp?pSaldo=200.00 JSP/JavaBeans • Exemplo com a classe ContaBancaria aqui denominada de ContaBancariaBean, com uso dos métodos GET <jsp:useBean id="conta" class=“classes.ContaBancariaBean" scope="request“/> <FORM NAME="frm" METHOD="POST" ACTION="contaServlet"> <table> <th><b>Cadastro de Contas</b></th> <tr> <td> NUMERO CONTA: </td> <td> <INPUT TYPE=TEXT NAME="vNum" VALUE=“<%= conta.getNumero() %>”></td> </tr></tr> <tr> <td> NOME CLIENTE: </td> <td><INPUT TYPE=TEXT NAME="vNome" VALUE=“<%= conta.getNomeCliente()%>"> </td> </tr> <tr> <td> SALDO CONTA: </td> <td> <INPUT TYPE=TEXT NAME="vSaldo" VALUE="<%= conta.getSaldo()%>"> </td> </tr> <tr> <td> <INPUT TYPE=SUBMIT VALUE="SALVAR"> </td> </tr> </table> </FORM> conta.jsp JSP/JavaBeans • Exemplo da classe ContaBancariaBean com ação JSP <jsp:useBean id="conta" class=“classes.ContaBancariaBean" scope="request“/> <FORM NAME="frm" METHOD="POST" ACTION="contaServlet"> <table> <th><b>Cadastro de Contas</b></th> <tr> <td> NUMERO CONTA: </td> <td> <INPUT TYPE=TEXT NAME="vNum" VALUE="<jsp:getProperty name='conta' property='numero'/>“ > </td> </tr> <tr> <td> NOME CLIENTE: </td><tr> <td> NOME CLIENTE: </td> <td><INPUT TYPE=TEXT NAME="vNome” VALUE="<jsp:getProperty name='conta' property=nomeCliente'/>“ > </td> </tr> <tr> <td> SALDO CONTA: </td> <td> <INPUT TYPE=TEXT NAME="vSaldo” VALUE="<jsp:getProperty name='conta' property=‘saldo'/>“ > </td> </tr> <tr> <td> <INPUT TYPE=SUBMIT VALUE="SALVAR"> </td> </tr> </table> </FORM> conta.jsp Serlvet/JavaBean/JSP/ • Exemplo abaixo demonstra a instanciação de um objeto da classe ContaBancariaBean na Servlet e o envio desse objeto para a página conta.jsp • O objeto é passado de um código para o outro, como um dos atributos do objeto request em uso pela Servlet. • O controle de execução sai da Servlet e passa para a JSP que por sua vez, irá gerar a saida HTML com as informações do objeto, e enviar ao browser.do objeto, e enviar ao browser. • O exemplo mostra apenas o método doPost com implementação com dados fixos para o objeto. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ContaBancariaBean cta = new ContaBancariaBean(4010,“Cliente1",1500); request.setAttribute("conta", cta); RequestDispatcher rd = request.getRequestDispatcher("conta.jsp"); rd.forward(request, response); } conta.jsp Serlvet/JavaBean protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ContaBancariaBean objCta = new ContaBancariaBean(4010,“Jose Maria",1500); request.setAttribute(“oConta", objCta); RequestDispatcher rd = request.getRequestDispatcher("conta.jsp"); rd.forward(request, response); } objCta numero=4010 cliente=“Jose Maria” saldo=1500.00 request oConta Objeto da classe ContaBancariaBean Objeto da classe HttpServletRequest JavaBean na JSP <jsp:useBeanid=“oConta" class=“classes.ContaBancariaBean" scope="request“/> • Existe dentro da estrutura do objeto request um atributo(objeto) oConta da classe ContaBancáriaBean? • Existindo, a página conta.jsp utiliza o objCta e pode preparar os dados do objeto a ser enviado ao browser, em html. • Caso não exista, a página conta.jsp irá criar um objeto da classe ContaBancariaBean com valores iniciais. objCta numero=4010 cliente=“Jose Maria” saldo=1500.00 request oConta Objeto da classe HttpServletRequest conta.jsp (parte da página)
Compartilhar