Programação para Internet Flávio de Oliveira Silva, M.Sc.

Tamanho: px
Começar a partir da página:

Download "Programação para Internet Flávio de Oliveira Silva, M.Sc."

Transcrição

1 JavaServer Pages Basicamente JavaServer Pages (JSP), são páginas Web que contém código Java Este código é executado no servidor, antes da resposta ser devolvida ao Browser A tecnologia JSP é utilizada para a geração dinâmica de código HTML. JSP é uma extensão dos Servlets Java Um documento JSP deve finalizar com a extensão ".jsp" (.jspx) A tecnologia faz um encapsulamento dos servlets, permitindo que o código HMTL e o código Java possam coexistir de uma maneira harmônica Desta forma é possível que Web Designers possam utilizar a linguagem Java de forma sutil. Uma página JSP é um documento texto que descreve como processar um pedido (request) a fim de criar uma resposta (response) 137 JavaServer Pages Em linha gerais a tecnologia Servlet, permite que o código HTML será inserido no código Java A tecnologia JSP permite que o código Java seja inserido no HTML a fim de ser processado pelo Servidor Exemplo de código JSP (hello.jsp) <HTML> <BODY> <% out.println("hello JSP WORLD!"); %> </BODY> </HTML> Quando o browser solicita a página JSP, o servidor, que deve ser um Web Contêiner, realizará algumas operações especiais, antes de devolver a resposta. 138

2 JavaServer Pages Processo Execução 1. Inicialmente uma página JSP é solicitada pelo Navegador (hello.jsp) 2. O contêiner de Servlets/JSP recupera a página. Caso seja a primeira vez que a mesma é carregada um servlet é gerado (hello_jsp.java). 3. Em seguida o servlet é compilado (hello_jsp.class) 4. O servlet então é executado e o código HTML é então produzido 5. Finalmente a resposta é enviada ao navegador 6. Caso o servlet já exista e a página JSP não tenha sido modificada, o processo é abreviado e consiste apenas em executar o servlet e devolver a resposta ao navegador 139 JavaServerPages Geração do Código No eclipse o código é gerado na seguinte pasta: \workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\catalina \localhost No Tomcat o código é gerado na seguinte pasta: \tomcat\work\catalina\localhost 140

3 JavaServer Pages Uma página JSP contém dois tipos de elementos Elementos Template Parte estática de uma página WEB Pode ser escrito utilizando HTML, texto; WML; XML Em linhas gerais é tudo aquilo que existe na página e que não é elemento JSP Elementos JSP Scripts Diretivas Page Include Taglib Ações Padrão Ações Personalizadas (Tag Extension) JSTL 141 JavaServer Pages Scripts Script é um mecanismo através do qual é possível a adição de pequenas partes de código (normalmente Java) em uma página JSP Uma página JSP não deve conter apenas Scripts, pois acaba transformando-se se em código Java, dificultando desta forma a manutenção da mesma A adição do código Java pode ser feita utilizando uma sintaxe própria. Os elementos para a criação dos scripts podem indicar: Scriplets (Código Java) Declarações Expressões Comentários Linguagem de Expressões (JSP EL) 142

4 Scripts - Sintaxe Sintaxe básica da linguagem JSP ELEMENTO DESCRIÇÃO <%... %> Utilizado para inserir CÓDIGO Java em uma página JSP <%=... %> Utilizado para inserir EXPRESSÕES. O resultado da expressão é adicionado à página de resposta. Também utilizado para indicar atributos de ações durante que serão enviados com o pedido <%!... %> <%... %> ${...} Utilizado para inserir DECLARAÇÕES. Desta foram é possível declarar variáveis de instância e métodos na classe que implementará a página JSP Utilizado para inserir COMENTÁRIOS. Permite remover um bloco de código JSP Utilizado pela Linguagem de Expressões JSP (JSP EL) Permite uma nova forma para escrita e uso de expressões em uma página JSP 143 Scriplets Exemplo Código Java A parte relativa ao código java está dentro dos elementos Scriptlets Dentro dos elementos é necessário código java Qualquer código HTML que será visto na página deverá ser colocado fora do elementos de Scriptlets O texto que não está entre os elementos <% %> pode ser lido como out.write(texto); <html> <head> <title>utilizando Java em uma Página JSP</title> </head> <body> <% for (int i=0; i<5;i++) i { %> <h1>repetido 5 Vezes.<h1> <% } %> </body> </html> 144

5 Scriplets Exemplo 2 Código Java <html> <body> Good <% java.util.calendar currtime = new java.util.gregoriancalendar(); if (currtime.get(currtime.hour_of_day) < 12) { %> Morning! <% } else if (currtime.get(currtime.hour_of_day) < 18) { %> Afternoon! <% } else { %> Evening! <% } %> </body> </html> 145 JSP - Expressões Exemplo Expressões JSP são elementos que inicialmente são avaliados (executados) pelo contêiner O resultado da expressão é então inserido na página JSP, no local onde havia anteriormente a expressão O resultado da expressão é sempre convertido em String, caso isto não seja possível ocorrerá um erro. <% java.util.calendar currdate = new java.util.gregoriancalendar(); int month = currdate.get(currdate.month)+1; int day = currdate.get(currdate.day_of_month); int year = currdate.get(currdate.year); %> <html> <body> <h1>a Data Atual é: <%= month %>/<%= day %>/<%= year %> </h1> </body> </html> 146

6 JSP - Expressões Exemplo 2 Com as expressões é possível acessar variáveis e utilizar métodos <% String Stime; java.util.calendar currtime = new java.util.gregoriancalendar(); if (currtime.get(currtime.hour_of_day) < 12){ Stime = "Morning!"; } else if (currtime.get(currtime.hour_of_day) < 18) { Stime = "Afternoon!"; } else { Stime = "Evening!"; } %> <html> <body> Good <%= Stime %> </body> </html> 147 JSP - Comentários Exemplo Os comentários podem ser feitos utilizando recursos de HTML; da linguagem Java ou elementos JSP <% %> Os elementos comentários feitos com elementos JSP não aparecerão no código do Servlet gerado para a página JSP <html> <body> <h1> COMENTÁRIOS - JSP <h1> <!-- Este comentário aparece na página de resposta --> <% //Esta linha aparecerá no código do Servlet gerado para a página JSP. %> <% /* %> Este bloco está comentando... Este texto aparecerá no código do Servlet gerado para a página JSP. <% */ %> <%-- Esta linha não aparecerá no código do Servlet. --%> <%-- <% out.println("este bloco não será visto no código Java gerado."); %> --%> <body> <html> 148

7 Objetos Implícitos JSP Scripts Utilizados em Scripts (Scriplets) JSP Nome Classe Descrição Escopo Objeto application javax.servlet.servletcontext Representa o contexto do Servlet existente no Contêiner Aplicação session javax.servlet.http.httpsession Cria um ambiente que permite a troca de informações entre diferentes iterações do tipo pedido/resposta entre o cliente o servidor web. Sessão Somente válida para o protocolo HTTP request javax.servlet.http.httpservletrequest (depende do protocolo Ex: HTTP) Representa o pedido feito pelo cliente Pedido response javax.servlet.http.httpservletresponse (depende do protocolo Ex: HTTP) Representa a resposta que será enviada ao cliente Página Representa o contexto de uma página, pg incluindo pagecontext javax.servlet.jsp.pagecontext todos os outros objetos implícitos, métodos e Página recursos da página Web out javax.servlet.jsp.jspwriter Representa a stream da saída padrão Página config javax.servlet.servletconfig Representa a configuração do Servlet responsável pela criação da página JSP Página page java.lang.object Representa a instância da página. Seu sinônimo é a palavra this para uso nos Scripts Página 149 Objetos Implícitos out - Exemplo Não é necessário definir o objeto out, visto que o mesmo é declarado e inicializado, de forma implícita, no momento da geração do código da página JSP Exemplo de código JSP (hello.jsp) <HTML> <BODY> <% out.println("hello JSP WORLD!"); %> </BODY> </HTML> 150

