Prof.ª Daniela Barreiro Claro

Documentos relacionados
Java para Desenvolvimento Web

Java II. Sérgio Luiz Ruivace Cerqueira

Java II. Sérgio Luiz Ruivace Cerqueira

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

Java para WEB. Servlets

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

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

Desenvolvimento Web TCC Turma A-1

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

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

Java na WEB Servlet. Sumário

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

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

Desenvolvimento Web TCC Turma A-1

Desenvolvimento de aplicações Web. Java Server Pages

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

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

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

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

Programação Web Aula 12 - Java Web Software

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

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

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

UNIDADE III JAVA SERVER PAGES

UNIDADE II JAVA SERVLETS

Tecnologias Web. Java Enterprise Edition

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

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

Adriano Reine Bueno Rafael Barros Silva

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

Servlets e Applets, funcionamento e comparativo.

JSP - JavaServer Pages

Java Servlets. Leonardo Gresta Paulino Murta

World Wide Web e Aplicações

Universidade da Beira Interior

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

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

Tecnologias para Web

!" # # # $ %!" " & ' ( 2

Prof. Roberto Desenvolvimento Web Avançado

JSP (Java Server Pages)

Aula 03 - Projeto Java Web

Tecnologias Web. Java Servlets

Scriptlets e Formulários

Programação Web Prof. Wladimir

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

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Prática Sobre Servlets e JSP

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas para internet e software livre

INTRODUÇÃO À TECNOLOGIA SERVLETS

JSP: JAVA SERVER PAGES

Arquitetura de uma Webapp

Curso de Aprendizado Industrial Desenvolvedor WEB

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

J2EE. Projeto de Sistemas de Software

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta

Servlets & JSP. Prof. Ramon Chiara

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Acessando um Banco de Dados

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Programando em PHP. Conceitos Básicos

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

20/08/14 JAVA SERVLETS CONCEITOS CONTEÚDO ARQUITETURA DE UMA APLICAÇÃO WEB ARQUITETURA DA APLICAÇÃO WEB

Introdução ao PHP. Prof. Késsia Marchi

Prof. Fellipe Aleixo

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

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

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

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

JSP: JAVA SERVER PAGES

Invocação de Métodos Remotos

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Programação para Internet II

Aula 8: Servlets (III)

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Desenvolvimento de aplicações web com JSP

Sistemas Distribuídos

Java Beans e Servlets

Java para Desenvolvimento Web

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

Orientação a Objetos

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

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

Interface Homem Máquina para Domótica baseado em tecnologias Web

Web Technologies. Tópicos da apresentação

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

FBV - Linguagem de Programação II. Um pouco sobre Java

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

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

Desenvolvendo Websites com PHP

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

Programação para Web Artefato 01. AT5 Conceitos da Internet

Kassius Vargas Prestes

Transcrição:

Prof.ª Daniela Barreiro Claro

A API JavaServlet é uma extensão da plataforma Java que permite que os desenvolvedores adicionem, nos servidores Web, mecanismos que estendam sua funcionalidade. Um servlet pode ser visto como uma applet que roda no lado do servidor Comparado com o Netscape s NSAPI, Microsoft s ISAPI, ou Módulos Apache Independente de plataforma Independente de Servidor

Um servlet pode fornecer vários serviços ao servidor Web como por exemplo: processar formulários de pedido; persistência de conexões HTTP; acesso a Banco de Dados; envio de e-mails automáticos; compatibilidade com vários protocolos (HTTP, URL, FTP)

HTTP Request Web Server Browser MeuServlet.class MeuServlet.class HTTP Response Página html Servlet Engine Java Virtual Machine

Os servlets oferecem várias vantagens sobre as aplicações baseadas em CGI, entre as quais podemos destacar: Independência de plataforma; performance; extensibilidade; facilidade de desenvolvimento;

Independência de Plataforma Os Servlets podem rodar em qualquer plataforma sem serem reescritos e até mesmo compilados novamente. Os servlets podem ser executados em vários sistemas operacionais (Linux, AIX, Ubuntu, Solaris) utilizando um grande número de servidores Web com acesso a vários tipos de bancos de dados.

Desempenho Um novo programa CGI é carregado para cada requisição ao servidor. Um Servlet é carregado apenas uma vez e para cada nova requisição este Servlet gera uma nova thread. O método init() da Servlet, assim como nas Applets, ocorre apenas na primeira vez que a classe é carregada.

