Servlets, JSPs e Java Beans



Documentos relacionados
Curso de Java. Geração de Páginas WEB através de JSP. Todos os direitos reservados Klais

Java II. Sérgio Luiz Ruivace Cerqueira

Java para WEB. Servlets

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

JSP (Java Server Pages)

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

JSP: JAVA SERVER PAGES

JSP: JAVA SERVER PAGES

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Desenvolvimento Web TCC Turma A-1

Desenvolvimento de aplicações Web. Java Server Pages

Programando em PHP. Conceitos Básicos

Scriptlets e Formulários

Java Server Pages. O código HTML pode indicar o método de arranque do servlet gerado por um JSP : doget ou dopost.

Programação II Programação para a Web. Christopher Burrows

Java na WEB Servlet. Sumário

Java para Desenvolvimento Web

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Programação Web Aula 12 - Java Web Software

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Aplicações de Linguagem de Programação Orientada a Objeto

Acessando um Banco de Dados

Java na WEB Componentes Bean

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

Aula 03 - Projeto Java Web

Programação Na Web. Sessão II. Índice. Visão geral da API Sessão. Obter dados sobre uma sessão. Extrair informação sobre uma Sessão

INTRODUÇÃO À TECNOLOGIA SERVLETS

Desenvolvimento Web TCC Turma A-1

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

Tecnologias Web. Java Enterprise Edition

Associação Carioca de Ensino Superior Centro Universitário Carioca

Prof. Roberto Desenvolvimento Web Avançado

JSP e Servlet Princípio de MVC

TUTORIAL JSP & SERVLET

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Java II. Sérgio Luiz Ruivace Cerqueira

Introdução a Servlets e JSP. Prof. Samuel Martins samuellunamartins at gmail dot com Faculdade São Miguel

Java Server Pages. Arquitectura de uma aplicação distribuída em Internet. Figura 1 Modelo 2

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

Programação em Rede. Servlets. Manipulação de dados de input em Servlets

Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010.

SIMULADOS & TUTORIAIS

Servlets e Applets, funcionamento e comparativo.

programação de páginas de conteúdo dinâmico

Enterprise Java Beans

Curso De PHP. Aula 4. Formulários. Cookies. Session. Mail

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Sistemas para internet e software livre

Prática Sobre Servlets e JSP

Arquitetura de uma Webapp

Programação web Prof. Wladimir

Curso de Aprendizado Industrial Desenvolvedor WEB

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Programação Web Prof. Wladimir

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web

Aula 4. Objetivos. Conteúdo dinâmico na internet.

UNIDADE III JAVA SERVER PAGES

JSP - JavaServer Pages

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

Desenvolvimento Web XHTML Formulários. Prof. Bruno E. G. Gomes

Introdução a JavaServer Pages. Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de sistemas web

Conhecendo um pouco mais o servidor Apache TomCat

J550 Segurança e Controle de erros

JDBC Java Database Connectivity

Autenticação e Autorização

Prática em Laboratório N.01 Criando um Serviço Web via Console

Tutorial Jogo da Velha WEB

Criação de uma aplicação usando Servlets

Java para Desenvolvimento Web

Estudo Dirigido - Parte 1

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior

Programação para Internet I

COMO FUNCIONA UM FORMULÁRIO

Desenvolvimento Web com JSP/Servlets

0,5 pelo negrito das palavras ID, Nome, e Analisar em outro momento.

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

CAPITULO 5 COMANDO DE FLUXO IF

Introdução. HyperText Markup Language HTML. Formulário. Fluxo do Formulário. Fluxo do Formulário. Fluxo do Formulário. Fluxo do Formulário

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

PHP. Hypertext Pre-Processor

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Os componentes de um formulário são: Form, Input, Select e AreaText

Fundamentos de Servlets. Conceitos e ciclo de vida Classes e Interfaces da API Exemplos de Servlets

Java Beans e Servlets

INTRODUÇÃO AO DESENVOLVIMENTO WEB

