Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduo
Plano de aula ..\Apresentao do Plano de Ensino.ppt Metodologia do curso
O incio da Internet
Desenvolvida pela empresa ARPA (Advanced Research and Projects Agency) em 1969, com o objetivo de conectar os departamentos de pesquisa, esta rede foi batizada com o nome de ARPANET. Antes da ARPANET, j existia outra rede que ligava estes departamentos de pesquisa e as bases militares, mas como os EUA estavam em plena guerra fria, e toda a comunicao desta rede passava por um computador central que se encontrava no Pentgono, sua comunicao era extremamente vulnervel.
O que a Internet
Em sntese, a Internet um conjunto de redes de computadores interligadas que tem em comum um conjunto de protocolos e servios, de uma forma que os usurios conectados possam usufruir de servios de informao e comunicao de alcance mundial.
Protocolo TCP/IP
Depois de algumas pesquisas, a ARPANET mudou para um novo protocolo chamado TCP/IP (Transfer Control Protocol/Internet Protocol) desenvolvido no UNIX. A maior vantagem do TCP/IP era que ele permitia (o que parecia ser na poca) o crescimento praticamente ilimitado da rede, alm de ser fcil de implementar em uma variedade de plataformas diferentes de hardware de computador.
Endereo IP
Endereo IP (Internet Protocol) O que um endereo IP? Cada mquina na Internet tem um nmero de identificao exclusivo chamado endereo IP. Um endereo IP comum se parece com este: 216.27.61.137 Para que fique mais fcil para lembrarmos estes nmeros, os endereos IP normalmente so expressos no formato decimal com um "nmero decimal pontilhado" como o descrito acima. No entanto, os computadores se comunicam na forma binria. Veja o mesmo endereo IP no sistema binrio: 11011000.00011011.00111101.10001001
Endereo IP
Obtendo o seu endereo IP: http://www.ip-adress.com/ IP- address.com - What is my IP address? IP address tracer, Broadband Speedtest and DNS Tools.
My IP address Free IP Address tracer and IP address lookup.htm
My IP address: 189.71.201.92 IP Address Location: Aracaju in Brazil ISP of this IP: Tele Norte Leste Participaes S.A. Apresenta um mapa do Google com a localizao da cidade de Aracaju.
URI e URL
URI
Uniform Resource Identifier (Identificador Unificado de Recurso) , basicamente, uma string (conjunto de caracteres) que seguem uma certa sintaxe e usado para definir e identificar um recurso na web. O tipo mais comum de URI a URL.
URL
Uniform Resource Locator (Localizador Unificado de Recurso) Um tipo especfico de URI, usado para definir a localizao de um recurso na web. Geralmente dizemos que a URL o endereo de uma pgina web. Um exemplo de URL: http://www.exemplo.com/pagina/
Localizando um computador
Localizando um computador na rede
URL (Uniform Resource Locator) Localizador de Recursos Uniforme Servidores de Nomes Se o primeiro servidor no contiver o endereo, ele encaminha a um servidor que esteja mais acima na hierarquia
http://meuServidor/meuCaminho/meuArquivo.jsp
Navegadores Web
Navegadores (browsers):
Internet Explorer Netscape Mozzila Mozzila Firefox HotJava Safari (Apple) Google Chrome Outros
Comunicao na Internet
Protocolos de Comunicao
Protocolo TCP/IP Protocolos HTTP, FTP, SMTP
Protocolos de Comunicao
HTTP (HyperText Transfer Protocol)
Transfere imagens, sons e texto
Pgina Web
Abra uma pgina Web Clique com o boto direito sobre a pgina Selecione Exibir Cdigo-Fonte O cdigo HTML que descreve a pgina ser exibido. Um arquivo com o cdigo HTML tem geralmente uma terminao .htm ou .html Outros arquivos podem ter terminao .asp, .jsp e outras.
Linguagem HTML
Essa linguagem foi desenvolvida em 1992 por Tim Berners Lee e Robert Caillau no CERN, que o Centro Europeu de Pesquisas de Fsica de Partculas. O HTML um exemplo do SGML (Standard Generalized Markup Language). Originalmente o HTML definia estritamente a estrutura lgica de um documento, e no a sua aparncia fsica. Mas, com a presso dos usurios (principalmente da indstria), as verses posteriores do HTML foram foradas a prover cada vez mais e mais controle da aparncia do documento.
Linguagem HTML
Tags bsicas do HTML Formatao de caracteres World Wide Web Consortium (W3C) CSS (Cascading Style Sheet) Definindo fontes com o CSS Manipulando imagens
HTML
HTML
Hypertext Markup Language (Linguagem de marcao de hipertexto) Linguagem de marcao (que contm elementos que delimitam um determinado contedo para definir o seu papel ou significado dentro do texto) usada para estruturar pginas web. Os documentos HTML so simples arquivos de texto que contm tags de marcao . Essas etiquetas definem os elementos da linguagem HTML e os seus contedos.
Tags HTML
Uma tag uma marca que ser interpretada pelo navegador (browser). Exemplo:
Incio: <html> Fim: </html> Se o navegador no identificar uma tag, ele ignora sem dar nenhuma mensagem de erro. Pode-se usar o Bloco de Notas para digitar os comandos em HTML. OBS.: O HTML no sensvel ao contexto.
</html>
Elementos
Elemento
Um elemento uma estrutura semntica, composta de: tag de abertura, contedo e tag de fechamento. Um pargrafo, por exemplo, um elemento. Da seguinte forma: <p>Os estudantes representam uma parcela importante de uma sociedade.</p> Ao encontrar essa estrutura, um user-agent vai entend-la como sendo um pargrafo.
Tags
Tag um cdigo usado para marcar o incio e, onde for requerido, o fim de um elemento HTML. H, como exposto acima, tags de abertura e de fechamento. Uma tag de abertura representada por um sinal de menor (<), um nome de elemento HTML, e um sinal de maior (>) (ex. <p>) e deve ser colocada imediatamente antes do incio do contedo do elemento. Uma tag de fechamento se diferencia de uma de abertura apenas por uma barra (/) antes do nome do elemento (ex. </p>) e deve ser colocada imediatamente aps o fim do contedo do elemento.
Atributos
Atributos servem para definir uma propriedade de um elemento HTML. Os atributos HTML devem ser colocados sempre na tag de abertura, logo aps o nome do elemento, precedido de um espao e composto de um nome de atributo, um sinal de igual (=) e um valor de atributo, cercado por aspas duplas (") ou simples () Um bom exemplo de atributo o id, que serve para identificar, de maneira nica, um elemento dentro de um documento HTML. Exemplo: <p id="nome"> Outro bom exemplo o atributo href, usado para definir uma referncia de hipertexto (link) em um elemento A ou LINK. Exemplo: <a href="http://brunotorres.net/"> A tag alt referida no incio do texto , na verdade, um atributo, usado para definir um texto, que deve substituir uma imagem, caso a mesma no esteja disponvel ou no seja suportada pelo user-agent (alt abreviatura de alternate, que significa substituto e no alternativo, como se pensa em geral). Exemplo: <img src="/img/bruno_um_milhao.jpg" alt="Foto do Bruno Torres com um milho de dlares">.
User-agent
User-agent
Uma aplicao que age como cliente em uma transao cliente-servidor feita sobre um determinado protocolo de rede. Na web esse protocolo o HTTP e os user-agents so os browsers, crawlers, dispositivos mveis, leitores de tela, painis em braile e qualquer outra aplicao usada por um usurio para navegar por pginas web.
Crawler (rastreador)
Crawler (ou spider, ou robot)
Qualquer aplicao cuja funo principal seja navegar automaticamente por pginas na web, seguindo hiperlinks (e usando os contedos dessa pgina para algum fim, como salvar seu contedo, ou retirar dele alguma informao especfica). O exemplo clssico de crawler so os programas usados por sistemas de busca (como o Google) para indexar pginas na web.
Exemplo 2
<html> <!-- pag002.htm --> <head> <title>Minha primeira pgina</title> </head> <body> <b>Esta uma pgina web</b> </body> </html>
Exemplo 3
<html> <!-- pag003.htm --> <head> <title>Como definir a cor de fundo da pgina</title> </head> <body bgcolor="yellow"> <b>Esta uma pgina web</b> </body> </html>
Exemplo 4
<html> <!-- pag004.htm --> <head> <title>Como definir a cor do texto da pgina</title> </head> <body bgcolor="blue" text="yellow"> <b>Esta uma pgina web</b> </body> </html>
Exemplo 5
<html> <!-- pag005.htm --> <head> <title>Como definir a cor do texto da pgina usando o CSS</title> <style type="text/css"> body {background-color:red; color:white} </style> </head> <body> Esta uma pgina web que tem um fundo vermelho e texto em branco. </body> </html>
Contedo do arquivo pag007.htm: <html> <!-- pag007.htm --> <head> <title>Como usar um arquivo CSS externo</title>
<html> <!-- pag008.htm --> <head> <title>Como inserir ttulos e cabealhos em uma pgina web</title>
</head> <body> <h1>Este o cabealho 01</h1> <h2>Este o cabealho 02</h2> <h3>Este o cabealho 03</h3> <h4>Este o cabealho 04</h4> <h5>Este o cabealho 05</h5> <h6>Este o cabealho 06</h6> <h7>Este o cabealho 07</h7> </body> </html>
Contedo do arquivo pag010.htm: <html> <!-- pag010.htm --> <head> <title>Como alinhar o texto de um ttulo</title> </head> <style type="text/css"> h2 {text-align: center} h3 {text-align: right} </style> <body> <h2>Este um ttulo</h2> <h2>Este outro ttulo</h2> <h3>Este um novo ttulo</h3> <h3>Mais um ttulo</h3> </body> </html>
Formulrios
Utilizados para envio de informaes do cliente para o servidor. Um formulrio deve ser definido dentro da pgina HTML entre as tags <body> e </body>
Formulrio bsico
Definindo um formulrio: <form> Digite seu nome:<br/> <input type=text name=nome /><br/> <input type=submit value=Enviar /> </form>
<html> <!-- exemplo8.htm --> <head> <title>Como definir um formulrio</title> <style type="text/css">
body {background-color:red; color:white} </style> </head> <body> Esta uma pgina web com um formulrio. <form> Digite seu nome:<br/> <input type=text name=nome /><br/> <input type="submit" value="Enviar!" /> </form> </body> </html>
<html> <!-- pag012.htm --> <head> <title>Como criar pargrafos numa pgina</title> </head> <style type="text/css"> body {background-color:beige; color:black} p {text-align: justify} h2 {text-align: center} </style> <body> <h2>A dificuldade de aprender</h2> <p>Sempre que quisermos aprender alguma coisa teremos que nos esforar para que isso seja possvel. Devemos sempre lembrar que muitas vezes no poderemos dispor de um professor para tal finalidade.</p> <h2>Os professores fundadores do curso de Computao da UFS</h2> <p>Quando o curso de Bacharelado em Cincia da Computao foi criado s existiam quatro professores para ministrarem as disciplinas:<b><i> <br/>Raimundo Machado Costa,<br/>Antnio Monteiro Freire,<br/>ngela Maria Carvalho Souza e<br/>Ana Rosimere Soares.</i></b> </p> </body> </html>
Links
Link
Um link (ou hyperlink e web link) a conexo entre um documento e outro. Os links so representados pelo elemento <a>. Esse elemento <a> tem uma propriedade href.
Propriedade href
Exemplo:
<a href=http://www.meusite.com/pagina.htm> clique aqui:</a>
Hiperlink
Hiperlink (ou simplesmente link)
Elemento bsico do hipertexto, um link caracteriza uma referncia a um documento externo. Em HTML, os links so definidos usando o elemento A que contm a referncia, no caso uma URI, em seu atributo HREF.
Links
Referncia relativa
<a href=../pagina.htm>Pagina em um nivel acima</a> <a href=../../pagina.htm>Pagina em dois niveis acima</a> Cada nvel acima representado por ../
Referncia absoluta
<a href=http://www.meusite.com/pagina.htm> clique aqui:</a>
Especifica o caminho completo.
Links
Efeitos visuais
A propriedade hover produz efeitos visuais em um link. Exemplo: <style type=text/css>
a: hover {color:red}
</style>
Usando JavaScript
O JavaScript uma linguagem interpretada utilizada para enviar cdigo ao navegador. O browser quem dever interpretar e executar o cdigo. Os navegadores normalmente bloqueiam o contedo em script. O JavaScript sensvel ao contexto.
Usando JavaScript
O JavaScript utiliza uma sintaxe igual de C/C++ e do Java. Para um script poder ser executado em um browser necessrio que o usurio d a sua permisso. Servios de validao de dados podem ser efetuados no cliente com script. As variveis em JavaScript no tm tipo.
Usando JavaScript
Um cdigo script pode ser colocado dentro do cdigo HTML de uma pgina a ser enviada para um cliente, usando as seguintes tags:
<html> <!-- JScript001.htm --> <head><title>Trabalhando com JavaScript</title> </head> <body> <SCRIPT LANGUAGE="JavaScript"> document.write(Este o meu primeiro JavaScript); </SCRIPT> </body> </html>
<html> <!-- JScript002.htm --> <head><title>Trabalhando com JavaScript</title> </head> <body> <SCRIPT LANGUAGE="JavaScript"> document.write(<b>Este o meu primeiro JavaScript. Agora em negrito</b>); </SCRIPT> </body> </html>
<html> <!-- JScript003.htm --> <head><title>Trabalhando com JavaScript</title> </head> <body> <SCRIPT LANGUAGE="JavaScript"> var Um = 20; var Dois = 30; alert(Um+Dois); </SCRIPT> </body> </html>
<html> <!-- JScript007.htm --> <head><title>Trabalhando com JavaScript</title> </head> <body> <SCRIPT LANGUAGE="JavaScript"> // Este um comentrio de linha var Num = 10; if (Num == 10){ alert(O valor de Num = +Num); /* Este um comentrio de vrias linhas */ document.write(O valor de Num = , Num);} </SCRIPT> </body> </html>
Pgina 1 <html> <!-- JScript009.htm: Soma de dois nmeros --> <head><title>Trabalhando com JavaScript</title> <style type="text/css"> <!-body {background-color:beige; font-family: verdana; color:black; font-size: 80%} //--> </style> <!-- O local correto para escrever uma funo na rea de cabealho --> <SCRIPT LANGUAGE="JavaScript"> <!-function Calcular(){ /* eval() -> funo que transforma uma string em nmero */ var primeiroNum = eval(document.form1.text1.value); var segundoNum = eval(document.form1.text2.value); var resultado = primeiroNum+segundoNum; alert(Soma = +resultado); }
Pgina 2 //--> </SCRIPT> </head> <body> <form name="form1"> Primeiro nmero: <input type="text" name="text1"><br> Segundo nmero: <input type="text" name="text2"><br> Clique aqui para calcular a soma: <input type="button" value="Calcular" onClick="Calcular()"> </form> </body> </html>
Usando caixa de escolha: Pgina 1 <html> <!-- JScript014.htm --> <head><title>Trabalhando com JavaScript</title> </head> <body> <form name="form1"> Escolha um Estado e veja sua capital:<br /> <select name="estados" onChange="Ver_capital()"> <option>Selecione um Estado</option> <option value="Sergipe">Sergipe</option> <option value="Alagoas">Alagoas</option> <option value="Bahia">Bahia</option> <option value="Pernambuco">Pernambuco</option> <option value="Paraba">Paraba</option> </select><br /><br /> Esta a Capital do Estado escolhido:<br /> <input type="text" name="capital"> </form>
Pgina 2 <SCRIPT LANGUAGE="JavaScript"> <!-function Ver_capital(){ var Estado= document.form1.estados.value; switch(Estado){ case 'Sergipe': { document.form1.capital.value = 'Aracaju'; break; } case 'Alagoas': { document.form1.capital.value = 'Macei'; break; } case 'Bahia': { document.form1.capital.value = 'Salvador'; break; }
Pgina 3 case 'Pernambuco': { document.form1.capital.value = 'Recife'; break; } case 'Paraba': { document.form1.capital.value = 'Joao Pessoa'; break; } } // fim do switch } // fim da funo //--> </SCRIPT> </body> </html>
Usando o comando while: <html> <!-- Script015.htm --> <head><title>Trabalhando com JavaScript</title> </head> <body> <!-- Comando while --> <SCRIPT LANGUAGE="JavaScript"> <!-var x = 1 document.write(<b>Impresso de linhas numeradas usando o comando while</b><hr>); while (x<=10) { document.write(Esta a linha de texto n + x + <br>); x++; } document.write(<hr>); //--> </SCRIPT> </body> </html>
Usando o comando for: <html> <!-- Script016.htm --> <head><title>Trabalhando com JavaScript</title> </head> <body> <!-- Comando while --> <SCRIPT LANGUAGE="JavaScript"> <!-var x; document.write(<b>Impresso de linhas numeradas usando o comando for</b><hr>); for (x=1; x<11; x++) document.write('Esta a linha de texto n '+x+'<br />'); document.write('<hr>'); //--> </SCRIPT> </body> </html>
Pgina 1
<html> <!-- JScript018.htm: Soma de dois nmeros --> <head><title>Trabalhando com JavaScript</title> <style type="text/css"> <!-body {background-color:beige; font-family: verdana; color:black; font-size: 80%} //--> </style> <!-- O local correto para escrever uma funo na rea de cabealho --> <SCRIPT LANGUAGE="JavaScript"> <!-function Soma(x, y){ var Resultado = x + y; return Resultado; } //--> </SCRIPT>
Pgina 2 <SCRIPT LANGUAGE="JavaScript"> <!-function Exibir(){ var Um = eval(document.form1.text1.value); var Dois = eval(document.form1.text2.value) alert('Soma = '+Soma(Um, Dois)); // Chama a funo } //--> </SCRIPT> </head> <body> <form name="form1"> <h2>Chamando a funo com argumentos</h2><br /><hr /> <h4>Soma de dois nmeros:</h4><br /> Primeiro nmero: <input type="text" name="text1"><br /><br /> Segundo nmero: <input type="text" name="text2"><br /><br /> <!--JavaScrit:Exibir() ->o link dever executar um cdigo JavaScript --> <a href="JavaScript:Exibir()">Clique aqui para calcular a soma!</a> </form></body> </html>
<SCRIPT LANGUAGE="JavaScript"> <!-function Alterar(){ document.meuForm.meuBotao.value="Voc me clicou!"; } //--> </SCRIPT> </head> <body> <form name="meuForm">
<h2>Alterando a mensagem de um boto</h2><br /><hr /> <input type="button" name="meuBotao" value="Clique aqui" onClick="Alterar()"/><br /><br />
</form> </body> </html>
XML
O que XML?
XML (eXtensible Markup Language) XML uma linguagem de marcao semelhante ao HTML. XML foi projetada para transportar e armazenar dados. As tags XML no so predefinidas. O programador deve definir as suas prprias tags. XML foi projetada para ser auto-descritiva. XML tem o seu uso recomendado pelo W3C.
XML
Qual a diferena entre XML e HTML?
XML no substitui o HTML. XML e HTML tm objetivos diferentes:
XML foi projetada para transportar e armazenar dados com o foco nos dados em si. HTML foi projetada para exibir dados com o foco na maneira de visualizar os dados.
XML no produz uma ao direta. Foi criada para estruturar, armazenar e transportar informaes.
XML
Exemplo de como guardar um recado para Pedro mandado por Maria:
<recado> <para>Pedro</para> <de>Maria</de> <titulo>Lembrete</titulo> <conteudo>No se esquea do combinado para o fim de semana</conteudo> </recado>
Parser XML
Todos os navegadores (browsers) modernos tm um parser que pode ser usado para ler e manipular um arquivo XML. Todos os parsers lm o arquivo XML e o convertem para um objeto XML DOM (Document Object Model). O DOM enxerga o documento XML como uma estrutura em rvore.
O Que XML?
Exemplo Documento XML
<?xml version="1.0" > <livros> <livro> <ISBN>1234</ISBN> <titulo>Inside XML</titulo> <editora>New Riders</editora> <edio>3</edio> <autor> <nome>Steven</nome> <endereco>NY</endereco> </autor> <autor> <nome>Holzner</nome> <endereco>Miami</endereco> </autor> </livro> <livro> ... </livro> </livros>
Elemento Raiz
livros
livro
livro
autor endereco
Holzner
NY
Steven
O Que XML?
Linguagem de Marcao-Descreve o contedo de um documento atravs de marcas .
Documento sem Marcas Documento com Marcas
Horrio Aula XML Wed, Jan 29, 2003 4:18 PM vvidal@lia.ufc.br eti-l@lia.ufc.b
A aula comear as 19:45
<e-mail> <head> <subject> Horrio Aula XML </subject> <data> Wed, Jan 29, 2003 4:18 PM</data> <from> vvidal@lia.ufc.br </from> <to> eti-l@lia.ufc.br </to> </head> <body> A aula comear as 19:45 </body> </e-mail>
XML DOM
O contedo do documento XML pode ser modificado ou deletado e novos elementos podem ser criados. No exemplo que se segue, usaremos a referncia DOM para acessar o texto do elemento <para>:
xmlDoc.getElementsByTagName(para)[0].childNodes[0].nodeValue
XML DOM
Onde:
xmlDoc -> documento XML criado pelo parser xmlDoc.getElementsByTagName(para)[0] -> primeiro elemento <para> childNodes[0] -> primeiro n filho do elemento <para> (o n texto) nodeValue -> o valor do n (o texto existente)
HTML DOM
O HTML DOM define uma maneira padro para acessar e manipular documentos HTML usando JavaScript. No exemplo seguinte mostrado uma referncia DOM que permite a troca do texto de um elemento HTML onde id=para:
Exemplo:
document.getElementById(para).innerHTML=
HTML DOM
Onde:
Document -> documento HTML getElementById(para) -> elemento HTML onde id=para innerHTML -> o texto contido no elemento HTML
XML
Exemplo do uso de um arquivo XML numa pgina HTML: Definindo e exibindo um catlogo de CDs: Ttulo do CD Cantor Pas de origem Gravadora Preo Ano da gravao Vamos usar 3 arquivos: Arquivo XML (define elementos e atributos e o uso do CSS) Arquivo CSS (define como formatar os elementos) Arquivo HTML (manipula o arquivo XML)
XML DOM
O objeto DOM o modelo dos objetos que formam a hierarquia de toda a estrutura de uma pgina Web.
Pgina 2 <CD> <TITLE>Asa Branca</TITLE> <ARTIST>Luis Gonzaga</ARTIST> <COUNTRY>Brasil</COUNTRY> <COMPANY>Som Brasil</COMPANY> <PRICE>15.00</PRICE> <YEAR>1950</YEAR> </CD> </CATALOG>
Pgina 1 <html> <body> <b>Catalogo de CDs</b><br/><br/> <script type="text/javascript"> var xmlDoc=null; if (window.ActiveXObject) {// code for IE xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } else if (document.implementation.createDocument) {// code for Mozilla, Firefox, Opera, etc. xmlDoc=document.implementation.createDocument("","",null); } else { alert('Your browser cannot handle this script'); } if (xmlDoc!=null) { xmlDoc.async=false; xmlDoc.load("cd_catalog.xml"); document.write("<table border='1'>");
Pgina 2 var x=xmlDoc.getElementsByTagName("CD"); for (i=0;i<x.length;i++) { document.write("<tr>"); document.write("<td>"); document.write( x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue); document.write("</td>"); document.write("<td>"); document.write( x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue); document.write("</td>"); document.write("</tr>"); } document.write("</table>"); } </script> <br/><br/> Fim do catalogo. </body> </html>
XSL
XSL (eXtensible Stylesheet Language) usada na definio das regras para transformar XML em HTML. A XSL pode ser usada para:
Transformar XML em HTML Ordenar dados em documentos XML Formatar dados XML
XSL e XSLT
XSLT (eXtensible Stylesheet Language Transformations) uma linguagem para transformao de documentos XML em documentos XHTML ou para outros documentos XML. Quando a World Wide Web Consortium (W3C) produziu seu primeiro trabalho sobre XSL, a linguagem continha a sintaxe para transformao e para formatao em documentos XML. Mais tarde, o Grupo de Trabalho da W3C dividiu o documento original em Recomendaes separadas: XSLT e XSL-FO (eXtensible Stylesheet Language Formatting Objects) Veja o exemplo com XSL:
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> <!-- Edited by XMLSpy --> <catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd> <cd> <title>Hide your heart</title> <artist>Bonnie Tyler</artist> <country>UK</country> <company>CBS Records</company> <price>9.90</price> <year>1988</year> </cd> </catalog>
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Edited by XMLSpy --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Servidores Web
Apache Tomcat
Trabalha usando a porta 8080
Internet Information Server IIS Java 2 Plataform, Enterprise Edition - J2EE JBoss Outros
O servidor Tomcat
o servidor para aplicaes web no modelo cliente/servidor Processa requisies de clientes usando as tecnologias JSP e Servlets Segue o padro bsico para aplicaes web
Servidor Local
Para saber se o servidor Tomcat est rodando, abra o navegador e v ao endereo: http://localhost:8080/ ou http://127.0.0.1:8080/
Servidor Local
Para acessar uma pgina que est localizada no computador do usurio: http://localhost:8080/pgina.jsp ou http://127.0.0.1:8080/pgina.jsp A porta 8080 usada pelo servidor Tomcat.
O servidor Tomcat
Obtendo o Tomcat
Desenvolvido pela fundao Apache, no projeto Jakarta, tendo cdigo aberto e gratuito. Pode ser obtido em http://jakarta.apache.org Obs.: O Tomcat j est contido no NetBeans
O servidor Tomcat
Aps a sua instalao, deve-se definir as seguintes varveis de ambiente:
JAVA_HOME
c:\Arquivos de programas\Java
CATALINA_HOME
c:\Tomcat
OBS.: Quando instalado dentro do NetBeans essas definies so feitas pelo instalador.
O servidor Tomcat
Para usar o Tomcat sem o Netbeans, cria-se o cdigo da aplicao e copia a pasta da mesma para o diretrio do Tomcat, colocando na pasta webapps, que a pasta default para o Tomcat criar o continer com a aplicao.
Servidor Web
Diretrio raiz do servidor. Todo servidor tem uma pasta default onde so colocados os aplicativos a serem utilizados. Todo servidor tem nesta pasta uma pgina default chamada:
index.tipo ou default.tipo, onde tipo pode ser: htm, jsp, asp, etc.
Quando um cliente acessa o servidor Web, esse acesso desviado para esta pasta default.
O servidor Tomcat
O Tomcat porm no implementa um container EJB (aplicaes em 3 camadas). Para aplicaes que utilizam Enterprise JavaBeans (EJB), voc deve procurar um servidor de aplicaes completo, como JBoss ou o J2EE, entre outros.
Solicitaes e respostas
Solicitao (request) cliente
Encapsula as informaes enviadas pelo navegador em cada solicitao.
Tecnologias Web
Aplicativos CGI (Common Gateway Interface) exe Aplicativos ISAPI (NSAPI) - (Internet Server Application Programming Interface) - dll Tecnologia ASP (Active Server Pages) Tecnologia JSP (Java Server Pages)
Tecnologias Web
Aplicaes distribudas e multicamada:
Camada do cliente Camada da Web Camada de negcios Camada de dados persistentes
Usando o NetBeans
The NetBeans IDE is a free, open-source Integrated Development Environment for software developers. The IDE runs on many platforms including Windows, Linux, Solaris, and the MacOS. It is easy to install and use straight out of the box. The NetBeans IDE provides developers with all the tools they need to create professional cross-platform desktop, enterprise, web and mobile applications.
Usando o NetBeans
O NetBeans IDE um software livre de cdigo aberto voltado para desenvolvedores de softwares. O IDE roda em muitas plataformas incluindo Windows, Linux, Solaris e MacOS. muito fcil de instalar e de uso direto. O NetBeans IDE prov o desenvolvedor com todas as ferramentas necessrias para criar de modo profissional aplicaes normais, aplicaes enterprise, web e mveis.
Usando o NetBeans
Criando uma aplicao desktop simples para imprimir uma mensagem na console (HelloWordApp).
Criando uma aplicao desktop simples para calcular uma soma (Exemplo1).
Aplicao Desktop
Diretrios de uma aplicao desktop:
Web Pages Source Packages Test Packages Libraries Test Libraries
HelloWordApp
public class HelloWorldApp { /** Creates a new instance of HelloWorldApp */ public HelloWorldApp() { } public static void main(String[] args){ System.out.println("Ol todos vocs! Bem-vindos Programao Web!"); } }
Exemplo1
public class Main { public static void main(String[] args) { int n, c=0, s=0; /* Soma os nmeros de 1 at n */ String str = JOptionPane.showInputDialog ("Digite o valor de N:"); n = Integer.parseInt(str); while (c<n){ c++; s+=c; } JOptionPane.showMessageDialog(null,"Soma = " + s, "Resultado", JOptionPane.INFORMATION_MESSAGE); } }
Criando uma aplicao web utilizando a pgina default index.jsp com um Form e uma pgina Resposta (Bemvindo).
Usando o NetBeans
Na IDE do NetBeans temos: Projetos Arquivos Servios Em servios temos: Databases Web Services Enterprises Beans Servers Web Servers
Aplicao Web
Diretrios de uma aplicao Web:
Pginas Web Arquivos de Configurao Recursos do Servidor Pacotes de Fontes Pacotes de Teste Bibliotecas Bibliotecas de Testes
ExemploWeb
<html> <!- - index.jsp - -> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h2>Ol vocs! Bem-vindos Programao Web!</h2> </body> </html>
Tecnologia JSP
Java Server Pages uma tecnologia da Sun que se utiliza de pginas HTML com cdigo script dentro da pgina: <body>Pgina JSP <% cdigo Java %> </body>
Tecnologia Servlet
Os servlets so programas Java que rodam no servidor, sendo carregados apenas uma vez e executados de forma multi-thread. Os servlets processam requisies Get e Post de pginas de clientes. Essa tecnologia dever ser mostrada mais adiante.
Scriptlets
So blocos de cdigo Java colocados nas pginas HTML que ficam limitados entre as tags <% e %>. Exemplo: <% int p = 0; p++; %> O cdigo Java dos Scriptlets roda no lado do servidor.
Usando Scriptlets
Um scriptlet criado anexando cdigo java pgina JSP, com o auxlio das tags <% e %>; Exemplo 1: <% String s1 = resposta; s1 = s1 + certa; %> <p> Dados obtidos: <br /> Exemplo 2: <h1> Al <%= name %>, <br /> </h1> Exemplo 3: <% out.println("<b>S A I D A</b>"); %>
Usando Scriptlets
Criando uma aplicao web utilizando o arquivo index.jsp com um scriptlet contendo um comando for para imprimir 10 linhas: <% String saida = ; for (int i = 1; i <= 10; i++) saida = saida + linha + i; %>
Bemvindo (pgina 1)
Arquivo index.jsp
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Processando uma solicitao "get" com dados</title> </head> <body> <form action = "resposta.jsp" method = "get"> <p>Digite o seu primeiro nome e pressione Enviar</p>
Bemvindo (pgina 2)
<p><input type = "text" name = "firstName" /> <input type = "submit" value = "Enviar" /> </p> </form> </body> </html>
Bemvindo (pgina 3)
Arquivo Resposta.jsp
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Pgina de Resposta</h1> <% // incio de scriplet String name = request.getParameter("firstName"); if (name != null) { %>
Bemvindo (pgina 4)
<h1>Al <%= name %>, <br /> Bem-vindo ao Jave Server Pages!</h1> <% // continuao do scriptlet } // fim do if true else { } %> // fim do scriptlet </body> </html>
Usando scriptles
Exemplo: UsandoFor
<html> <body> <h1>Extraindo campos</h1> <% Enumeration campos = request.getParameterNames(); while (campos.hasMoreElements()){ String campo = (String)campos.nextElement(); String valor = request.getParameter(campo); %> <li><%= campo %> = <%= valor %></li> <% } %> <form method="Post" action="index.jsp"> Nome: <input type="text" size="20" name="nome" /><br /> Telefone: <input type="text" size="20" name="Telefone" /> <input type="submit" name="submit" value="Enviar" /> </form> </body> </html>
Extraindo um array
Neste exemplo uma solicitao ser feita ao servidor com o uso de um formulrio. Em index.jsp acrescente o seguinte cdigo no incio: <%@ page import="java.util.*" %> Seguido do seguinte corpo de pgina:
Pgina 1
<html> <body> <h1>Capturando um array</h1> <% Enumeration campos = request.getParameterNames(); int i = 0; int[]x = new int[10]; while(campos.hasMoreElements()){ String paramName = (String)campos.nextElement(); String paramValue = request.getParameter(paramName); %> <li>Campo <%=paramName%> Valor = <%=paramValue%></li> <% x[i]= Integer.parseInt(paramValue); i++; }
Pgina 2
String valores = new String(); valores=""; for (int k = i-1; k >= 0; k--) valores = valores + x[k] + ' '; %> <h3>Valores digitados</h3> <%=valores%><br/> <form method="Post" action="index.jsp"> Digite os valores inteiros:<br/> Valor 1: <input type="text" size="10" name="1" /><br /> Valor 2: <input type="text" size="10" name="2" /><br /> Valor 3: <input type="text" size="10" name="3" /><br /> Valor 4: <input type="text" size="10" name="4" /><br /> <input type="submit" value="Enviar" /> </form> </body> </html>
Identificando um cliente
Cada vez que um usurio se conecta uma aplicao web, o servidor cria uma sesso para ele. Para que o servidor reconhea cada usurio que se conecta. Ele cria na memria Ram da mquina do cliente pequenos arquivos texto chamados Cookies. Esses Cookies guardam um nmero de identificao que gerado pelo servidor web e enviado mquina cliente. O usurio pode programar seu navegador para impedir a gravao de Cookies.
Cookies
Um cookie uma parte de um texto que um servidor da web armazena no disco rgido do usurio. Os cookies permitem que um site armazene informaes no computador do usurio e depois as recupere. As informaes so armazenadas como pares de nome-valor. A grande maioria dos sites armazena apenas uma informao, uma ID de usurio. Mas o site pode armazenar muitos pares de nome-valor, se quiser. Exemplo: UserID A9A3BECE0563982D www.goto.com/ Os cookies so persistncias temporrias feitas no lado do usurio, e sesses so persistncias dependentes de cookies, mas realizadas no lado do servidor.
Session
O protocolo HTTP stateless, ou seja, ele no mantm um estado/conexo. Toda a interao que o seu cliente fizer com um servidor Web acarretar em uma nova requisio e resposta. As requisies so independentes e possuem um tempo de vida (conexo, envio de mensagem, resposta, encerramento da conexo). O servidor Web no capaz de identificar se duas requisies vieram de um mesmo navegador, e o mesmo no faz nenhum gerenciamento em memria para que mensagens sejam compartilhadas entre requisies.
Cookies e Sessions
Atravs de cookies o servidor Web capaz de trocar informaes de estado com o navegador do usurio. Desse modo, somos capazes de adicionar produtos a um carrinho de compras, sem perder estas informaes ao mudar de pgina, sair do website ou at mesmo fechar o navegador. Tecnicamente falando, um cookie uma pequena quantidade de informao persistida temporariamente pelo navegador. Os navegadores normalmente limitam o tamanho dos cookies em at 4KB, e apagam cookies com a data de validade vencida.
Objeto Session
Uma sesso o intervalo de tempo em que um usurio fica conectado com um site. Quando uma sesso comea o servidor web gera um identificador da sesso. Variveis de sesso:
Session(nome) = Maria Session(fone) = 3423-2145
<body> <h1>Formulrio</h1> <h1>Id da sesso: <%=session.getId() %></h1> <h3><li>Essa sesso foi criada em <%= new Date(session.getCreationTime()) %></li></h3> <% Enumeration atribs = session.getAttributeNames(); while(atribs.hasMoreElements()){ String atrib = (String)atribs.nextElement(); String valor = (String)session.getAttribute(atrib); %> <li><%= atrib %> = <%= valor %></li> <% } %> <form method="Post" action="sessao1.jsp"> Nome: <input type="text" size="20" name="nome" /><br /> Fone: <input type="text" size="20" name="fone" /><br /> <input type="submit" name="submit" value="Enviar" /> </form> </body>
Pgina sessao1.jsp
<body> <h1>Id da sesso: <%= session.getId() %></h1> <% String nome = request.getParameter("nome"); String fone = request.getParameter("fone"); if (nome != null && nome.length() > 0) session.setAttribute("nome", nome); if (fone != null && fone.length() > 0) session.setAttribute("fone", fone); %> <form type="Post" action="index.jsp" > <input type="submit" name="submit" value="Retornar" /> </form> </body>
Scriptlets
Exemplo UsandoFor
<html> <body> <h1>Utilizando o For numa JSP</h1><br /> <p><% String resp = ""; for (int i=1; i <= 10; i++) resp = resp + "Linha n. " + i + "<br />"; %> </p> <%= resp %> </body> </html>
Quando um cliente acessa o servidor Web, esse acesso desviado para esta pasta default.
Diretrio raiz
No IIS (Microsoft), a pasta est localizada em:
c:\inetpub\wwwroot
No Tomcat:
c:\tomcat\webapps
No J2EE:
c:\sun\appserver\domain\domain1
Pode-se tambm definir outra pasta de acesso. No IIS esta pasta seria um diretrio virtual. Esta tcnica ajuda a melhorar a segurana do site.
Cada aplicao dever ser um sub-diretrio no Tomcat, assim na sua inicializao, o servidor criar um contexto para cada aplicao.
Diretrios do NetBeans
O NetBeans disponibiliza trs estruturas bsicas de recursos:
Projetos
contm as pastas dos projetos abertos
Arquivos
contm os arquivos dos projetos abertos
Servios
Contm os recursos disponveis como databases, servidores web, e outros.
Usando o NetBeans
Em Servidores temos:
GlassFish V2 Tomcat 6.0