Extensibilidade Com Java pode-se criar aplicações muito mais modulares, tirar todo o proveito da orientação a objetos e utilizar o grande número de APIs disponíveis. Utilizar outros recursos do Java, sendo o JavaMail, além do JavaIDL, etc

Servlets podem ser executados no mesmo processo do Servidor que o servidor HTTP Pode suportar uma maior quantidade de usuários logados utilizando menos recursos da máquina Servlets podem ser carregados de vários lugares: Máquina do Servidor Sites remotos Servlets não disparam um novo processo para cada requisição

Características Baseada na linguagem JAVA Não há dialetos diferentes nas linguagens de desenvolvimento para bases de dados diferentes Orientado a objetos Facilitam a prática da reutilização de código

Servlets podem tirar vantagens do JDBC, EJB, JavaMail, JavaIDL, RMI,... Tecnologias de terceiros baseado em JAVA poderão ser acessados Podem rodar em qualquer plataforma que tenha uma JVM Podem executar em ambiente Mobile

Forma mais comum de utilizar as Servlets: A mais popular é quando o próprio Web Server possui um servlet container. Antigamente, existia outra possibilidade de adicionar um Servlet engine ao servidor Web não compatível com Servlets e JSP.

O Web Server se comunica com o Servlet através de uma simples interface, javax.servlet.servlet. Esta interface consiste em três métodos principais: init() service() destroy()

O método init() O método init() é invocado quando o servlet é carregado pela primeira vez e somente na primeira inicialização do servlet. Este é um bom local para abrir conexões com uma base de dados ou declarar variáveis globais. O método recebe um argumento, uma referência ao objeto ServletConfig.

O Objeto ServletRequest O objeto ServletRequest contém os dados enviados pelo cliente. Estes dados são formados em pares de nome/valor e obtidos através do método: String getparameter(string) Este objeto ou uma especialização dele permite que se obtenha uma série de informações sobre o cliente.

O objeto ServletResponse Representa a resposta do Servlet para o cliente. Quando todo o processamento estiver concluído utiliza-se este objeto para enviar as informações. O método void setcontenttype(string) deve ser chamado para definir o tipo de resposta. O método getoutputstream( ) ou getwriter() deve ser usado para enviar os dados para o cliente.

O método service( ) O método service() manipula as requisições HTTP recebidas do cliente através do parâmetro ServletRequest e em seguida envia a requisição ao método desenvolvido especificamente para manipular aquele tipo de requisição. Funciona como o coração do Servlet, é nele onde são enviada as requisições e obtidas as respostas

O método service() Alguns destes métodos são: doget para requisições GET dopost para requisições POST doput para requisições PUT dodelete para requisições DELETE

O método destroy( ) É chamado antes que o servlet seja finalizado a fim de possibilitar a liberação dos recursos que estão sendo usados pela servlet. É importante usar alguns flags para certificar que todos os outros métodos já foram concluídos antes de finalizar o servlet.

Apache Tomcat IBM WebSphere Lotus Domino GO iplanet Weblogic Tengah Zeus W3C Jigsaw Paralogic WebCore Engines do IIS

Um Servlet é instanciado por um Container É iniciado via o método init() O método service() pode ser chamado várias vezes Pode ser limpo através do método destroy() Funcionamento Um cliente faz uma requisição no Servidor A requisição é direcionada para um Servlet pelo container Método Service() é chamado com dois objetos: request e response O Servlet envia uma resposta a requisição

Objeto Request Encapsula todas as informações do Cliente Acesso aos dados do FORM javax. servlet. ServletRequest { Enumeration getparameternames(); String getparameter( String paramname); String getremoteaddr(); } javax. servlet. http. HttpServletRequest { String getrequesturi(); Enumeration getheadernames(); String getheader( String headername); HttpSession getsession(); Cookie[] getcookies(); }

Objeto Response Encapsula toda a comunicação com o Cliente Seta os cookies Método para enviar redirecionamento de páginas, páginas de erro, etc. javax. servlet. ServletResponse { ServletOutputStream getouputstream(); PrintWriter getwriter(); void setcontenttype( String type); void setcontentlength( int length); }