Escola Superior de Tecnologia de Setúbal. Projecto Final

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

Transcrição:

Servlets, JSPs e Java Beans Prof. Pasteur Ottoni de Miranda Junior PUC Minas Disponível em www.pasteurjr.blogspot.com 1-Servlets 1.1 O que são Servlets são classes Java executadas em servidores web. Servem para processar regras de negócio em uma camada ligada ao servidor, fora da máquina do cliente. 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áfica com o usuário. 1.2- Um exemplo simples A classe a seguir define completamente um servlet: public class ExemploServlet extends HttpServlet /* Esta classe exemplifica a estrutura básica de um servlet */ public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /* O metodo doget recebe as requisições do cliente */ PrintWrite out;// Responsável por escrever conteúdo na via método println() visto abaixo String parametro= request.getparameter( parametro ); //saída /* os comandos a seguir definem o conteúdo a ser exibido */ response.setcontenttype("text/html"); out = response.getwriter(); out.println("<head><title>"); out.println(); out.println("</title></head>"); out.println("<h1>" + parametro + "</H1>"); out.println("<p>esta é a saída do servlet de ExemploServlet"); out.println(""); out.close(); 1

-ExemploServlet estende a classe HttpServlet, a qual implementa a interface Servlet. -ExemploServlet sobrecarrega o método doget da classe HttpServlet. Ele é chamado quando um cliente realiza uma requisição GET ( método de requisição default do HTTP) e resulta em uma página simples HTML retornada ao cliente. -No método doget: -Requisições do usuário são tratadas pelo objeto request da classe HttpServletRequest. Através de seus métodos capturam-se, por exemplo, parâmetros passadas pelo usuário(método getparameter( nome parâmetro ). -A resposta ao usuário é tratada pelo um objeto response da classe HttpServletResponse. -Como texto é retornado ao cliente, a resposta é enviada usando o objeto PrintWrite obtido a partir do objeto HttpServletResponse. 1.3 Como chamar um servlet em uma página O servlet acima poderia ser invocado a partir de um link ou de um formulário. Via um link, a forma seria assim, em HTML: <a href="/zona/exemploservlet">texto do link</a> Zona corresponde a um endereço ou diretório disponibilizado pelo servidor web (no Apache esta zona está ligada a um diretório onde está o servlet). Caso haja parâmetros a serem enviados ao servlet, a chamada via link é feita assim: <a href="/zona/exemploservlet?parametro=partst&outroparametro=xxx">texto do link</a> Repare que o primeiro parâmetro aparece logo após a interrogação. O & é o separador dos diversos parâmetros, caso o servlet possua mais de um. Quando um servlet for invocado por um formulário, o código HTML deste seria: <form name='form1' action='/zona/exemploservlet' method='get' > 2

<input name='title' type='text' value=' size="40" maxlength='60'> <input type='submit' name='btnsalvar' value='gravar'> </form> Quando o botão btnsalvar do código acima for pressionado, o servlet ExemploServlet será automaticamente invocado no servidor e executado. Repare que o método do formulário é get, que corresponde ao método doget da classe ExemploServlet. Este método é executado e produz uma saída na forma de uma página HTML, através do código abaixo: PrintWriter out; String title= request.getparameter( parametro ); response.setcontenttype("text/html"); out = response.getwriter(); out.println("<head><title>"); out.println(parametro); out.println("</title></head>"); out.println("<h1>" + parametro + "</H1>"); out.println("<p>esta é a saída do ExemploServlet."); out.println(""); out.close(); 1.4- Como obter valores de parâmetros de formulários via servlets No exemplo acima, o formulário possui um campo de entrada de dados denominado title, a ser preenchido pelo usuário e submetido ao servidor pressionado-se o botão submit. Este campo é denominado parâmetro do servlet e pode ser recuperado via objeto HttpServletRequest, que no exemplo chama-se request. Este objeto possui um método chamado getparameter( nome do parâmetro ), capaz de recuperar os valores submetidos no formulário, no exemplo, o título digitado pelo usuário, armazenando-o na variável title: String parametro= request.getparameter( parametro ); 2-Introdução às Java Server Pages (JSP) 2.1-O que são JSP (Java Server Pages) é uma tecnologia para desenvolvimento de aplicações WEB que permite a inserção de código Java dentro de páginas JSP. Esse código Java, denominado scriplet, é executado em um servidor web (Tomcat, ou Jboss, 3

Glassfish etc), convertido em um servlet, processado e o resultado é retornado ao cliente como uma página HTML a ser exibida no browser. 2.2-Primeiro programa JSP JSP permite a inserção de código Java dentro de páginas HTML. Um arquivo HTML pode se transformar em um JSP apenas pela mudança da extensão. O código abaixo, por exemplo, se gravado em arquivo com extensão.jsp vai funcionar como tal, sem alterações. Sou um HTML gravado como JSP! 2.3-Adicionando código Java para exibir conteúdo Seja o código abaixo A hora e data agora são = new java.util.date() As sequências de caracteres = e devem conter expressões Java e são executados em nível de servidor. O servidor transforma esse código em um método de um servlet, que o executa e gera a página HTML, enviando-a ao browser. 2.4-Inserindo expressões em Java - Scriptlets JSP permite escrever blocos de Java dentro do código JSP, dentro dos chamados sciplets. Isto é feito colocando-se código entre e O código Java do scriplet é executado no servidor a cada vez que a página JSP é invocada. O exemplo anterior, adicionando-se um scriplet, fica assim: 4