8 Objeto Implícito request Exemplo No exemplo abaixo dois parâmetros são enviados firstname e lastname. Os mesmos são obtidos utilizando o objeto implícito param <% // Recupera os parâmetros String firstname = request.getparameter("firstname"); String lastname = request.getparameter("lastname"); %> <html> <body> <h1>olá <%=firstname%> <%=lastname%>!</h1> <p>seja bem vindo ao nosso site!</p> </body> </html> 151 Objeto session Exemplo utilizando Scriplet <html> <head> <title>sessão - Exemplo</title> </head> <body> <% //Verifica se já existe atributo chamado "COUNT" nesta sessão Integer count = (Integer)session.getAttribute("COUNT"); if ( count == null ) { // Caso não exista, um objeto é criado e adicionado à sessão count = new Integer(1); session.setattribute("count", count); } else { // Caso exista, o seu valor é incrementado e atualizado na sessão. count = new Integer(count.intValue() + 1); session.setattribute("count", count); } out.println("<b>esta página foi acessada: " + count + " vezes nesta sessão.</b>"); %> </body> </html> 152

9 Linguagem de Expressões JSP EL A especificação JSP 2.0 oferece uma linguagem de expressões (JSP Expresssion Language JSP EL) A JSL EL utiliza os delimitadores ${...} Dentro destes delimitadores é possível uma série facilidades como: Avaliar (executar) expressões lógicas, relacionais e aritméticas Acessar métodos de objetos A JSP EL facilita a escrita de páginas JSP e além disso é possível criar páginas sem os elementos Scriplets (<%...%>), Declarações (<%!...%>) e Expressões (<%=...%>), vistos anteriormente. Exemplo: SINTAXE TRADICIONAL SINTAXE USANDO JSP EL request.getattribute("nome") ; ${nome} gerente.getpessoa().getnome(); ${gerente.getpessoa.nome} 153 JSP / JSP EL Objetos Implícitos A JSP EL realiza o acesso a vários objetos que estão implicitamente disponíveis em uma página JSP Estes objetos são automaticamente declarados em uma página JSP e estão disponíveis para pelos elementos definidos pela JSP Desta forma pode-se fazer uso do mesmos diretamente no código sem que seja necessária a sua declaração Certos objetos são de uso próprio pela JSP EL e certos são compartilhados entre os scripts JSP e as expressões definidas pela JSP EL Cada objeto possui um escopo próprio, indicando o tempo de duração dos objetos, variáveis e atributos Escopos Página (PAGE_SCOPE) Pedido (REQUEST_SCOPE) Sessão (SESSION_SCOPE) Aplicação (APPLICATION_SCOPE) 154

10 JSP / JSP EL Objetos Implícitos - Escopo Página (PAGE_SCOPE) Objetos com este escopo são acessíveis somente na página em que foram criados. Todas as referências são destruídas após o envio da resposta ao cliente pela página JSP ou então caso o pedido seja encaminhado para outro local Pedido (REQUEST_SCOPE) Objetos com este escopo são acessíveis no momento em que o processamento do pedido é feito. Assim que o pedido é processado as referências para os objetos são destruídos Caso o pedido seja encaminhado (forwarded) para uma outra página dentro da mesma aplicação os objetos com este escopo podem ser acessados Sessão (SESSION_SCOPE) Objetos com este escopo são acessíveis por várias diferentes páginas, deste que tenha sido criadas por uma mesma sessão. Todas as referências para os objetos são destruídas após ao final da sessão. Aplicação (APPLICATION_SCOPE) Objetos com este escopo são acessíveis por todos os servlets (e páginas JSP) que estão em uma mesma aplicação, mesmo que não exista uma sessão. Objetos possui o mesmo tempo de vida que o objeto ServletContext 155 JSP EL - Variáveis A linguagem JSP EL permite o acesso direto a qualquer variável armazenada nos vários escopos (Page, Request, Session, Application) Desta forma a expressão ${product} equivale à seguinte linha de código: <% pagecontext.findattribute("product"); %> A procura é feita na seguinte ordem de escopo: 1. Page 2. Request 3. Session 4. Application A primeira instância encontrada é retornada 156

11 JSP EL - Operadores Aritméticos + adição - subtração * multiplicação / divisão (div) % módulo(mod) Lógicos and or not Relacionais ==!= < (lt) > (gt) <= (lte) >= (gte) 157 JSP EL - Operadores Empty (Vazio) Retorna verdadeiro caso um elemento seja nulo ou vazio Caso um objeto do tipo Map; Collection; array é vazio ou seja não possui elementos Caso Uma String seja nula ou vazia (comprimento = 0) Exemplo: ${empty user} Condicional Avalia (executa a expressão) B ou C, dependendo do resultado da avaliação de A (A? B : C) bool-expr? true-expr : false-expr Exemplo: ${numitems!= 0? sum/numitems : 0} Equivale a if (boolexpr) ){ return trueexpr; } else { return falseexpr; } 158

12 JSP EL Operadores Precedência Da esquerda para a direita, de cima para baixo: []. () - (unário) not! Empty * / div % mod + - (binário) < > <= >= lt gt le ge ==!= eq ne && and or? : 159 Objetos Implícitos JSP EL Os objetos obtidos são da classe java.util.map O mapa contém pares de valores do tipo (key, value) Nome Objeto Descrição pagecontext Representa o contexto de uma página, incluindo todos osoutrosoutros objetos implícitos, métodos e recursos da página Web requestscope Um mapa (map) que o nome dos atributos existentes no pedido e seus valores pagescope Um mapa (map) que o nome dos atributos existentes na página e seus valores sessionscope Um mapa (map) que o nome dos atributos existentes em uma sessão e seus valores applicationscope Um mapa (map) que o nome dos atributos existentes em uma aplicação e seus valores param Uma mapa que contém um parâmetro utilizado pela Página. Equivale ao método: ServletRequest.getParameter(String name) paramvalues Uma mapa que contém todos os valores de um dado parâmetro utilizado pela Página. Equivale ao método: ServletRequest.getParameterValues(String name) header Uma mapa que contém todos os nomes dos headers em uma página. pg Equivale ao método: HttpServletRequest.getHeader(String name) headervalues Uma mapa que contém o nome de um header e um String[] com seus seus valores. Equivale ao método: HttpServletRequest.getHeaders(String name) cookie Um mapa que contém os parametros e valores de um único cookie. Equivale ao método: HttpServletRequest.getCookies() initparam Um map com os parâmetros de inicialização do contexto, juntamente com seus valores. Equivale ao método: ServletContext.getInitParameter(String name) 160