Sessões Requisições feitas pelo usuário durante um determinado período public void doget( HttpServletRequest request, HttpServletResopnse response) throws ServletException, IOException { HttpSession session = request. getsession(); Carro carro = (Carro) session. getvalue( carro ); carro. additem( produto, quantidade); }

public class hello extends HttpServlet { } public String getservletinfo() { return Servlet Internamente"; } public void init(servletconfig config) throws ServletException { super.init(config); } public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { log( Dentro do DOGET"); res.setcontenttype("text/html"); PrintWriter os=res.getwriter(); os.println("<html>"); os.println("<head><title>olá Mundo!</title></head>"); os.println("<body bgcolor=<add8af>"); os.println("<h1>olá do Servlet</H1>"); os.println("</body></html>"); os.flush(); }

JavaServer Pages

JSP é uma tecnologia para a camada de apresentação dos dados, que permite misturar HTML estático com tags utilizando o Java. JSP não modifica os dados estáticos, o design da página continua o mesmo. Permite que aplicações Web sejam particionadas em componentes JavaScript misturado nas páginas JSP

Dados estáticos nunca são modificados no Servidor Os elementos dinâmicos sempre serão interpretados e modificados antes de chegar no cliente (browser) Páginas estáticas com extensão JSP Saída igual a extensão HTML Mais recursos pois o engine JSP vai executar o arquivo

Algumas vantagens do JAVA WO-RA Write Once, Run Anywhere Java API Tratamento de Erro Escalabilidade Página fica na memória, demais requisições invoca métodos e dispara threads Componentes JavaBeans - Separa a lógica de apresentação da lógica de negócios, além de separar os dados estáticos dos dados dinâmicos

Características Enfatiza a reutilização de componentes, principalmente JavaBeans e Enterprise JavaBeans; simplifica o desenvolvimento de páginas com tags personalizadas; inclusão dos benefícios de gerência de memória, robustez e segurança da plataforma java; alta performance pois o JSP é convertido em um Servlet para ser executado.

<HTML><BODY> <% if (a>b){ %> <h1> A variável A é maior que a variável B</h1> <br> <% }; %> </BODY></HTML>

<%! declarations %> Utilize esta tag para declarar métodos em uma página JSP. <%= expressão %> Esta tag imprime o valor de uma expressão. É corresponde ao out.println( texto ) do servlet. <% fragmento de código %> Todo o código desta TAG é inserido no método service() do servlet que será gerado.

Considerações Scriptlet que necessitam gerar saída <% %> deve ser através do objeto out Expression não terminam com ; O método out.println() foi abstraído Declaração tornam as variáveis e os métodos globais, com uma única inicialização Scriptlet não precisam seguir seqüência, ou seja os loops podem ser particionados e interagidos com HTML estático

<%@ include file= URL %> <%@ page [language= java ] [import= {package.class package.*},... ]%> <%jsp:forward page= pagina.html %> <%jsp:getproperty name= bean property= propriedade %> <%jsp:setproperty name= bean property= propriedade value= valor %> <%jsp:usebean id= bean scope= page...%>

Objetos implícitos request response pagecontext session application out config page exception Tipo ServletRequest ServletResponse PageContext HttpSession ServletContext JspWriter ServletConfig Object Throwable config Fonte: CITS Tecnologia

HTTP Request Web Server Browser teste.jsp teste.jsp HTTP Response Página html Container JSP JSP Runtime + Servlet Engine Java Virtual Machine

Web Server teste.jsp JSP Runtime + Servlet Engine Ao receber a primeira requisição, o container JSP interpreta o arquivo e gera um servlet. O servlet é compilado, carregado em memória e executado. As requisições seguintes utilizarão o servlet em memória. Java Virtual Machine

<%@ page import="java.sql.*" %> <%! String desc; %> <% desc = request.getparameter("desc"); if(desc == null) desc = ""; %> <jsp:usebean id= gc' scope='page' class= GeraCodigo'/> <% out.println( Saida do código: + GeraCodigo.getCodigo()); %>

Somente uma sintaxe no padrão XML Dois atributos mais comuns ID - Identifica o Action Element SCOPE - Define o ciclo de vida do elemento Page,request, session, application JavaBeans Action Utiliza JavaBean no lado do Servidor getproperties, setproperties