System.out.println( "Vou obter a data e a hora" ); java.util.date date = new java.util.date(); A hora agora é = date O objeto out que é do tipo javax.servlet.jsp.jspwriter, o qual vimos no item sobre servlets é pré-declarado quando usamos JSP. Veja abaixo o uso do mesmo. java.util.date date = new java.util.date(); A hora agora é out.println( String.valueOf( date )); 2.5-Scriptlets e HTML Suponha que você tenha que gerar uma tabela em HTML contendo números de 1 a N. O código JSP para isso seria: <TABLE BORDER=2> for ( int i = 0; i < n; i++ ) <TR> <TD>Number</TD> <TD>= i+1 </TD> </TR> </TABLE> 5

Repare nos símbolos e no meio do loop "for", que tem o objetivo de inserir código Java no meio do código HTML. No trecho de código abaixo temos um condicional if que determina qual saída será impressa: if ( opcao1 ) <P>Opção 1 else <P>Opção 2 2.6-Diretivas Seja o código abaixo: @ page import="java.util.*" System.out.println( "Vou obter a data e a hora" ); Date date = new Date(); A hora agora é = date Na primeira linha do código temos o uso de uma diretiva JSP. Diretivas começam com os caracteres @ e terminam com. A do exemplo é uma diretiva page. Ela pode conter a lista de todas as packages importadas. Para importar mais de um item, os nomes das packages devem ser separados por vírgulas, como em @ page import="java.util.*,java.text.*" Outra diretiva importante é a include, que inclui o conteúdo de outro arquivo. O arquivo incluído pode ser HTML, JSP ou qualquer outro. 6

Incluindo arquivo teste.jsp...<br> @ include file="teste.jsp" 2.7-Declarações de objetos e variáveis Para adicionar uma declaração, deve-se colocar quaisquer declarações entre! e como mostrado abaixo: @ page import="java.util.*"! Date data = new Date(); Date pegadata() System.out.println( "Em pegadata()" ); return data; A hora agora é = pegadata() Nesse exemplos declaramos o objeto data e o método pegadata() 2.8 Tags JSP pré-definidas Tags pré-definidas iniciam-se com os caracteres jsp:. Por exemplo, jsp:include é uma tag pré-definida que é usada para incluir outras páginas. Esta tag é como a include já vista, porém inclui a página no momento da execução: Incluindo teste.jsp...<br> <jsp:include page="teste.jsp"/> 7