13 Objetos Implícitos JSP EL A partir do objeto pagecontext existente na JSP EL é possível acessar os outros objetos implícitos existentes na linguagem JSP (request; response; session; application; out; config; page) A linguagem apresenta os operadores. e [] que permite o acesso a métodos e atributos de objetos Para acessar os atributos de um objeto (bean) pode ser utilizada a seguinte sintaxe: person.name (linguage java - person.getname();) O operador [] permite o acesso ao dicionários (java.util.map e java.util.hashtable) da seguinte forma: table["person"] (linguagem java - table.get("person ) Este operadores são intercambiáveis e é possível a seguinte utilização: person.name == person["name"] 161 Objeto param JSP EL Exemplo No exemplo abaixo dois parâmetros são enviados firstname e lastname. Os mesmos são obtidos utilizando a JSP EL Operador. <html> <body> <h1>olá ${param.firstname} ${param.lastname}!</h1> <p>seja bem vindo ao nosso site!</p> </body> </html> No caso de parâmetros a sintaxe do operador. apresenta uma diferença e neste caso o nome do parâmetro deve ser fornecido como uma String (" ") <html> <body> <h1>olá ${param["firstname"]} ${param["lastname"]}!</h1> <p>seja bem vindo ao nosso site!</p> </body> </html> 162

14 JSP Diretivas Diretivas são mensagens para o contêiner de Servlets e JSP As diretivas possuem a seguinte sintaxe: <%@ directivename {attribute="value"} %> As diretivas afetam a página de maneira global Existem três diferentes tipos de diretivas page Permite a configuração da linguagem JSP include Utilizada para inserir texto e/ou código JSP em tempo de compilação taglib JSP possuem um mecanismo que permite a extensão dos marcadores (tags) utilizados pela linguagem. Cada marcador (tag) possui um código java associado ao mesmo, desta forma, ocorre uma separação entre o código JSP e a linguagem Java Os arquivos contendo marcadores são conhecidos como Tag Libraries (bibliotecas de Tags) 163 Diretiva - page Define uma série de parâmetros que afeta uma página JSP Uma página pode possuir várias diretivas page Possui a seguinte sintaxe: <%@ page {attribute ="value"} %> O valor attribute, possui os seguintes valores: language="scriptinglanguage" pageencoding (IANA Character Sets) iselignored="true false" extends="classname" import="importlist" session="true false" buffer="none size in kb" autoflush="true false" isthreadsafe="true false" info="text" errorpage="error_url" iserrorpage="true false" contenttype="ctinfo" (IANA MIME Media Types) 164

15 Diretiva page - Atributos ATRIBUTO DEFINIÇÃO language="scriptinglanguage" Indica qual a linguagem será utilizada para compilar o arquivo JSP. A única linguagem atualmente disponível é Java. pageencoding Indica o conjunto de caracteres que será utilizado na página JSP. O valor padrão é "ISO ". Deve ser um valor válido definido pela IANA iselignored Permite desabilitar bl ou não a linguagem de expressões JSP (JSP EL) extends="classname" Define uma classe pai que a página JSP estenderá. Deve se utilizar o nome completo da classe import="importlist" session="true false" buffer="none size in kb" autoflush="true false" isthreadsafe="true false" info="text" errorpage="error_url" iserrorpage="true false" contenttype="ctinfo" Indica uma lista de classes que pode ser importada para a página JSP. Semelhante ao #import da linguagem Java. O seguinte pacotes são importados automaticamente: java.lang.*, javax.servlet.*; javax.servlet.jsp.*; javax.servlet.http.* Indica se a página utilizará o objeto Sessão. O valor default é true. Caso o atributo seja false então não é possível utilizar sessões com a determinada página Indica o tamanho máximo do buffer de saída (out). O valor default é 8 KB Indica se o buffer será esvaziado. O valor default é true. Caso o buffer fique cheio uma exceção será disparada Indica que uma mesma página pode receber múltiplas requisições simultâneas. O valor default é true. Caso false seja utilizado então a página poderá ser requisitada por um único usuário de cada vez. Representa uma informação sobre a página que pode ser acessado através do método Servlet.getServletInfo() Indica que a página é uma página de erro e que pode ser utilizada para tal por outra página JSP. O padrão é false. Em caso de true um objeto implícito exception é declarado para a página Indica que a página é uma página de erro. O padrão é false Representa o tipo MIME e o conjunto de caracteres da resposta enviada ao cliente 165 Diretiva page - Exemplos <%@ page info="página Inicial" %> <%@page pageencoding="utf-8"%> <%@ page contenttype="text/xml" %> <%@ page contenttype="text/html:charset=iso " %> <%@ page language="java" %> <%@ page import="java.sql.*" %> <%@ page import="java.sql.*,java.util.*" %> <%@ page session="true" %> <%@ page buffer="16" %> <%@ page buffer="16kb" %> <%@ page isthreadsafe="false" " %> <%@ page errorpage="handleerror.jsp" %> <%@ page iserrorpage="true" %> <%@ page extends="jspsuperclass"%> 166

16 Diretiva - include Permite a inclusão de texto no momento em que a página é gerada A diretiva include é utilizada para adicionar conteúdo estático à página JSP Através desta diretiva é possível dividir o código de uma página em vários componentes que são agregados de acordo com o necessário Utiliza a seguinte sintaxe: <%@ include file="relativeurlspec" %> Exemplo: <%@ include file="copyright.html" %> Para adicionar conteúdo dinâmico (e também para estático) deve ser utilizada a ação padrão <jsp:include>. Desta forma esta ação deverá ser utilizada para incluir uma página JSP em outra. Esta ação possui a seguinte sintaxe: <jsp:include page="includedfilename" flush="true"/> O atributo flush indica se o buffer de saída deve ser esvaziado antes da inclusão ou não. Seu valor padrão é false 167 Diretiva - taglib Esta diretiva permite estender o conjunto de marcadores (tag) que é interpretado pelo contêiner de servlets/jsp. Desta forma novas ações podem ser criadas. O conceito é separar o código Java da criação da página. Desta forma cada tag que se parece com um marcador HTML ou XML, na realidade contém um código Java associado ao mesmo. Para que o contêiner possa interpretar corretamente as tags é necessário informar a localização de uma arquivo que descreve cada uma destas tags (tag library) Desta forma a diretiva carrega o arquivo que fica então disponível para uso na página JSP 168

17 Diretiva - taglib Utiliza a seguinte sintaxe: <%@ tablib prefix="prefixname" uri="taglibraryuri" %> Exemplo: <%@ taglib prefix="c" uri=" %> O prefixo deve ser único em uma página JSP pois será utilizado como uma referência para a tag library incluída naquela página. Na página JSP qualquer tag existente na tag library, incluída, poderá ser acessada da seguinte forma: <c:tagname>... </c:tagname> 169 Diretiva taglib Para utilizar uma tag library é necessário configurar a mesma no contexto no contêiner de Servlets/JSP Para isto é necessário: Criar uma pasta tld, dentro da pasta WEB-INF. Nesta pasta deve ser colocado o arquivo TLD (Tag Library Descriptor - tldfilename) que descreve a tab libray (versão; descrição; etc.) e cada uma das tags (nome, parâmetros, classe java) Na pasta lib, existente dentro da pasta WEB-INF, deve ser colocado os aqruivos.class e/ou.jar que contém a implementação de cada tag. Caso este arquivo possua dependências que não estejam disponíveis é necessário que os mesmos sejam também colocados na pasta lib Finalmente é necessário colocar no arquivo WEB.XML as informações sobre a tag library disponível para aplicação da seguinte forma: <taglib> <taglib-uri> <taglib-location>/web-inf/tld/tldfilename.tld</taglib-location> </taglib> 170

18 JSP Ações Padrão Ação padrão são tags (marcadores) pré-definidos que são utilizados para encapsular um código Java. Estas tags ao serem adicionadas à página, incluem algum comportamento padrão, definido, pela tag. As ações são escritas classes Java existentes no contêiner de Servlets/JSP. Todas as ações padrão começam com o prefixo jsp <jsp:actionname... Estas ações são externas ao Servlet criado e são realizadas em tempo de execução. 171 Ações Padrão jsp:include Permite a inclusão de conteúdo dinâmico/estático em tempo de execução Possui a seguinte sintaxe: <jsp:include page="urlspec" flush="true false"/> ou então <jsp:include page="urlspec" flush="true false"> <jsp:param name="name" value="value" /> </jsp:include> O valor "urlspec" é relativo ao contexto da aplicação, ou seja, a partir da raiz da aplicação. É possível enviar parâmetros juntamente com a operação de inclusão, utilizando a ação padrão <jsp:param, conforme mostrado acima O parâmetro pode ser obtido de duas formas: <%... request.getparameter("name"); %> //usando Scripts ${param["name"]} //usando JSP EL ${param.name} //usando JSP EL 172

19 Ações Padrão jsp:forward Permite transferir a requisição para outra página ao invés de retornar para a origem A requisição pode ser encaminhada para outra página JSP ou então para um Servlet Este recurso pode ser utilizado para escolher entre várias possíveis repostas e então a requisição é encaminhada para a página JSP ou Servlet que tratarão a requisição incial. Possui a seguinte sintaxe: <jsp:forward page="destinationpage"/> ou então <jsp:forward page="destinationpage"> <jsp:param name="name" value="value" /> </jsp:include> O valor "urlspec" é relativo ao contexto da aplicação, ou seja, a partir da raiz da aplicação. 173 Ações Padrão jsp:forward Permite transferir a requisição para outra página ao invés de retornar para a origem A requisição pode ser encaminhada para outra página JSP ou então para um Servlet Este recurso pode ser utilizado para escolher entre várias possíveis repostas e então a requisição é encaminhada para a página JSP ou Servlet que tratarão a requisição inicial. Possui a seguinte sintaxe: <jsp:forward page="destinationpage"/> ou então <jsp:forward page="destinationpage"> jsp:param name="name" value="value" /> </jsp:include> Exemplo: <% String whereto = "/templates/"+somevalue; %> <jsp:forward page="<%= whereto %>" /> <jsp:forward page="${whereto}" /> 174

20 jsp:forward Usando Scripts <html> <body> <% if ( (request.getparameter("perfil")).equals("professor") ) { q g p q p %> <jsp:forward page="professor.jsp"> <jsp:param name="user" value='<%=request.getparameter("user")%>'/> </jsp:forward> <% } else { %> <jsp:forward page="aluno.jsp"> aluno.jsp <jsp:param name="user" value='<%=request.getparameter("user")%>'/> </jsp:forward> <%} %> </body> </html> 175 jsp:forward Usando JSP EL <html> <body> <% if ((request.getparameter("perfil")).equals("professor")){ equals("professor")){ %> <jsp:forward page="professor.jsp"> <jsp:param name="user" value='${param["user"] }'/> </jsp:forward> <% } else { %> <jsp:forward page="aluno.jsp"> "> <jsp:param name="user" value='${param["user"]}'/> </jsp:forward> <% } %> </body> </html> 176

21 JavaBeans JavaBean é um componente de software reutilizável criado segundo a especificação JavaBeans. Pode-se dizer que JavaBean é uma classe Java que construída segundo um padrão pré-definido. No geral um JavaBean deve satisfazer os seguintes requisitos: Implementar a interface java.io.serializable Possuir um construtor padrão, que não recebe nenhum argumento Possuir propriedades (atributos) que podem estar disponíveis para leitura/escrita; somente leitura ou somente escrita A leitura (acesso) às suas propriedades é feita através de métodos getters (getxxx) que devem possuir a seguinte sintaxe: PropertyClass propname; PropertyClass getpropname(); A escrita (modificação) de suas propriedades d é feita através de métodos setters (setxxx) que devem possui a seguinte sintaxe: PropertyClass propname; setpropname(propertyclass propnewvalue) Deve estar contido em um pacote, logo é necessário que exista no seu código a seguinte expressão: package PackageName; 177 JavaBeans Através dos JavaBeans é possível encapsular dados recebidos de outras partes da aplicação Estes dados podem então ser repassados entre páginas JSP e Servlets usando Scripts JSP ou então utilizando a JSP EL Podem ser usados com JSP para remover grande parte do código Java de uma página JSP O conceito de JavaBeans engloba outros aspectos não relacionados porém o desenvolvimento aplicações Servlets/JSP 178

22 JavaBean - Exemplo package model; public class User implements java.io.serializable { private String name; } private String password; public User(){ this.name = ""; this.password = ""; } public String getname(){ return this.name; } public String getpassword(){ return this.password; } public setname(string n){ name=n; n; } public setpassword(string p){ password=p; } 179 JavaBean Ações JSP JSP possui algumas ações que permitem a manipulação dejavabeans jsp:usebean jsp:getproperty jsp:setproperty t Através destas ações é possível Criar Novos objetos (beans) Acessar os valores de suas propriedades Modificar as propriedades armanazenadas em um JavaBean Podem ser usados com JSP para remover grande parte do código Java de uma página JSP 180

23 jsp:usebean Permite adicionar uma instância de um objeto (JavaBean) a uma página JSP Utiliza a seguinte sintaxe: <jsp:usebean id="name" scope= "scopevalue" class= "classname" /> O valor id deve ser único em uma página JSP. A partir deste valor é possível acessar o objeto. Ao indicar um nome para o bean, o contêiner procurar por este nome e caso não encontre um novo bean é criado O escopo indica o tempo de duração do bean. É possível utilizar os seguintes valores para o escopo:page; request; session; application. O escopo padrão é o escopo "page" O valor classname indica no nome da classe Java que implementa o bean. Deve conter o nome completo da mesma a partir da pasta /WEB-INF/Classes (mypackage.classname) Além disso esta ação criar uma variável que fica disponível para os Scripts JSP Exemplo: <jsp:usebean id="mybean" class="model.user"/> 181 jsp:getproperty Permite acessar as propriedades de um bean. Além disso o valor da propriedade acessada é então convertido para String e colocado na saída padrão(out) a fim de ser impresso em uma página Utiliza a seguinte sintaxe: <jsp:getproperty name="beanid" property="propertyname"/> O valor beanid equivale a um bean, válido e existente Indica o nome da propriedade associada ao Bean. Equivale ao nome do atributo existente no bean. O beanid informado será procurado em todos os escopos disponíveis na página JSP Exemplos: <jsp:getproperty name="mybean" property="name"/> <%= ((User)request.getAttribute("myBean")). getname() %> <%= mybean.getname() %> 182

24 jsp:setproperty Permite modificar as propriedades encapsuladas em bean. Utiliza a seguinte sintaxe: <jsp:setproperty name="beanid" property="propname" value="propvalue" /> Exemplo: <jsp:setproperty name="mybean" property="name" value="flavio"/> A partir dos parâmetros enviados para uma página JSP é possível enviar os valores diretamente para um bean (que deve ser inicialmente criado). Uma parâmetro recebido pode ser passado diretamente para um Bean utilizando a seguinte sintaxe: <jsp:setproperty name= "Id" param="parname" property="propname" /> Exemplo: <jsp:setproperty name="mybean" param="user" property="name"/> Caso o nome dos parâmetros sejam exatamente iguais ao atributos do bean então é possível utilizar a seguinte sintaxe: <jsp:setproperty name= " beanid" property= " * " /> Exemplo: <jsp:setproperty name="mybean" property="*"/> 183 jsp:setproperty No momento em que um bean é criado é possível ajustar as suas propriedades utilizado a tag jsp:setproperty Desta forma o objeto é construído e seus atributos são ajustados da seguinte forma: <jsp:usebean id="mybean" class="model.user"> <jsp:setproperty name="mybean" property="name" value="flavio"/> <jsp:setproperty name="mybean" property= "password" value="123"/> </jsp:usebean> 184

25 Ações Personalizadas Tag Extension As ações Padrão facilitam a utilização da JSP pois o código das páginas fica centralizado em marcadores (tags) e o código Java fica separado do código existente na página JSP O conjunto de ações padrão disponíveis pela especificação JSP é insuficiente, mesmo para pequenas tarefas. A especificação prevê a criação de novos marcadores (tags) Desta forma é possível associar uma série de funcionalidades às páginas criadas com JSP Normalmente estes novos marcadores são agrupados e conhecidos como Tag Libraries Além de ser possível a criação de novas Tags é possível a utilização de várias Tag Libraries i disponíveis, i para as mais variadas necessidades. d Existe uma especificação que um contém um conjunto de tags que normalmente utilizados em aplicações JSP, conhecida como JSTL (JavaServer Pages Standard Tag Library) 185 Diretiva taglib JSTL 1.1 Servlets 2.4 JSP 2.0 (Tomcat 5.x) Para utilizar uma tag library é necessário configurar a mesma no contexto no contêiner de Servlets/JSP Para isto é necessário: Criar uma pasta tld, dentro da pasta WEB-INF. Nesta pasta deve ser colocado o arquivo TLD (Tag Library Descriptor - tldfilename) que descreve a tab libray (versão; descrição; etc.) e cada uma das tags (nome, parâmetros, classe java) Na pasta lib, existente dentro da pasta WEB-INF, deve ser colocado os arquivos.class e/ou.jar que contém a implementação de cada tag. JSTL jstl.jar e standard.jar Caso este arquivo possua dependências que não estejam disponíveis é necessário que os mesmos sejam também colocados na pasta lib Finalmente é necessário colocar no arquivo WEB.XML as informações sobre a tag library disponível para aplicação da seguinte forma: <taglib> <taglib-uri> <taglib-location>/web-inf/tld/tldfilename.tld</taglib-location> </taglib> 186

26 Diretiva taglib JSTL 1.2 Servlets JSP 2.1 (Tomcat 6) Para utilizar uma tag library é necessário configurar a mesma no contexto no contêiner de Servlets/JSP Para isto é necessário: Na pasta lib, existente t dentro da pasta WEB-INF, deve ser colocado os arquivos.class e/ou.jar que contém a implementação de cada tag. jstl-impl-1.2.jar e jstl-api-1.2.jar Conteiner realizará a procura dos arquivos TLDs a paritr da pasta /WEB-INF Caso exista um arquivo JAR dentro desta pasta o contêiner fará a procura pelos arquivos TLDs na pasta /META-INF Este comportamento é válido a partir da JSP JSTL JSP Standard Tag Library A JSTL (JavaServer Pages Standard Tag Library) define um conjunto de tags, que normalmente são utilizados por aplicações JSP. A JSTL engloba quatro tag libraries que possuem diferentes funcionalidades LIBRARY NAME FUNCIONALIDADES Ações para seleção (if/then); saída de dados; criação e destruição de objetos em uma página JSP; manipulação de propriedades de JavaBeans; tratamento Core de exceções; iteração sobre coleções; construção de URLs a acesso ao seu conteúdo Formatting Internacionalização e formatação de dados; recursos para apresentação de dados em diferentes localidades (idiomas); Formatação de dados (numéricos; percentuais; monetários; datas) segundo as características de cada localidade Acesso a banco de dados: Especificar uma fonte de dados; consultas(query); SQL atualizações (update); transações(transactions) e iteração sobre os dados obtidos em uma consulta Parsing de documentos XML; Acesso de informações através de XPATH e XML transformação utilizando XSTL Functions Manipulação de Strings e informações sobre itens em uma coleção A documentação para todas as tags está disponível no link abaixo: JSTL Documentação Completa 188

27 JSTL - Versões JSTL 1.2 J2EE 5/Servlets 2.5 / JSP 2.1 / Tomcat 6 Arquivos jstl-impl-1.2.jar jstl-api-1.2.jar JSTL 1.1 J2EE 1.4/ Servlets 2.4 / JSP 2.0 / Tomcat 5.0 e 5.x standard.cgi Arquivos jstl.jar standard.jar 189 JSTL JSP Standard Tag Library Core Contém tags que executam operações de seleção (if/then) e controle (foreach; choose; etc.) AÇÃO (TAG) DESCRIÇÃO c:catch Catches exceptions thrown in the action's body c:choose Chooses one of potentially many code fragments c:foreach Iterates over a collection of objects, or iterates a fixed number of times c:fortokens Iterates over tokens in a string c:if Conditionally performs some functionality c:import Imports a URL c:otherwise Specifies default functionality in a <c:choose> action c:out c:param Sends output to the current JspWriter Specifies a URL parameter for <c:import> or <c:url> c:redirect Redirects a response to a specified URL c:remove Removes a scoped variable c:set Creates a scoped variable c:url Creates a URL, with URL rewriting as appropriate c:when Specifies one of several conditions in a <c:choose> action 190

28 JSTL JSP Standard Tag Library Formatação Permite a formatação de dados; Trabalhar com vários idiomas; etc. AÇÃO (TAG) DESCRIÇÃO fmt:bundle Sets a localization context for enclosed <fmt:message> and formatting actions fmt:setbundle Sets a localization context for <fmt:message> and formatting actions fmt:setlocale Sets the locale used by <fmt:message> and formatting actions fmt:formatdate Formats a date in a locale sensitive manner fmt:formatnumber Formats a number, currency, or percent in a locale sensitive manner fmt:message Retrieves a message from a resource bundle fmt:param Supplies a parameter for an enclosing <fmt:message> action fmt:parsedate Parses a date in a locale sensitive manner fmt:parsenumber Parses a number, currency, or percent in a locale sensitive manner fmt:requestencoding Sets the request encoding for a JSP page fmt:settimezone Sets the time zone used by date and time formatting actions fmt:timezone Sets the time zone used by enclosed date and time formatting actions 191 JSTL JSP Standard Tag Library SQL Permite o acesso a dados e a execução de comandos SQL AÇÃO (TAG) sql:dateparam sql:param sql:query sql:setdatasource sql:transaction sql:update DESCRIÇÃO Specifies a date parameter for <sql:query> or <sql:update> Specifies a parameter for <sql:query> or <sql:update> Executes a database query Sets a data source for <sql:query>, <sql:update>, and <sql:transaction> actions Wraps a transaction around enclosed <sql:query> and <sql:update> actions Executes a database update 192

29 JSTL JSP Standard Tag Library SQL - Exemplo <%@ taglib prefix="c" uri=" %> <%@ taglib prefix="sql" uri=" %> <sql:setdatasource driver="sun.jdbc.odbc.jdbcodbcdriver" url="jdbc:odbc:shopingdbase" var = "ds" /> j p g <sql:query sql="select name, price from products" var="results" datasource="${ds}"/> <html> <body> <table border="4"> <tr><th>name</th><th>descrição</th></tr> <c:foreach var="row" items="${results.rows}"> <tr><td><c:out value="${row.name}"/></td> <td><c:out value="${row.price}"/></td></tr> </c:foreach> </table> </body> </html> 193 jsp:forward Tag Library <%@ taglib prefix="c" uri=" %> <html> <body> <c:choose> <c:when test='${param.perfil == "professor"}'> <jsp:forward page="professor.jsp"> <jsp:param name="user" value='${param.user}'/> </jsp:forward> </c:when> <c:otherwise> <jsp:forward page="aluno.jsp"> <jsp:param name="user" value='${param.user}'/> </jsp:forward> </c:otherwise> </c:choose> </body> </html> 194

30 JSTL JSP Standard Tag Library XML Manipulação de arquivos XML AÇÃO (TAG) DESCRIÇÃO x:choose XML version of <c:choose> x:foreach XML version of <c:foreach> x:if XML version of <c:if> x:otherwise XML version of <c:otherwise> x:out XML version of <c:out> x:param x:parse x:set x:transform x:when XML version of <c:param>; specifies a transformation parameter for an <x:transform> action Parses an XMLdocument XML version of <c:set> Transforms an XML document XML version of <c:when> 195 JSTL - JSP Standard Tag Library Strings Funções para a manipulação de Strings em geral AÇÃO (TAG) DESCRIÇÃO fn:contains() Tests if an input string contains the specified substring. fn:containsignorecase() Tests if an input string contains the specified substring in a case insensitive way. fn:endswith() Tests if an input string ends with the specified suffix. fn:escapexml() Escapes characters that could be interpreted as XML markup. fn:indexof() Returns the index withing a string of the first occurrence of a specified substring. fn:join() Joins all elements of an array into a string. fn:length() Retorna o número de itens em uma coleção ou o número de caracteres em uma String fn:replace() Returns a string resulting from replacing in an input string all occurrences of a before" string into an "after" substring. " fn:split() Splits a string into an array of substrings. fn:startswith() Tests if an input string starts with the specified prefix. fn:substring() Returns a subset of a string. fn:substringafter() Returns a subset of a string following a specific substring. fn:substringbefore() Returns a subset of a string before a specific substring. fn:tolowercase() Converts all of the characters of a string to lower case. fn:touppercase() Converts all of the characters of a string to upper case fn:trim() Removes white spaces from both ends of a string. 196

31 Aplicação Exemplo - Servlets Servlets Associados 197 Aplicação Exemplo - Servlets Servlets envolvidos 198

32 Aplicação Exemplo Servlets e JSP Servlets e Páginas JSP envolvidas 199

Java II. Sérgio Luiz Ruivace Cerqueira [email protected]

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira [email protected] Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

J550 Tag Libraries e JSTL

J550 Tag Libraries e JSTL J550 Tag Libraries e JSTL Helder da Rocha ([email protected]) www.argonavis.com.br 1 Custom tags JSP com JavaBeans fornecem um meio de diminuir código Java da página, mas não totalmente Designers de página

Leia mais

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

Aplicações de Linguagem de Programação Orientada a Objeto Aplicações de Linguagem de Programação Orientada a Objeto WEB JSP Professora Sheila Cáceres JSP É uma tecnologia que permite incluir código Java dentro de páginas web. Uma página jsp é uma página HTML

Leia mais

Java para WEB JSTL. JavaServer Pages Standard Tag Library

Java para WEB JSTL. JavaServer Pages Standard Tag Library JSTL JSTL JavaServer Pages Standard Tag Library API que encapsulou em tags simples toda a funcionalidade que diversas páginas Web precisam, como controle de laços (fors), controle de fluxo do tipo if else,

Leia mais

Programação para Internet II

Programação para Internet II Programação para Internet II Aulas 09 e 10 Fernando F. Costa [email protected] Linguagens de Expressão - EL É uma Linguagem de script que permite o acesso à componentes Java (JavaBeans) através de JSP.

Leia mais

JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto [email protected]

JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto placidoneto@cefetrn.br JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto [email protected] 26/11/2005 JSTL 1 Agenda Histórico e motivação; Servlets e JSP; Introdução e conceituação

Leia mais

Tecnologias Web. Java Enterprise Edition

Tecnologias Web. Java Enterprise Edition Tecnologias Web Java Enterprise Edition Cristiano Lehrer, M.Sc. Introdução Java Enterprise Edition (JEE): Plataforma de tecnologias para o desenvolvimento de aplicações corporativas distribuídas. É uma

Leia mais

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta [email protected]ff.br

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta leomurta@ic.uff.br JavaServer Pages (JSP) Leonardo Gresta Paulino Murta [email protected]ff.br Especificação/IDE/Implementação Esse curso foi preparado em 03/2015 usando a seguinte especificação, IDE e implementação Especificação

Leia mais

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

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo JavaServer Pages (JSP) Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

" # $ %&'( ) *' ( +,)+ ( - $ (+*' 0 12 ' ( %+ -12 )+3 ) (4 )) ) % 12 ) *' (

 # $ %&'( ) *' ( +,)+ ( - $ (+*' 0 12 ' ( %+ -12 )+3 ) (4 )) ) % 12 ) *' ( ! " # $ %&'( ) *' ( +,)+ ( - $ (+*'.%/ 0 12 ' ( %+ -12 )+3 ) (4 )) ) % 12 ) *' ( 2 (5) '%'1%6% %/ )1%12 74 % +1%() %% % *8) + 9 "(:4 8) % ; *' 3 "( % '% + 4% % ) +' 455 %' 4 *' ( +% ) + %,)1 0 +

Leia mais

Desenvolvimento de aplicações Web. Java Server Pages

Desenvolvimento de aplicações Web. Java Server Pages Desenvolvimento de aplicações Web Java Server Pages Hamilton Lima - [email protected] 2003 Como funciona? Servidor web 2 Internet 1 Browser 3 Arquivo jsp 4 JSP Compilado 2 Passo a passo 1 browser envia

Leia mais

UNIDADE III JAVA SERVER PAGES

UNIDADE III JAVA SERVER PAGES UNIDADE III JAVA SERVER PAGES MODELO JSP Um dos principais objetivos da tecnologia J2EE é fazer com que as tarefas sejam realizadas de forma separada. Eliminando as dependências, componentes J2EE tornam-se

Leia mais

JSTL: facilitando o JSP. Fernando Boaglio

JSTL: facilitando o JSP. Fernando Boaglio JSTL: facilitando o JSP Fernando Boaglio Agenda O JSP sem padrão JSTL: o JSP com padrão Como instalar o JSTL? Exibindo objetos Nossa aplicação Operadores condicionais e loops Formatação e i18n Funções

Leia mais

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

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP. Slide 1 Conceito Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP. Instruções de criação inseridas no método _jspservice( ). Slide 2 Identificação e tipo Identificação Tipo application

Leia mais

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

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

JSP - JavaServer Pages

JSP - JavaServer Pages JSP - JavaServer Pages 1 Sumário O que é o JSP? Comparação com ASP, Servlets, e Javascript Disponibilidade Um exemplo simples Mais sobre Sintaxe Um pouco de JavaBeans Um exemplo mais complexo 2 O que são

Leia mais

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

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais

JSP (Java Server Pages)

JSP (Java Server Pages) JSP (Java Server Pages) André Tavares da Silva [email protected] JSP A linguagem surgiu por volta de 1995. JSP foi inicialmente inventado por Anselm Baird-Smith durante um final de semana e depois Satish

Leia mais

Linguagem de Expressão, JSTL e DisplayTag. Fornece tags para encapsular funcionalidades complexas para utilização em JSPs

Linguagem de Expressão, JSTL e DisplayTag. Fornece tags para encapsular funcionalidades complexas para utilização em JSPs Linguagem de Expressão, JSTL e DisplayTag Fornece tags para encapsular funcionalidades complexas para utilização em JSPs 1 Motivação p/ utilização de Tags Customizadas Facilita o desenvolvimento de futuras

Leia mais

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

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web: Web Browser como o processo cliente Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: 1 Cliente Web browser HTTP porto 80 Servidor web... JDBC RMI XML... Base de Dados Aplicação em

Leia mais

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

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Software cliente: browser e outros Protocolo HTTP Infraestrutura de transporte

Leia mais

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

Introdução a JavaServer Pages. Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de sistemas web Introdução a JavaServer Pages Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de sistemas web JavaServer Pages Problemas com Servlets: É improdutivo para gerar todo o conteúdo

Leia mais

JSP: JAVA SERVER PAGES

JSP: JAVA SERVER PAGES PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB JSP: JAVA SERVER PAGES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é e como funciona o JSP Compreender as tags do JSP Capacitar para a substituição

Leia mais

Servlets & JSP. Prof. Ramon Chiara

Servlets & JSP. Prof. Ramon Chiara Servlets & JSP Prof. Ramon Chiara Java JSE Java Standard Edition JME Java Micro Edition JEE Jave Enterprise Edition Java JSE Java Standard Edition JME Java Micro Edition JEE Jave Enterprise Edition Web

Leia mais

Programação Web Aula 12 - Java Web Software

Programação Web Aula 12 - Java Web Software Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 1 Java 2 Java Web Software 3 Servlets Modelo de Trabalho Funcionamento API Java Código

Leia mais

JavaServer Pages. Também são conhecidas pela sigla correspondente (JSP). Representam mais uma tecnologia da plataforma JEE.

JavaServer Pages. Também são conhecidas pela sigla correspondente (JSP). Representam mais uma tecnologia da plataforma JEE. Slide 1 Conceito Também são conhecidas pela sigla correspondente (JSP). Representam mais uma tecnologia da plataforma JEE. Uma JSP é uma página HTML com código Java embutido com o objetivo de fornecer

Leia mais

O que é o JavaScript?

O que é o JavaScript? JavaScript Introdução O JavaScript é utilizado por milhões de páginas na web para melhorar o design, validar forms, e muito mais O JavaScript foi inicialmente desenvolvido pela Netscape e é a linguagem

Leia mais

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br JSP (Java Server Pages) - JavaServer Pages (JSP) - Tecnologia de programação serverside - Permite

Leia mais

JSP: JAVA SERVER PAGES

JSP: JAVA SERVER PAGES PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB JSP: JAVA SERVER PAGES Prof. Dr. Daniel Caetano 2011-2 Visão Geral 1 2 3 4 O que é um JSP? Tags de JSP Trocando um Servlet por JSP Atividade Material de Estudo Material

Leia mais

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

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web JSP Antes de iniciarmos a comentar sobre a Tecnologia Java Server Pages, teremos uma breve apresentação do Servidor (Web Contanier) TomCat. Então vamos lá. Servidor TomCat

Leia mais

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

Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010. Relatório do GPES Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010. Compreender a programação JSP. Os Servlets assim como JSP são tecnologias

Leia mais

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

Curso de Java. Geração de Páginas WEB através de JSP. Todos os direitos reservados Klais Curso de Java Geração de Páginas WEB através de JSP Todos os direitos reservados Klais JSP e Servlets Servletsconstituem um mecanismo conveniente para a geração de páginas HTML dinâmicas e seu tratamento

Leia mais

Scriptlets e Formulários

Scriptlets e Formulários 2 Scriptlets e Formulários Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Permitir ao aluno aprender a criar um novo projeto Java para web no Netbeans IDE,

Leia mais

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

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets Programação Web Professor: Diego Oliveira Conteúdo 02: JSP e Servlets JSP JSP é um template de uma página Web que usa Java para gerar HTML dinamicamente JSP é considerado server-side e roda em um objeto

Leia mais

Aula 03 - Projeto Java Web

Aula 03 - Projeto Java Web Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira [email protected]

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira [email protected] Servlets Servlet Aplicação Java que é executada no servidor que estende a capacidade do servidor Web Alternativa Java para os scripts CGI Gerenciado

Leia mais

Java JSTL. Rodrigo C. de Azevedo

Java JSTL. Rodrigo C. de Azevedo Java JSTL Rodrigo C. de Azevedo OMG Certified UML Professional Fundamental OMG Certified UML Professional Intermediate CompTIA Project+ Sun Certified Associate for Java Platform Sun Certified Programmer

Leia mais

JSP Standard Tag Library (JSTL)

JSP Standard Tag Library (JSTL) JSP JSTL JSP Standard Tag Library (JSTL) Esforço de padronização do JCP: JSR-152 Baseado no Jakarta Taglibs (porém bem menor) Oferece dois recursos Conjunto padrão de tags básicos (Core, XML, banco de

Leia mais

INTRODUÇÃO À TECNOLOGIA SERVLETS

INTRODUÇÃO À TECNOLOGIA SERVLETS PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO À TECNOLOGIA SERVLETS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o conceito aplicações orientada a serviços via web Apresentar o papel dos contentores

Leia mais

Java para WEB. Servlets

Java para WEB. Servlets Servlets Servlets são classes Java que são instanciadas e executadas em associação com servidores Web, atendendo requisições realizadas por meio do protocolo HTTP. Servlets é a segunda forma que veremos

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

Leia mais

Sistemas para internet e software livre

Sistemas para internet e software livre Sistemas para internet e software livre Metodologia de modelagem de aplicações WEB Image: FreeDigitalPhotos.net Domínio: Elementos de aplicação WEB Páginas Web Scripts Formulários Applets e ActiveX Motivação

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Arquitetura de Aplicações Distribuídas na Web Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Java na WEB Componentes Bean

Java na WEB Componentes Bean 1 Java na WEB Componentes Bean Objetivo: Ao final da aula o aluno será capaz de: Criar site dinâmico utilizando componentes Bean Utilizar Tags de ação Empregar Coleções de Bean. Sumário 5. Definição de

Leia mais

DESENVOLVENDO APLICAÇÕES WEB COM JSP E JSTL. Peter Jandl Junior. Novatec

DESENVOLVENDO APLICAÇÕES WEB COM JSP E JSTL. Peter Jandl Junior. Novatec DESENVOLVENDO APLICAÇÕES WEB COM JSP E JSTL Peter Jandl Junior Novatec Sumário Agradecimentos... 13 Sobre o autor... 14 Prefácio...15 Capítulo 1 JSP (JavaServer Pages)... 17 1.1 Introdução... 17 1.2 Aplicação...

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

Laboratório 8 JSP s, EL, JSTL

Laboratório 8 JSP s, EL, JSTL Laboratório 8 JSP s, EL, JSTL Introdução JSP significa Java Server Page e representa uma forma de gerar conteúdo dinâmico numa página web. Em termos sintácticos, são documentos constituídos por tags xhtml

Leia mais

2.3. PHP Tipos de dados e operadores

2.3. PHP Tipos de dados e operadores Programação para Internet II 2.3. PHP Tipos de dados e operadores Nuno Miguel Gil Fonseca [email protected] Tipos de dados Embora não seja necessário declarar os tipos de dados das variáveis,

Leia mais

Orientada a serviços: JAX-WS SOAP API

Orientada a serviços: JAX-WS SOAP API Orientadaa apresentação: uma aplicação webde apresentação orientada gera páginas webinterativascom vários tipos de linguagem de marcação (HTML, XML, e assim por diante) e conteúdo dinâmico em resposta

Leia mais

Internet e Programação Web

Internet e Programação Web COLÉGIO ESTADUAL PEDRO MACEDO Ensino Profissionalizante Internet e Programação Web 3 Técnico Prof. Cesar 2014 1 SUMÁRIO Criar sites dinâmicos em PHP --------------------------------------------------------

Leia mais

Programação Web com PHP. Prof. Wylliams Barbosa Santos [email protected] Optativa IV Projetos de Sistemas Web

Programação Web com PHP. Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web Programação Web com PHP Prof. Wylliams Barbosa Santos [email protected] Optativa IV Projetos de Sistemas Web Agenda O que é PHP? O que da pra fazer com PHP? Como a web funciona? Onde, quando e por que

Leia mais

JSP (Java Server Pages)

JSP (Java Server Pages) JSP (Java Server Pages) Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior 1 Introdução Tecnologia para desenvolvimento de aplicações WEB fundamentada na

Leia mais

JSP Java Server Pages

JSP Java Server Pages JSP Java Server Pages Problemas de servlets Servlets forçam o programador a embutir código HTML dentro de código Java Desvantagem se a maior parte do que tem que ser gerado é texto ou código HTML estático

Leia mais

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

WebWork 2. João Carlos Pinheiro. [email protected]

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro [email protected] Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

Prática Sobre Servlets e JSP

Prática Sobre Servlets e JSP Prática Sobre Servlets e JSP 1. Localize a pasta do Tomcat (TOMCAT_HOME); 2. Acesse a pasta bin e execute tomcat5w.exe; 3. Abra o Navegador e acesse http://localhost:8080 (A apresentação de uma página

Leia mais

Construindo portais com Plone. Módulo 3 Templates

Construindo portais com Plone. Módulo 3 Templates Construindo portais com Plone Módulo 3 Templates Templates l Quando o Plone vai mostrar uma página, duas perguntas precisam ser respondidas: Ø O que será mostrado? Isto é, quais conteúdos serão buscados

Leia mais

CONVENÇÃO DE CÓDIGO JAVA

CONVENÇÃO DE CÓDIGO JAVA CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2

Leia mais

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

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Web Container: e JSP Sumário Protocolo HTTP Exemplos de JSP (Java Server Pages) Exemplos JSP 2 Protocolo HTTP URL: Um URL (Uniform

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin [email protected] Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais

Documentação Usando o Javadoc

Documentação Usando o Javadoc Documentação Usando o Javadoc Prof. MSc. João Carlos Pinheiro [email protected] Versão 2.1 Última Atualização: 04/2005 1 Comentários e Documentação Comentários em Java Existem três tipos de comentários

Leia mais

JSP Standard Tag Library (JSTL)

JSP Standard Tag Library (JSTL) JSP JSTL JSP Standard Tag Library (JSTL) Esforço de padronização do JCP: JSR-152 Baseado no Jakarta Taglibs (porém bem menor) Oferece dois recursos Conjunto padrão de tags básicos (Core, XML, banco de

Leia mais

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

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais Curso de Java Geração de Páginas WEB Aplicação WEB Numa aplicação WEB de conteúdo dinâmico As páginas são construídas a partir de dados da aplicação (mantidos num banco de dados). Usuários interagem com

Leia mais

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

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Agenda 1. 2. Web Container TomCat 2 3 J2EE permite criar aplicações Web dinâmicas (com conteúdo dinâmico)

Leia mais

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web EL Expression Language Expression Language (Linguagem de Expressão) foi introduzido na versão 1.0 da JSTL (JSP Standard Tag Library), antes da JSTL scriplets eram usados para

Leia mais

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br [email protected] Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação

Leia mais

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

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API Programação Na Web Servlets: Como usar as Servlets 1 António Gonçalves Agenda Template genérico para criar Servlets Servlet 2.4 API Exemplo: Hello World Output: Texto, HTML e hora local. Compilar uma Servlets

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

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

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior Desenvolvimento WEB em JAVA Palestrante: Lourival F. de Almeida Júnior Agenda Introdução Servlet Arquitetura de Software Velocity Struts Conclusão Referências Introdução (antes) Programador Produto Introdução

Leia mais

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

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil [email protected] 2 Universidade

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha ([email protected])

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha (helder@acm.org) J820 Testes de interface Web com HttpUnit Helder da Rocha ([email protected]) O que é HttpUnit API Java para comunicação com servidores HTTP Permite que programas construam e enviem requisições, e depois

Leia mais

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

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos Programando em PHP www.guilhermepontes.eti.br [email protected] Criando uma Calculadora Primeiramente deve se criar uma estrutura para armazenar os arquivos necessários para o funcionamento da calculadora.

Leia mais

Java Beans e Servlets

Java Beans e Servlets 6 Java Beans e Servlets Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Apresentar os recursos de orientação à objetos Java em JSP e integrá-los a tecnologia

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Aula de JavaScript 05/03/10

Aula de JavaScript 05/03/10 Objetos Sabe-se que variável são contêiners que podem armazenar um número, uma string de texto ou outro valor. O JavaScript também suporta objetos. Objetos são contêiners que podem armazenar dados e inclusive

Leia mais

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

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

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

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr J2EE Exemplo completo Utilização Servlet Instrutor HEngholmJr Page 1 of 9 AT09 Exemplo complete Utilização Servlet Version 1.1 December 5, 2014 Indice 1. BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA,

Leia mais

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

Aula 4. Objetivos. Conteúdo dinâmico na internet. Aula 4 Objetivos Conteúdo dinâmico na internet. Para uma solicitação da Web mais simples, um navegador solicita um documento HTML e o servidor Web encontra o arquivo correspondente e devolve. Se o documento

Leia mais

Criando documentação com javadoc

Criando documentação com javadoc H Criando documentação com javadoc H.1 Introdução Neste apêndice, fornecemos uma introdução a javadoc ferramenta utilizada para criar arquivos HTML que documentam o código Java. Essa ferramenta é usada

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Cookies Um nada mais é que um bloco de informação que é enviado do servidor para o navegador no cabeçalho da página. A partir de então, dependendo do tempo de validade do,

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

JAVA Programmer - Objetivo do Curso. Pré-requisito do Curso. Conteúdo Programático do Curso

JAVA Programmer - Objetivo do Curso. Pré-requisito do Curso. Conteúdo Programático do Curso JAVA Programmer - Objetivo do Curso O curso Java Programmer destina-se a todos aqueles que pretendem compreender as características e os recursos essenciais da linguagem Java para o desenvolvimento de

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

Java na WEB Servlet. Sumário

Java na WEB Servlet. Sumário 1 Java na WEB Servlet Objetivo: Ao final da aula o aluno será capaz de: Utilizar Servlets para gerar páginas web dinâmicas. Utilizar Servlets para selecionar páginas JSPs. Utilizar Servlets como elemento

Leia mais