Unidade 1 - Luiz Leao

Propaganda
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
Luiz Leão – [email protected]
http://www.luizleao.com
DESENVOLVIMENTO DE SISTEMAS WEB
Conteúdo Programático
• Revisão da Sintaxe Java
• Visão Geral do Ambiente Servidor
– Tomcat
– GlassFish
• Uso do NetBeans para criação de aplicativos Web
• Tecnologia Servlet
• Tecnologia JSP
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Introdução
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Introdução
• Java Standard Edition: Ambiente mais utilizado. Seu
uso é voltado para PCs e servidores.
• Java Entreprise Edition: Plataforma voltada para
redes, Internet, Intranet e afins. Contém uma série de
especificações, cada uma com funcionalidades
diferentes:
– JDBC (Java Database Connectivity): Para acesso a BD;
– JSP (Java Server Pages): Para programação front end (páginas web) e
– Servlets: pPara o desenvolvimento de aplicações web (programação
back end).
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Introdução
• Java Micro Edition: Ambiente de desenvolvimento
para dispositivos móveis ou portáteis.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Revisão da Sintaxe Java
•
•
•
•
•
Tipos de Variáveis
Arrays
Estrutura Condicional
Estrutura de Repetição
Palavras Reservadas
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Tipos de Dados
Tipo
Valores
Literais
int
inteiros com sinal 32 bits
0, -7, 12345
long
inteiros com sinal 64 bits
-12345L
float
vírgula-flutuante simples
1.234f, -10.5e6f
double
vírgula-flutuante dupla
-0.25, 1.234d
boolean
valores lógicos
true, false
char
carateres Unicode
'A', '\u2764'
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Hello World
class Hello {
public static void main(String args[]) {
System.out.println("Hello world!");
}
}
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Variáveis
int i;
int i=10;
Float total, preco;
byte mascara;
double valormedio;
Valormedio = 1.5;
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Arrays
int[] aLista;
// declaração
aLista = new int[10]; // inicialização (zeros)
// inicialização com constantes
int[] aLista = {100, 200, 300, 400, 500, 600};
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Arrays
• Os índices começam em zero (como em C/C++)
• arrays em Java têm associado um atributo length (Tamanho)
int[] aLista = { 2, 3, 5, 7, 11, 13 };
for(int i=0; i< aLista.length; i++) {
System.out.println(aLista[i]);
}
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Arrays
• Não há arrays multi-dimensionais
• Alternativa: arrays de arrays
• Permite dimensões internas não homogéneas
String[][] names={{"Mr.","Mrs.","Ms."},{"Smith","Jones"}};
System.out.println(names[0][0] + names[1][0]);
//Mr. Smith
System.out.println(names[0][2] + names[1][1]);
//Ms. Jones
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Cadeia de Caracteres
• Cadeias são objetos da classe String.
String s1 = "Hello"; // declarar e inicializar
String s2 = new String("Hello"); // alternativa
• Podemos obter o comprimento e concatenar
System.out.println(s1.length());
// output: 5
// NB: length() é um método
System.out.println(s1 + " world!");
// output: "Hello world!"
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Cadeia de Caracteres
• não são arrays de carateres
• mas podemos aceder aos carateres individuais usando
charAt()
String frase = "Leão Azul. Melhor do Norte";
int tam = frase.length();
for (int i = 0; i < tam; i++) {
System.out.println(frase.charAt(i));
}
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Cadeia de Caracteres
• Não podemos modificar o comprimento ou os carateres duma
cadeia (é um objeto imutável)
• Mas podemos construir novas cadeias por concatenação
• Alternativa: classe StringBuilder (mais tarde)
String s1 = "Hello " + "world";
String s2 = "He" + "llo world";
// s1 == s2 dá false
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Palavras Reservadas
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Palavras Não Reservadas
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Operadores Aritméticos
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Operadores Relacionais
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Operadores Lógicos
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Estruturas Condicionais
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Estruturas de Repetição
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Exemplo if
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Exemplo switch
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Exemplo for
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Exemplo While
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Exemplo do while
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Visão Geral do Ambiente Servidor
• Tomcat
• GlassFish
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Tomcat
• É servidor web Java, mais especificamente,
um container de servlets.
• O Tomcat implementa, dentre outras de menor
relevância, as tecnologias Java Servlet e JavaServer
Pages (JSP)
• Não é um container EJB.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Conteiners EJB
• EJB (Enterprise JavaBeans): É uma especificação que faz
parte da Java EE. É um componente executado em um
servidor de aplicação, que simplifica o desenvolvimento de
componentes distribuídos, transacionais e seguros.
• Os conteiners EJB implementam especificações JEE tais
como: JDBC, RMI, JavaMail, JMS, JMX etc.
• Exemplo de servidores:
– Jboss AS
– Glassfish
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Glassfish
• É um servidor de aplicação open source liderado pela
Sun Microsystems para a plataforma Java EE.
• É um conteiner EJB
• Possui versão proprietária é chamada Sun GlassFish
Enterprise Server.
• Além de suportar todas as especificações da API
Java EE, ele também define como coordená-las.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Glassfish
• Suporta também servlets, portlets, JSF e diversas
tecnologias de web service.
• Permite que desenvolvedores criem aplicações
corporativas portáveis, escaláveis e fáceis de integrar
com código legado.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Servlets
• São a primeira forma que veremos de criar páginas
dinâmicas com Java.
• Usaremos a própria linguagem Java para isso,
criando uma classe que terá capacidade de gerar
conteúdo HTML.
• O nome "servlet" vem da ideia de um pequeno
servidor (servidorzinho, em inglês) cujo objetivo é
receber chamadas HTTP, processá-las e devolver
uma resposta ao cliente.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Servlets
• O comportamento das servlets foi definido na classe
HttpServlet do pacote javax.servlet.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Servlets
public class HelloWorld extends HttpServlet {
protected void service (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
// escreve o texto
out.println("<html>");
out.println("<body>");
out.println(“Hello World!!”);
out.println("</body>");
out.println("</html>");
}
}
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Servlets
• Para escrevermos uma servlet, criamos uma classe
Java que estenda HttpServlet e sobrescreva um
método chamado service.
• Esse método será o responsável por atender
requisições e gerar as respostas adequadas.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Servlets
protected void service(HttpServletRequest
request, HttpServletResponse response)
throws ServletException, IOException {
...
}
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Servlets
• Repare que o método recebe dois objetos que
representam, respectivamente, a requisição feita pelo
usuário e a resposta que será exibida no final.
• Veremos que podemos usar esses objetos para obter
informações sobre a requisição e para construir a
resposta final para o usuário.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Mapeando uma Servlet no web.xml
• Acabamos de definir uma Servlet, mas como vamos acessála pelo navegador?
• Qual o endereço podemos acessar para fazermos com que
ela execute?
• O container não tem como saber essas informações, a não
ser que digamos isso para ele.
• Para isso, vamos fazer um mapeamento de uma URL
específica para uma servlet através do arquivo web.xml, que
fica dentro do WEB-INF.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Mapeando uma Servlet no web.xml
• Uma vez que chamar a servlet pelo pacote e nome da
classe acabaria criando URLs estranhas e
complexas, é comum mapear, por exemplo, uma
servlet como no exemplo, chamada OiMundo para o
nome primeiraServlet:
• Começamos com a definição da servlet em si, dentro
da tag <servlet>:
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Mapeando uma Servlet no web.xml
<servlet>
<servlet-name>primeiraServlet</servlet-name>
<servlet-class>br.com.caelum.servlet.OiMundo</servlet-class>
</servlet>
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Mapeando uma Servlet no web.xml
• Em seguida, mapeie nossa servlet para a URL /oi.
• Perceba que isso acontece dentro da tag <servletmapping> (mapeamento de servlets) e que você tem
que indicar que está falando daquela servlet que
definimos logo acima: passamos o mesmo servletname para o mapeamento.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Mapeando uma Servlet no web.xml
<servlet-mapping>
<servlet-name>primeiraServlet</servlet-name>
<url-pattern>/oi</url-pattern>
</servlet-mapping>
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Mapeando uma Servlet no web.xml
• Portanto, são necessários dois passos para mapear
uma servlet para uma URL:
• Definir o nome e classe da servlet;
• Usando o nome da servlet, definir a URL.
• A servlet pode ser acessada através da seguinte
URL:
• http://localhost:8080/aulajsp/oi
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
TECNOLOGIA JSP
• JavaServer Pages
• Tecnologia baseada em Servlet utilizada na camada WEB
• Apresenta conteúdos estáticos e dinâmicos
• Baseada em texto
• Contêm em sua maior parte template texto HTML misturado
com tags especificando conteúdo dinâmico
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
TECNOLOGIA JSP
• São documentos textuais muito parecidas com HTML
• Código mais fácil de manter
• Familiares para desenvolvedores com conhecimentos em
HTML
• Dedicação dos desenvolvedores para a criação de templates
HTML
• Possui suporte built-in para o uso de componentes de software
reutilizáveis (JavaBeans)
• Parte da solução Java para o desenvolvimento de aplicações
WEB
• Não necessita de uma compilação explícita pelo
desenvolvedor
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Sintaxe e Semântica JSP
● JSP podem ser vistas como documentos HTML ou XML com scripts
JSP encaixados
● Elementos de script JSP permitem inserir código Java na Servlet
gerada
● A maneira mais simples de tornar a JSP dinâmica é pelo encaixe direto
de elementos script no modelo de dados
● Elementos script JSP:
– Scriptlets
– Expressões
– Declarações
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Scriptlets
● Inserir diretamente código Java:
<% Java code; %>
– Qualquer código Java que poderia ser utilizado dentro de um
método
● Útil para encaixar códigos simples
● Nenhum limite específico a respeito da complexidade de
códigos
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Expressões
● Fornece um meio de inserir valores Java diretamente na saída:
<%= Java Expression %>
● Note que o ponto-e-vírgula ( ; ) não aparece no final do código
dentro da tag
● Desde que elas são avaliadas em tempo de execução, as
expressões têm acesso completo a informação sobre a requisição
● É mais simples que escrever:
out.println(Java Expression);
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Expressões
● Objetos pré-definidos, chamados objetos implícitos, se tornam
disponíveis para os desenvolvedores JSP de modo a simplificar as
expressões
● Exemplos:
– request: objeto da classe HttpServletRequest;
– response: objeto da classe HttpServletResponse;
– session: objeto da classe HttpSession associada ao request (se
houver)
– out: objeto da classe PrintWriter, utilizada para enviar a
saída para o cliente.
Exemplo:
Hostname: <%= request.getRemoteHost() %>
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Declarações
● Permite a definição de métodos ou variáveis
<%! Java Code %>
● Utilizada para encaixar código como as scriptlets
● São inseridas no corpo principal da classe servlet, fora do
método _jspService() processando o request
– Vantagem: O código em uma declaração pode ser usado para
declarar novos métodos e variáveis globais de classe
– Desvantagem: O código em declarações não é protegido
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Declarações
● Lembretes ao utilizar a tag de declaração:
– Iniciado por <%! e finalizado por %>
– As instruções devem seguir a sintaxe Java padrão
– Declarações não geram saída
● Desde que as declarações não geram nenhuma saída, elas
normalmente são utilizadas em conjunto com expressões JSP ou
scriptlets
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
• O Exemplo é dividido em duas partes. A primeira cria a classe
Pessoa e na segunda o objeto p é criado e sua manipulação
se inicia passando nome e idade que posteriormente são
impressos.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Condicional if
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
While
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Looping For
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
JavaBeans: Programação baseada em componentes
• O que é um bean?
• Um componente JavaBeans, ou simplesmente bean, é uma classe Java que, quando
chamada em um JSP ou Servlet, segue certas regras .
• Os beans são acionados em JSP por elementos chamados action element, executandos
quando um JSP é requisitado.
• Veja a sintaxe:
<jsp:useBean id = “id_do_Bean” class = “pacote.classe_do_bean”
scope = “tipo_de_escopo”>
• Temos que usar um identificador, o nome da classe e um escopo de vida do bean.
• Para definir o escopo, há quatro extensões disponíveis: page, request, session e application.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
JavaBeans: Programação baseada em componentes
• Um bean de escopo de página (page) só está disponível
dentro da página de JSP e é destruído quando a página
termina de gerar sua resposta à requisição.
• Um bean de escopo de requisição (request) é destruído
quando a resposta é enviada.
• Um bean de sessão (session) é destruído quando a sessão
associada a ele é destruída.
• Um bean de escopo de aplicação (application) é destruído
quando a aplicação web é destruída.
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
UNIDADE I – Criação de Aplicativos Web
DESENVOLVIMENTO DE SISTEMAS WEB
Resumindo
•
•
•
•
•
Sintaxe Java
Servidores
Servlet
JSP
JavaBeans
UNIDADE I – Criação de Aplicativos Web
Download