You are on page 1of 42

UFSM

COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Programação para
UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Programação para

Programação para

Internet III

Aula 1 – JSP: Conceitos Básicos

Prof. Teresinha Letícia da Silva leticia@cafw.ufsm.br

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Programação para

Ementa da disciplina

Ementa da disciplina  Projetar e implementar sites dinâmicos utilizando linguagem de programação interpretada para internet
  • Projetar e implementar sites dinâmicos utilizando linguagem de programação interpretada para internet com uso de tecnologias combinadas de scripts, folhas de estilo e banco de dados.

  • Conteúdo

    • Desenvolvimento para web com Java

    • JSP

    • Acesso a Dados

    • Ajax

O que é JSP ?

O que é JSP ?  JSP é um acrônimo para Java Server Pages e consiste
  • JSP é um acrônimo para Java Server Pages e consiste numa linguagem de script baseada em java para criação de sites com conteúdos dinâmicos.

  • É uma linguagem relativamente nova, já que surgiu por

volta

do

ano

2000

como

uma

estratégia

da

Sun

MicroSystems para combater linguagens emergentes como o ASP(Active Server Pages), linguagem de autoria da Microsoft, e o PHP (Hypertext PreProcessor).

  • Por ser baseada na linguagem Java, tem a vantagem da portabilidade de plataforma, o que permite sua execução em variados sistemas operacionais.

O que é JSP ?

Podemos

escrever

JSP

com

um

editor

O que é JSP ?  Podemos escrever JSP com um editor de texto HTML/XML comum,

de texto

HTML/XML comum, já que as páginas JSP estão

compostas de cógido HTML/XML mesclado com

etiquetas para programar sintaxe Java.

scripts

de

servidor

em

  • Os arquivos JSP têm extensão '.jsp' , os quais, dentro das tags HTML, contém o código em java a ser executado no servidor.

O que é JSP ?

  • Antes que os arquivos sejam funcionais,

o motor

O que é JSP ?  Antes que os arquivos sejam funcionais, o motor JSP realiza

JSP

realiza uma fase de tradução dessa página em um servlet,

implementado em um arquivo class (Byte codes de Java).

  • Servlets são componentes que disponibilizam ao programador java uma interface para o servidor web, através de uma API.

  • Uma página criada com a tecnologia JSP, após instalada em um servidor de aplicação compatível com a tecnologia Java EE, é transformada em um Servlet.

O que é JSP ?

Para

ser

container

executado

Web,

isto

um

é,

servlet

necessita

de

um

servidor

onde

O que é JSP ?  Para ser container executado Web, isto um é, servlet necessita

um

são

instaladas servlets para tratar as requisições que o servidor receber.

  • Existem vários containers web, mas um dos mais usados é o Tomcat, por vários motivos entre eles por não ser pago e por ser o container de servlets usado na referência oficial de implementação de JSP.

Comparação de Java Server Pages com Servlets

  • JSP e Servlets são bem

parecidos, já que todo

compilado em forma de Servlet.

JSP é
JSP
é
  • Os dois são processados do lado do servidor e retornam apenas conteúdo HTML ao cliente.

  • JSPs geram essencialmente conteúdo HTML enquanto os servlets são usados para controle da aplicação, mas o programador pode opcionalmente inverter esses papéis.

  • A principal diferença entre eles é que em JSP escreve-se Java no HTML e em servlets escreve-se HMTL dentro do código java.

Comparação de Java Server Pages com Servlets

Comparação de Java Server Pages com Servlets Programação para Internet I Prof. Teresinha Letícia da Silva
Comparação de Java Server Pages com Servlets Programação para Internet I Prof. Teresinha Letícia da Silva

Execução de um arquivo JSP

Execução de um arquivo JSP  A primeira vez que uma página JSP é carregada pelo
  • 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

gerado

na

primeira

requisição, não ocorrendo mais às geração e compilação do Servlet.

etapas

de

Benefícios de JSP