2.9-Sessions Sessions (sessões) são objetos associados a cada visitante de uma página JSP toda vez que ela é invocada. Dados podem ser colocados em cada sessão e recuperados. Um conjunto diferente de dados é mantido para cada visitante da página. No exemplo abaixo temos um conjunto de páginas que coloca o nome do usuário na session e o exibe. <FORM METHOD=POST ACTION="SaveName.jsp"> Qual seu nome?? <INPUT TYPE=TEXT NAME=username SIZE=20> <P><INPUT TYPE=SUBMIT> </FORM> Esse arquivo apenas exibe o campo texto username para que o usuário digite seu nome e chama o arquivo SaveName.jsp, exibido abaixo, que salva o nome digitado em um attributo da session, que pode conter variáveis ou objetos. O atributo é criado pelo método session.setattribute (nomeatributo, valoratributo). String name = request.getparameter( "username" ); session.setattribute( "thename", name ); <A HREF="NextPage.jsp">Continue</A> O arquivo NextPage.jsp exibido abaixo mostra como recuperar o nome: Hello, = session.getattribute( "thename" ) 8

A session é mantida por um determinado período de tempo, ajustado na configuração do servidor web. Quando este tempo expira, assume-se que o visitante abandonou o site e a sessão é terminada. 3-Introdução aos Java Beans Um Java Bean é um componente reutilizável de software escrito em Java. São utilizados principalmente por containers bean que são uma aplicação ou ambiente de programação. Na essência, são uma classe que tem atributos e métodos de armazenamento e recuperação dos mesmos. No exemplo abaixo o arquivo GetName.html obtém o endereço de email e a idade de um usuário: <FORM METHOD=POST ACTION="SaveName.jsp"> Qual é seu nome? <INPUT TYPE=TEXT NAME=username SIZE=20><BR> Qual é seu email? <INPUT TYPE=TEXT NAME=email SIZE=20><BR> Qual é sua idade? <INPUT TYPE=TEXT NAME=age SIZE=4> <P><INPUT TYPE=SUBMIT> </FORM> Esses dados podem ser facilmente recuperados se definirmos uma classe Java Bean com os campos "username", "email" e "age" e escrevemos os chamados métodos setter "setusername", "setemail" e "setage", que armazenam nos campos os valores aos quais se referem. Um método "setter" começa com "set" seguido pelo nome do campo. O primeiro caracter do nome do campo deve ser colocado em maiúsculas. Portanto, se o campo for "email", seu método "setter" será "setemail". Existem também os métodos denominados getters, definidos de maneira similar, com "get" ao invés de "set", capazes de recuperar o valor dos campos. Observe que métodos setters (e getters) devem ser públicos e os campos, privados. public class UserData private String username; private String email; private int age; 9

public void setusername( String value ) username = value; public void setemail( String value ) email = value; public void setage( int value ) age = value; public String getusername() return username; public String getemail() return email; public int getage() return age; Os nomes dos métodos devem ser exatamente como mostrado. Vamos modificar o arquivo "SaveName.jsp" visto anteriormente de forma que utilize um bean para recuperar os dados digitados pelo usuário: <jsp:usebean id="user" class="userdata" scope="session"/> <jsp:setproperty name="user" property="*"/> <A HREF="NextPage.jsp">Continue</A> Observe que tudo que precisamos fazer é adicionar as tags jsp:usebean e jsp:setproperty. A tag usebean declara uma instância de uma classe Java Bean, no exemplo, a instância user e a classe UserData A tag setproperty vai recuperar os dados de entrada automaticamente. O arquivo NextPage.jsp mostrado a seguir exibe os dados recuperados: <jsp:usebean id="user" class="userdata" scope="session"/> 10

Você entrou<br> Nome: = user.getusername() <BR> Email: = user.getemail() <BR> Idade: = user.getage() <BR> 11