A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos

Apresentações semelhantes


Apresentação em tema: "Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos"— Transcrição da apresentação:

1 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Servlets Servlets e uma tecnologia desenvolvida pela SUN para desenvolvimento de aplicações na WEB a partir de componentes Java que executam no lado do servidor. Esta tecnologia faz parte da plataforma J2EE (Java 2 Plataform Enterprise Edition) que fornece um conjunto de tecnologia para o desenvolvimento de soluções escaláveis e robustas para para a WEB.

2 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com 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. Ao serem acionados, os objetos Servlets podem enviar a reposta na forma de uma página HTML ou qualquer outro conteúdo MINE.

3 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Servlets Servlets não possuem interface gráfica e suas instâncias são executadas dentro de um ambiente Java denominado Container. O Container gerencia as instâncias dos Servlets e provê os serviços de rede necessárias para as requisições e respostas. Tipicamente existe apenas uma instância de cada Servlets, porém o Container pode criar vários threads, permitindo que uma única instância Servlet atenda mais de uma requisição simultaneamente.

4 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Servlets Relacionamento entre Servlets, Container e Servidor Web

5 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Servlets - API A API Servlet é composta por um conjunto de interfaces e Classes. O componente mais básico da API é a interface Servlet. public interface Servlet { public void init (ServletConfig config) throws ServletException; public ServletConfig getServletConfig(); public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; public String getServletInfo(); public void destroy(); } Interface Servlet

6 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Servlets - API O método service() é responsável pelo tratamento de todas as requisições dos clientes. O init() e o destroy() são chamados quando o Servlet e carregado e descarregado do container. O getServletConfig() retorna um objeto ServletConfig qie contém os parâmetros de inicialização do Servlet O getServletInfo() retorna uma String com as informações sobre o Servlet como versão e autor.

7 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Servlets - API O restante da API Servlet se organiza hierarquicamente : Servlet GenericServlet HttpServlet A classe HttpServlet é a mais utilizada e foi especialmente projetada para lidar com o protocolo HTTP. HttpServlet public abstract class HttpServlet extends GenericServlet implements java.io.Serializable A classe HttpServlet é uma classe abstrata. E para criar um Servlet que atenda requisições HTTP o programador deve criar uma classe derivada da HttpServlet e sobrescrever pelo menos um dos métodos.

8 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Servlets Todos os métodos são invocados pelo servidor por meio do método service(). O doGet() : Trata as requisições GET, que este tipo pode ser enviada várias vezes permitindo que seja colocada em um bookmark. O doPost() : Trata requisições POST que permitem que o cliente envie dados de tamanho ilimitado para o servidor WEB uma única vez, útil para enviar informações como nr do cartão de crédito e tec. O doPut() : Trata requisições PUT, permite que o cliente envie um arquivo para o servidor similar ao feito com o FTP.