Benefícios de JSP  Sendo uma tecnologia baseada em Java, ela se aproveita de todas as
  • Sendo uma tecnologia baseada em Java, ela se aproveita de todas as vantagens que a linguagem Java fornece : orientação a objetos, tratamento de exceções, gerenciamento automático de memória, dentre outros aspectos que conduz a um ganho significativo de produtividade.

  • Pelo fato do bytecode de Java compilado ser portável através de todas as plataformas que possuam uma JVM, o uso de JSP não o restringe a uma plataforma de hardware, sistema operacional ou software específico.

  • JSP pode se aproveitar de todas as APIs de Java padrão, incluindo aquelas para acesso a bancos de dados compatíveis com muitas plataformas, serviços de diretório, processamento distribuído, criptografia, etc.

Instalações Necessárias

Instalações Necessárias  A primeira coisa a se fazer é instalar um servidor (container) JSP. 
  • A primeira coisa a se fazer é instalar um servidor (container) JSP.

  • Existem vários containers, dentre os quais podemos citar: JBoss, Weblogic e WebSphere.

  • Mas o mais utilizado é o Tomcat.

  • Como ele é inteiramente escrito em Java, necessita de uma Java Virtual Machine (JVM) — Máquina Virtual Java — para ser executado.

Instalações Necessárias

Instalações Necessárias  O Tomcat é um servidor de aplicações Java para web.  É distribuído
  • O Tomcat é um servidor de aplicações Java para web.

  • É distribuído como software livre e desenvolvido como código aberto dentro do conceituado projeto Apache Jakarta.

  • O Tomcat é robusto e eficiente o suficiente para ser utilizado mesmo em um ambiente de produção.

Instalação Tomcat com Xampp no Windows

Instalação Tomcat com Xampp no Windows  Baixe o xampp-tomcat-addon-5.5.17-2.2.2.zip, disponível na rede local ou na
  • Baixe o xampp-tomcat-addon-5.5.17-2.2.2.zip, disponível na rede local ou na Internet:

  • http://www.apachefriends.org/en/xampp-

windows.html#644

  • Descompacte o arquivo zip no diretório onde o xampp está instalado, geralmente em:

    • c:\xampp\

  • Peça para sobrepor todos os arquivos, caso encontre um igual.

Instalação Tomcat com Xampp no Windows

Instalação Tomcat com Xampp no Windows  Execute o painel de controle do xampp  Inicie
  • Execute o painel de controle do xampp

  • Inicie o servidor tomcat

  • Verifique se o tomcat está funcionando, abrindo um navegador, com o seguinte endereço:

    • http://localhost:8080

  • Isto deverá abrir uma janela de página inicial do Tomcat. Você pode clicar em 'Tomcat Administration' ou 'Tomcat Manager', utilizando usuário/senha = xampp/xampp, respectivamente para poder administrar o Tomcat.

Instalação Tomcat com Xampp no Windows

Instalação Tomcat com Xampp no Windows  É importante que saibamos como é a estrutura de
  • É importante que saibamos como é a estrutura de diretórios do Tomcat pois isto ajuda a ter maior controle sobre as aplicações.

/bin

  • Diretório que contém os binários executáveis.

/conf

  • Diretório que contém os arquivos de configuração.

Os mais importantes são 'server.xml' - arquivo de configuração

/logs

  • Diretório que contém os arquivos de logs.

  • /webapps Tomcat.

Diretório para a instalação de aplicações web no

/work

  • Diretório onde o

Tomcat armazena o código da

página JSP depois que este é convertido em um Servlet.

JSP – Sintaxe Básica

  • Delimitando o código

JSP – Sintaxe Básica  Delimitando o código  O código JSP, uma vez que, fica
  • O código JSP, uma vez que, fica embutido em meio ao código HTML, para que o interpretador possa delimitar o que é JSP e o que é HTML precisa de tags que indiquem isso:

<%

 

comandos

%>

JSP – Sintaxe Básica

  • Separando Instruções

JSP – Sintaxe Básica  Separando Instruções  Assim como na linguagem C, javascript e outras
  • Assim como na linguagem C, javascript e outras mais conhecidas, é necessário utilizar o “ponto-e-virgula” para sinalizar o fim de uma instrução ou comando.

JSP – Sintaxe Básica

  • Comentários

JSP – Sintaxe Básica  Comentários  Existem dois tipos de comentários em JSP:  Comentários
  • Existem dois tipos de comentários em JSP:

  • Comentários de uma linha <% // comentários %> ou <%-- comentários --%>

  • Comentários de mais de uma linha