JavaBeans Action Exemplo <jsp:usebean id= meubean scope= session class= br.dclaro.meubean /> Procura uma instancia já previamente criada ou cria uma instancia do objeto requisitado Associa este objeto ao escopo definido, que são objetos implícitos Primeiro pesquisa o objeto pelo ID e SCOPE, caso não encontre cria o objeto especificado

<jsp:setproperty> Seta propriedades para um Bean Bean tem que ser definido anteriormente Exemplo < jsp:setproperty name= meubean property=nome value = Daniela /> Atributo param é utilizado para setar propriedades com o mesmo valor dos parâmetros de request

<jsp:getproperty> Retorna o valor de uma determinada propriedade Exemplo <jsp:getproperty name= meubean property=name/> Pode retornar de um bean, o valor de todas as propriedades <jsp:getproperty name= meubean property=*/>

Recursos externos utilizados pelo JSP <jsp:include> Insere a saída tanto dos dados estáticos quanto dinâmicos na página atual O código não é incluído e somente o resultado O código inserido é processado antes de ser incluído na página <jsp:forward> Termina a ação na página atual e redireciona para outro recurso como uma página estática, uma página jsp ou ainda um Servlet <jsp:forward page= date.jsp >

<jsp:plugin> Os plugins são executados no Cliente, através da JRE(Java Runtime Environment) Javabeans com o plugin executado no Cliente Javabeans com o usebean executado no Servidor O tipo de plugin pode ser uma Applet ou ainda um JavaBean

Principal propósito Enviar mensagens para o engine do JSP Não contém a lógica do negócio Não podem modificar o stream de saída Simplesmente avisam ao engine como as páginas JSP podem se comportar Suporta a sintaxe de JSP e de XML Possui o símbolo @

Diretiva PAGE Permite importar pacotes do JAVA Exemplo <% @page import= java.sql.* %> Diretiva Include Depende da posição na página que irá ser inserido o código O código é inserido e não o resultado Caso a pagina do include tenha sido modificada, a página atual deve ser recompilada para receber estas alterações

O ciclo de vida é composto por jspinit() Pode ser override(reescritos) Executado somente uma vez, antes de qualquer outra requisição Usual na criação de Pool de conexões _jspservice Criado e manipulado pelo engine do JSP Nunca deve ser manipulado pelo usuário jspdestroy() Pode ser override (reescrito) Quando o servlet é descarregado da JVM. O mesmo que o Applet

Objeto Request <%String nome = request.getparameter( name );%> Caso o parâmetro não exista, um resultado nulo é retornado Mantém as informações do Servidor Obter as informações dos cookies Objeto Response Resultados para o browser gerados pela página dinâmica Setar as informações nos cookies

Servidor gera um ID unique para as sessões O servidor também seta um cookie ou URL rewriting para armazenar este ID da sessão Se o cookie não estiver habilitado, o engine JSP redireciona para URL rewriting session.invalidate() Mantém a sessão no servidor por 30 minutos(configurável no Servidor Web)

Conexão para Banco de Dados Drivers nativos ou ODBC Versão 2.0 Permite navegar para frente e para trás com o ResultSet Utiliza SQL3 Atualiza tabelas utilizando Java methods Pode se deslocar para uma linha específica do ResultSet Conection Pooling

Componentes padronizados Possuem suas próprias características de desenvolvimento Podem se intercomunicar através das suas interfaces Componentes padronizados tornam-se fáceis de plugar em outras aplicações Reusabilidade de código inerente a sua criação

É uma classe JAVA que adere às convenções de desenvolvimento e nomenclaturas Qualquer classe java que reflita as convenções dos JavaBeans é um JavaBean Segue um paradigma de programação

O método Construtor Sem parâmetros Propriedades e Métodos de acesso As propriedades são a representação externa do estado interno do JavaBean Para cada propriedade tem métodos de acesso, como SET e GET, IS Os estados internos nunca são acessados diretamente Visibilidade das propriedades private, métodos públicos getnome(), setnome(), isnome() - Property Distribuição em um arquivo.jar

Enterprise JavaBeans São JavaBeans distribuídos em uma rede, utilizando para isso o RMI ou CORBA, arquitetura de objetos distribuídos Necessita de um container especial para trabalhar com EJB

1) Incluir o campo Endereço no contato; 2) Alterar os dados dos contatos; 3) Excluir um contato.