9 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Compilando o Servlet A API Servlet ainda não foi incorporado ao SDK, portanto para compilar um Servlet é preciso adicionar a API Servlet ao pacote SDK. Pode ser baixada gratuitamente pela Intenet (existem vários) uma das alternativas é fornecido pelo projeto Jakarta (http://jakarta.apache.org) denominata de TomCathttp://jakarta.apache.org Após a intalação do TomCat teremos a seguinte árvore de diretórios: X:\ jakarta-tomcat-x.x.x bin conf doc Lib Logs Src webapps Antes de executar o Tomcat é necessário definir duas variáveis de ambiente. Supondo que o MS-windows e o TomCat foi instalado nos diretórios: C:\tomcat eo SDK no c:\sdk teremos as seguintes variáveis de ambiente: set JAVA_HOME=c:\sdk set TOMCAT_HOME=c:\tomcat Agora para executar o TomCat e encerrar: C:\tomcat\startup.bat C:\tomcat\shutdown.bat http://127.0.0.1:8080/index.html (mostrará a página principal do tomcat)

10 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Compilando o Servlet O número da porta default para o recebimento das requisições HTTP pode ser alterada por meio da edição do arquivo server.xml do diretório conf : <Parameter name = “handler” value = “org.apache.tomcat.service.http.HttpConnectoinHandler”/> <Parameter name = “port” Value = “número_da_Porta” Antes de executar o Servlet e preciso compila-lo, é preciso que a classe que implementam a API servlet esteja no classpath. No Windows: set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%/lib/servlet.jar Ambinete Unix CLASSPATH=${CLASSPATH}:${TOMCAT_HOME}/lib/servlet.jar

11 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Executando o Servlet O diretório de uma aplicação é denominado de contexto da aplicação, que é necessário editar o arquivo server.xml do diretório conf, incluir as seguintes linhas: <Context path=“/nome_da_aplicação” docBase=“webapps/nome_da_aplicação” debug=0 reloadble=“true” > É preciso criar ou copiar de outra aplicação, um arquivo web.xml no diretório web-inf com o seguinte conteúdo:

12 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Executando o Servlet Poderemos executar o Servlet, digitando a URL do Servlet diretamente no navegador: http://máquina:porta/nome_da_aplicação/servlet/nome_do_servlet A palavra servlet que aparece na URL não indica um subdiretório no servidor. Ela indica que esta é uma requisiçãopara um servlet. Supondo que o nome da aplicação criada no TomCat seja teste. http://localhost:8080/teste/servlet/olaMundo No caso de uma página HTML basta coloca a URL na forma de link: servlet ola

13 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com JSP Java Server Pages

14 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com JSP Java Server Pages (JSP) – São páginas HTML que incluem código Java e outros tag´s especiais. Desta forma as partes estáticas da página não precisam ser geradas por println(). Imagine criar uma aplicação completa ???? A parte dinâmica e gerada pelo código JSP. Assim a parte estática pode ser projetada pelo Web Designer.

15 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com JSP A primeira vez que uma página JSP é carregada pelo container JSP o código java é compilado gerando um Servlet que é executado, gerando uma página HTML que é enviada para o navegador. As chamadas subseqüentes são enviadas diretamente ao Servlet gerando na primeira requisição, não gerando mais as etapas de geração e compilação do Servlet.

16 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com JSP 1 a requisição é enviada para um servidor web que reencaminha a requisição (2) para o container Servelet/JSP. 3 o container verifica que não existe nenhuma instância de Servlet correspondente à página JSP que é traduzida para código fornte de uma classe Servlet e que será usada na resposta à requisição 4 o código fonte do Servlet é compilado, e na etapa (5) é criada uma instância da classe. Finalmente na etapa 6 é invocado o método service() da instância Servlet para gerar a resposta à requisição.

17 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Primeiro exemplo de um JSP Exemplo de uma página JSP olá mundo, OlaMundo.jsp exemplo JSP Salve como olaMundo.jsp dentro do subdiretório /webapps/examples/jsp/teste Para invocar: http://localhost:8080/examples/jsp/olaMundo.jsp

18 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Tags JSP Os tags JSP possuem a seguinte forma geral O primeiro caracter % pode ser seguido de outros caracteres que determinam o significado preciso do código dentro do tag. Os tags JSP possuem correspondência com os tags XML. Existem 5 Categorias de tags JSP Expressões Secriptlets Declarações Diretivas Comentários

19 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Tags JSP Expressões As expressões são avaliadas, convertidas para string e colocadas na página enviada. Isso ocorre em tempo de execução, quando a página e requisitada. Note que os comando não terminam com “;” Colocará a data corrente em milésimos de segundo Colocará o método usado na requisição Scriptlets Quando é necessário mais de um comando Java ou resultado da computação – não é para ser colocado na página de resposta para tanto é preciso usar outra categoria de tag´s JSP

20 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com exemplo <% String valor = request.getParameter(“txtcelcius”); double f = (Double.parseDouble(valor)*9/5) +32; out.println(“ ”); out.println(“ Valor é” + f + “ ”); %> Celcius: Tags JSP O código dentro do scriptlet é inserido da mesma forma que é escrito todo texto HTML estático antes e após ou um scriptlet é convertido para comandos print(). Desta forma o scritplet não precisa conter comandos para o código estático e blocos de controle abertos afetam o código HTML envolvidos pelo scriptlets

21 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Tags JSP Declarações Uma declaração JSP permite definir variáveis ou métodos que são inseridos no corpo do Servlet. Como as declarações não geram saídas, elas são normalmente usadas em combinação com expressões e secriptlets. Acessos desde carregada Aqui mostra a declaração de uma variável que é usada para contar o número de vezes que a página corrente foi requisitada desde que foi gerada. As variáveis declaradas desta forma são variáveis de instância. Já que são declaradas em Scriptles são variáveis locais ao método _jspservice() <%! private double converte (double c) { return c*9/5+32; } %> Definição de um método para conversão para celcius :

22 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Tags JSP Comentários Para páginas HTML São mensagens para JSP container. Elas não enviam nada para a página mas são importantes para definir atributos JSP e dependências como o JSP container. Diretivas <!@ Diretiva atributo1=“valor1” atributo2=“valor2”...... atributon=“valorn” %>

23 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Tags JSP Extraindo Valores de Formulários: Da mesma forma que um Servlet, pode usar objeto referenciado pela variável request para obter valores dos parâmetros de um formulário. Formulário <% enumeration campos = request.getParameterNames(); While (campos.hasMoreElements()) { String campo = (String)campos.nextElement(); String valor = request.getParameter(campo); %> = Nome: Telefone:

24 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens A medida que o código Java dentro do HTML torna-se cada vez mais complexo o desenvolvedor pode-se perguntar: Java em HTML não é o problema invertido do HTML em Servlet ????.. O resultado não será tão complexo quanto produzir uma página usando println() ????... Estou novamente misturando conteúdo com forma ????...... Xiiiii...... E agora ??????.....

25 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens Para solucionar esse problema a especificação de JSP permite o uso de JavaBeans para manipular a parte dinâmica em Java. JavaBeans – Podemos encarar como sendo apenas uma classe Java que obedece a uma certa padronização de nomeação de métodos, formando o que é denominado de propriedades. As propriedades de um bean são acessadas por meio de métodos que obedecem a convenção getXxxx e setXxxx sua sintax para o uso de um bean em uma página JSP é:

26 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens Para modificar as propriedades de um JavaBean podemos usar o jsp:setProperty ou chamar um método explicitamente em um scriptlet. Para recuperar o valor de uma propriedade de um JavaBean podemos usar o jsp:getProperty ou chamar um método explicitamente em um scriptlet. Quando é dito que um bean tem uma propriedade prop do tipo T significa que o bean deve prover um método getProp() e um método do tipo setProp(T).

27 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens Antes de mais nada vamos entender um tipo de padrão de projeto chamado MVC (Model View Controlle)

28 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens Uma arquitetura bastante usada e a Arquitetura de modelo 2 este explora o Design do MVC visando uma clara separação entre a lógica e a interface da aplicação.

29 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens Agora voltaremos a falar sobre o Bean. Página bean.jsp Uso do Bean Mensagem: Arquivo Curso/BeanSimples.java pakege curso; public class BeanSimples{ private String men = “Nada de mensagem”; public String getMensagem(){ return (men); } public String setMensagem(String men) { this.men = men; }

30 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens Um JavaBean é uma classe cuja estrutura e sintaxe obedecem a um conjunto de regras. Então qualificar uma classe como sendo um JavaBean é exclusivamente uma questão de compromisso assumido pelo desenvolvedor. Por outro lado se uma classe for um JavaBean estão editores compatíveis com o padrão JavaBean conseguem manipular visualmente instâncias destas classes.

31 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens As regras que definem um JavaBean: REGRADESCRIÇÃO 1 – ConstrutorDeve haver um construtor sem nenhum argumento. 2 – PersistênciaTodo JavaBean pode implementar a interface java.io.Serializabe Esta regra não precisa ser necessariamente obedecida. 3 – Acesso aos atributos Se o JavaBean possui um atributo na forma tipo atributo; então o acesso ao valor deste atributo deve ser feito através do método public tipo getAtributo(). 4 – Mudança no valor dos atributos Se o JavaBean possui um atributo na forma tipo atributo; então a mudança do valor deste atributo deve ser feito através do método public void tipo setAtributo(tipo valor). 5 – PropriedadeUm JavaBean pode ter, além de seus atributos, propriedades. Estas são caracterizadas pela existência de métodos nas formas public void setPropriedade(tipo valor) e/ou public getPropriedade(). 6 – Encapsulamento de atributos Todos os atributos devem estar encapsulados, isto é, devem ser qualificados como private ou, ao menos, protected.

32 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com O Uso do JavaBens Exemplo de um JavaBean usando as regras Arquivo TesteBeanSimples.java public class TesteBeanSimples{ private String nome; private float nota; public TesteBeanSimples() { nome = “”; nota = 0.0f; } public void setNome(String valor){ nome = valor; } public void setNota(float valor){ nota = valor; calculaNota(); } public String getNome(){ return nome; } public float getNota(){ return nota; } protecd void calculaNota(){ nota = nota * 1.03 } }


Carregar ppt "Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos"

Apresentações semelhantes


Anúncios Google