<%

/*

 

comentários

*/

%>

JSP – Sintaxe Básica

JSP – Sintaxe Básica  Imprimindo código HTML <% out.println(“JSP imprimindo ...”); %> Programação para Internet
  • Imprimindo código HTML

<%

 

out.println(“JSP imprimindo ...”);

%>

JSP – Hello World

  • Digite o seguinte código: <html> <body>

<h1>

<%

 

out.println(“Hello World”);

%>

</h1>

</body>

</html>

JSP – Hello World  Digite o seguinte código: <html> <body> <h1> <% out.println(“Hello World”); %>
  • Salve o arquivo na pasta C:\xampp\tomcat\webapps com o nome de hello.jsp

  • Acesse o seguinte endereço: http://localhost:8080/hello.jsp

JSP - Tipos

JSP - Tipos  O JSP, como é derivado do Java é fortemente tipado, ou seja,
  • O JSP, como é derivado do Java é fortemente tipado, ou seja, é necessário a declaração do tipo de dados que cada variável poderá manipular.

  • As declarações de variáveis consistem de um tipo e um nome de variável, como segue o exemplo:

    • int idade; //Declara “idade” como inteiro.

    • String nome; //Declara “nome” como seqüência chars

    • boolean existe; //Declara “existe” como true ou false

  • É possível que seja feita a incialização do valor do variável no mesmo momento da declaração:

    • int idade = 10; //Declara “idade” e inicializa com valor 10

  • JSP - Tipos

    • Tipos Suportados

    JSP - Tipos  Tipos Suportados  byte - Armazena valores entre -128 e +127 
    • byte - Armazena valores entre -128 e +127

    • short - Armazena valores entre –32.768 e +32.767

    • int - Armazena valores entre –2147483648 e +2147483647

    • long - Armazena valores entre –9223372036854775808 e +9223372036854775807

    • float - Armazena valores numéricos com 32 bits de precisão.

    • double - Armazena valores numéricos com 34 bits de precisão.

    • char - Armazena caracteres.

    • boolean - Armazena valores binaries “true, false” ou “0, 1”.

    • String nome = “Carlos Alberto”;

    Strings

    Strings  Para comparar strings existem métodos especiais:  String senha = “teste”;  if (
    • Para comparar strings existem métodos especiais:

      • String senha = “teste”;

      • if ( senha.equals(“teste”) ) {

      • out.println(“OK ...”);

      • }

      • ou assim, considerando “case sensitives”:

      • String senha = “teSte”;

      • if ( senha.equalsIgnoreCase(“teste”) ) {

      • out.println(“ERRO ...”);

      • }

  • Produzindo Strings a partir de primitivas:

    • String dez = String.valueOf(10);

  • Produzindo primitives a partir de Strings

  • Existe uma wraper class para cada tipo primitivo

    • String valor = “10”;

    • int quantidade = Integer.parseInt(valor);

  • Operadores

    • Aritméticos

      • Operações de adição e subtração.

    + e -

    • Operadores de multiplicação e divisão.

    * e /

    • O módulo da divisão.

    %

    Operadores  Aritméticos  Operações de adição e subtração. + e -  Operadores de multiplicação
    • Strings

      • Concatenação.

    +

    • Atribuição

      • Atribuição Simples

    =

    • Atribuição composta, atribuição e adição.

    =+

    • Atribuição composta, atribuição e subtração.

    =-

    =/

    • Atribuição composta, atribuição e divisão.

    • Atribuição composta, atribuição e multiplicação.

    =*

    • Atribuição composta, atribuição e módulo da divisão.

    =%

    Operadores

    • Lógicos

      • “E” lógico.

    &&

    • “OU” lógico.

    ||

    • “NOT” lógico.

    !

    • Comparação  

    ==

    !=

    Igual

    Diferente

    • Menor que

    <

    >

    Maior que

    • Menor ou igual

    <=

    • maior ou igual

    >=

    • Incremento e Decremento

      • Incremento

    ++

    • Decremento

    --

    Operadores  Lógicos  “E” lógico. &&  “OU” lógico. ||  “NOT” lógico. ! 

    Estruturas Condicionais

    • IF

    Estruturas Condicionais  IF  Este é o comando mais trivial dos condicionais. Ele testa uma
    • Este é o comando mais trivial dos condicionais. Ele testa uma expressão e executa determinado comando se esta for verdadeira. if ( expressão 1 ) { comando; }

    • Existe um complemento para o IF, no caso da expressão 1 não for verdadeira, ele executa os comando do ELSE então: if ( expressão 1 ) { comando; } else { comando alternativo; }

    Estruturas Condicionais

    • SWITCH

    Estruturas Condicionais  SWITCH  Neste comando condicional, o teste (um tipo primitivo de byte, char,
    • Neste comando condicional, o teste (um tipo primitivo de byte, char, short ou int) é comparado com cada valor em questão.

    • Se um valor coincidente é achado, a instrução (ou instruções) depois do teste é executada. Se nenhum valor for encontrado, a instrução default é executada. switch(idade) { case 15:

    out.println(“quinze”); case 20:

    out.println(“vinte”); case 30:

    out.println(“trinta”);

    default:

    out.println(“não informado ...”);

    }

    Estruturas Condicionais

    • TRY…CATCH

    Estruturas Condicionais  TRY…CATCH  Este condicional tenta primeiro executar os comandos do bloco “TRY”, se
    • Este condicional tenta primeiro executar os comandos do bloco “TRY”, se por algum motivo ocorre alguma falha ou erro então é executado o comando do bloco “CATCH”.

    • Este condicional é usado principalmente para a captura de erros.

    try { commando 1; } catch (Exception e) { commando 2;

    }

    Exemplo:

    try{

    int a = Integer.parseInt("x");

    } catch(Exception e){ out.println("erro");

    }

    Estruturas de Repetição

    • WHILE

    Estruturas de Repetição  WHILE  O loop while é usado para repetir uma instrução ou
    • O loop while é usado para repetir uma instrução ou bloco de instruções até que uma condição particular seja verdadeira: while(condição) { comando; }

    Estruturas de Repetição

    DO

    ...

    WHILE

    Estruturas de Repetição  DO ... WHILE  O loop DO ... WHILE é exatamente como

    O loop DO

    ...

    WHILE

    é exatamente como o loop WHILE, exceto

    pelo fato de que ele executará uma dada instrução ou bloco até

    que uma condição seja falsa.

    • A diferença principal entre os dois é que os loops while testam a condição antes de iniciar o loop, tornando possível que o corpo do loop nunca seja executado caso a condição seja inicialmente falsa. Os loop do while executam pelo menos uma vez antes de testar a condição: do { comando; } while(condição);

    Estruturas de Repetição

    • FOR

    Estruturas de Repetição  FOR  O loop for , repete uma instrução ou um bloco
    • O loop for, repete uma instrução ou um bloco de instruções algum número de vezes até que a condição seja satisfeita.

    • Loops for são freqüentemente usados para simples iterações na qual você repete um bloco de instruções um certo número de vezes e então para:

    for(inicialização; teste ; incremento) { comando; }

    Quebras de Fluxo

    Quebras de Fluxo  Em todos os loops (for, while e do), o loop termina quando
    • Em todos os loops (for, while e do), o loop termina quando a condição que você está testando é atingida.

    • Porém, em alguma situação, você desejará sair do loop antes do seu término normal.

    • Para isso, você pode usar as palavras chaves break e continue.

    • BREAK

    • A palavra reservada break pára imediatamente a execução do loop corrente. Se você tiver loops aninhados dentro de loop mais externo; caso contrário, o programa simplesmente continua a execução da próxima instrução após o loop.

    • CONTINUE

    • A palavra reservada continue pára o loop e começa novamente na próxima iteração.Continue é útil quando você quer ter situações de casos especiais dentro de loop.

    Recebendo dados de um formulário em JSP

    Objeto Request

    O

    objeto

    Request

    é

    responsável

    Recebendo dados de um formulário em JSP  Objeto Request  O objeto Request é responsável

    pela

    comunicação e tratamento do que vem do

    cliente para o servidor.

    É

    uma

    solicitação

    que

    aciona

    o

    processamento

    da

    página

    e

    busca

    por

    valores de parâmetros ou cookies.

    Recebendo dados de um formulário em JSP

    • Objeto Request – Métodos

    Recebendo dados de um formulário em JSP  Objeto Request – Métodos  String getParameter(String par)
    • String getParameter(String par): obtém o valor do parâmetro;

    • String getMethod(): obtém o método HTTP usado;

    • String getHeader(): obtém o cabeçalho HTTP;

    • String getRemoteHost(): obtém nome do host remoto;

    • String getRemoteAddr(): obtém IP do host remoto;

    • String getProtocol(): obtém o protocolo utilizado;

    • Cookie[] getCookies(): obtém todos os cookies recebidos;

    • HttpSession getSession(boolean cria): pega/cria sessão;

    Recebendo dados de um formulário em JSP

    Recebendo dados de um formulário em JSP  Para receber dados de um formulário HTML usamos
    • Para

    receber

    dados

    de

    um

    formulário

    HTML

    usamos

    o

    método

    getParameter

    que

    possui

    a

    seguinte sintaxe:

     
    • request.getParameter(“campo");

     
    • Este método retorna uma string com campo especificado

    o valor

    do

    • Ex:

      • String login = request.getParameter("login");

    TAGS JSP - Declarações

    TAGS JSP - Declarações  Servem para definir variáveis e métodos específicos para uma página JSP
    • Servem para definir variáveis e métodos específicos para uma página JSP

    • Sua sintaxe é : <%! declarações %>

    • Os métodos e variáveis declarados podem ser referenciados por outros elementos de criação de script dentro da mesma página JSP independente da ordem na qual a declaração ocorre em relação a estes Elementos

    TAGS JSP - Declarações

    • Declaração de variáveis :

    TAGS JSP - Declarações  Declaração de variáveis : <%! int x=0, y; String text =

    <%! int x=0, y; String text = “Texto”; %>

    • Declaração de métodos :

    <%! int soma (int x, int y) {

    return (x + y);

    } %>

    • As variáveis aqui declaradas são criadas na inicialização da página e seus valores são compartilhados por todos que a acessarem.Se uma pessoa mudar o valor de x para 1, todos que acessarem o servlet depois disso verão x=1

    TAGS JSP - Expressões

    TAGS JSP - Expressões  O resultado da avaliação de uma expressão é inserido no output
    • O resultado da avaliação de uma expressão é inserido no output da página no lugar da tag de expressão original

    • Sua sintaxe é : <%= expressão %> (não requer ; no final)

    • Não há restrição quanto ao tipo de retorno das expressões

    • Exs:

      • <%= “Mensagem” %> --> imprime : Mensagem

      • <%= msg %> --> imprime o conteúdo da var. msg

      • <%= fatorial(0) %> --> imprime o resultado da func

    TAGS JSP - Scriptlets

    TAGS JSP - Scriptlets  São blocos de código executados cada vez que a página JSP
    • São blocos de código executados cada vez que a página JSP é processada

    • Servem para criação de scripts de objetivos gerais

    • Sua sintaxe é : <% scriptlet %>

    Uma

    variável

    definida

    num

    scriptlet estará

    disponível para uso em expressões e scriptlets

    subseqüentes na mesma página

    TAGS JSP - Scriptlets

    TAGS JSP - Scriptlets  Os scriptlets são utilizados para criação de códigos arbitrários, que realizam

    Os scriptlets são utilizados para criação de códigos arbitrários, que realizam qualquer processamento que se queira.

    • Dentro de uma tag de scriptlet é possível declarar variáveis, instanciar objetos, imprimir no output da página, enfim, realizar qualquer codificação válida com a linguagem de script que está sendo utilizada, no nosso caso Java.

    Exemplo tags JSP

    <html>

    <body>

    Exemplo tags JSP <html> <body> <%-- isso é um comentário em jsp --%> <%! int count

    <%-- isso é um comentário em jsp --%>

    <%! int count = 0; %> <% count++; %>

    <%-- declaração --%> <%-- scriplet --%>

    Bem-vindo! Você é o visitante número <%= count %> <%-- expressão --%>

    </body>

    </html>

    Exercícios

    Exercícios Programação para Internet I Prof. Teresinha Letícia da Silva