Escolar Documentos
Profissional Documentos
Cultura Documentos
1
TEMA I: PHP AVANÇADO
Unidade 1.1. Introdução às linguagens da web
A World Wide Web é constituída por um grande grupo de computadores, conhecido por: os
servidores que existem exclusivamente para fornecer informações quando essas informações
são solicitadas. A informação é solicitada por um software informático chamado navegador
web. Diz-se que a Internet opera num modelo de servidor de clientes, onde o cliente é o
navegador da Internet e o servidor é o computador que fornece ou serve a informação. Essa
informação é normalmente armazenada numa página web, que não é mais do que um
documento especialmente formatado que contém geralmente imagens e referências a outros
recursos que ajudam a aparência e comportamento de uma certa forma.
2
Os servidores da Internet e os browsers da Internet falam uns com os outros utilizando um
protocolo chamado Protocolo de Transferência de Textos HyperText ou HTTP. Em essência,
a HTTP é apenas uma forma de falarem entre estas duas partes.
Pensa nisso como o protocolo envolvido em fazer uma chamada telefónica. Quando fazes uma
chamada telefónica, marcas alguns dígitos. (Isto é como o browser na Internet usando o
endereço IP para contactar o servidor da Internet.) O indivíduo que responde à chamada deve
dizer “Olá” ou algo parecido. Como resposta, espera-se que diga “Olá” ou “O que é Shakin”
ou outra saudação adequada, para que ambos saibam que está em curso.
É tudo o que o HTTP ou qualquer outro protocolo da Internet faz: define como e quando cada
parte envolvida na conversa deve agir.. Esta é uma forma chique de dizer que a HTTP não se
lembra do quê está a fazer de um pedido para o próximo. Quando solicitar uma página web, o
servidor da Internet não tem como saber que pediu a mesma página há 3 segundos e não saberá
se solicita a mesma página a 3 segundos. Isto é importante quando começamos a programar
aplicações web que precisam de recordar as coisas de um ecrã para o outro — e veremos como
é fácil resolver o problema.
3
ou elaborados de uma certa forma, de modo a que as diferentes rubricas, espaçamento e outros
elementos desse documento sejam conformes com o previsto. Aqui está um exemplo: estamos
a escrever este livro na Microsoft Word. Cada uma das rubricas têm um certo formato,
enquanto o texto principal tem um formato diferente. É criado um novo parágrafo sempre que
um dos seus humildes autores de livros pressiona Enter. A Microsoft Word sabe como abrir
este documento e interpretar essas rubricas, parágrafos e outros elementos, por isso, se o
enviarmos e tivermos também a Microsoft Word, pode abrir e ver o documento da mesma
forma que nós fazemos. Atrás das cenas, elementos de formatação ocultos dizem à Microsoft
Word como formar ou apresentar o texto que vês na página. A HyperText Markup Língua
(HTML) fornece as informações de formatação e apresentação das cenas para as páginas web.
Da mesma forma que o formato de um documento de palavras diz à Microsoft Word como
mostrar esse documento, a HTML diz ao browser da Internet como se apresenta uma página
web.
A HTML marca, ou acrescenta informações escondidas ao texto e a outras coisas que se põe
numa página web. Esta informação oculta é responsável pela elaboração da página. Por
exemplo, pode utilizar HTML para indicar que o texto específico é um parágrafo ou um título,
e ainda mais HTML para indicar uma imagem.
Tal como existem regras para a elaboração de um livro como este (por exemplo, quaisquer
rubricas de nível 2 figuram abaixo das rubricas de nível 1), o que também são páginas web
formadas de forma especial. Idealmente, as páginas web seguem certas regras, tais como
rubricas mais pequenas que se encontram em maiores dimensões, etc.
Quando o HTML numa página web for formatado corretamente, com rubricas e outros
elementos que figuram na ordem correcta, a página web é válida
e tem o que se chama markup semântico. A marcação semântica é um termo utilizado para
descrever uma página web que utiliza corretamente os elementos de formatação HTML nos
locais certos. Há muito mais neste livro nas próximas unidades.
Mais tarde, descobre como fazer o browser da Internet entender formatar rubricas, parágrafos,
inserir imagens e mais, tudo com HTML.
4
mudar de cores, de fontes, de dimensão do texto e de outros artigos relacionados com a
aparência.
Por exemplo, quando se cria um parágrafo de texto com HTML cabe ao browser escolher a
fonte. Ao adicionar informações sobre fontes CSS, pode dizer ao navegador que fonte, ou mais
adequadamente, uma família de fontes, para escolher de forma a mostrar o texto. Em última
análise, cabe ao browser escolher qual a fonte de utilização ou mesmo ignorar o seu CSS
completamente e exibir a sua própria escolha.
O SLC é igualmente utilizado para alterar o aspecto global da própria página. Por exemplo, o
CSS pode ser utilizado para criar planos multicolunas, rubricas em páginas, folhas e outros
elementos orientados para o ecrã, para tornar a página visualmente atractiva e mais utilizável.
5
mais) de várias línguas. Estas incluem as da Microsoft . Família líquida de línguas, Perl,
Python, Java, e aquela em que este livro se concentra: PHP.
É claro que, para que a página seja vista pelo utilizador, é necessário enviar para lá. Enviar a
página ao utilizador é o servidor da Internet, que no nosso caso será Apache. E muitos locais
utilizam bases de dados para armazenar informação. É aí que entra o MySQL. Como verá, a
MySQL fornece uma grande (e livre) forma de armazenar dados para o seu sítio web.
✦ eles são orientados para a Internet. Ambos foram concebidos especificamente para
✦ são fáceis de usar. Ambos foram projetados para criar um site rápido.
Eles são rápidos. Ambos foram concebidos com velocidade como um grande objectivo. Juntos
fornecem uma das formas mais rápidas de entregar páginas dinâmicas na Internet
aos utilizadores.
Eles comunicam bem entre si. o PHP tem características
por comunicar com a MySQL. Não precisa de saber os detalhes técnicos, deixe-o para o PHP.
6
✦ está disponível uma vasta base de apoio para ambos. Ambos têm um grande
utilizador
bases. Porque são muitas vezes usados como par, têm frequentemente a mesma base de
utilizadores. Muitas pessoas estão disponíveis para ajudar, incluindo pessoas nas listas de
discussão de emails que têm experiência com a MySQL e o PHP.
ambientes específicos.
Ao enviar a página ao navegador com Apache o PHP e a MySQL não operam sozinhos;
precisam de um servidor web para responder a pedidos de páginas web. Um servidor de web é
um software especial que funciona num computador. O servidor web mais usado na Internet é
a polícia de Apache, mas a maioria das pessoas chama-se "Apache" e, por isso, fazemos o
mesmo aqui. Como PHP e MySQL, o Apache é livre.
Quando uma pessoa utiliza o seu navegador para solicitar uma página, esse pedido é recebido
pelo servidor web, Apache. o Apache procura então saber se sabe sobre o recurso (página web)
a ser solicitado. Se o Apache souber da página web e puder enviar, então, o Apache responde
ao pedido enviando a página ao requerente.
No caso de páginas criadas com PHP, o Apache utiliza software especial para interpretar o PHP
antes de enviar a página ao requerente.
o Apache oferecem as seguintes vantagens:
bem. Além disso, isto significa que um grande grupo de utilizadores pode ajudar.
7
✦ É fiável. Quando o Apache estiverem a funcionar, deve durar tanto quanto possível
✦ É seguro. Podes encontrar software grátis que corre com Apache para conseguir
num servidor de SSL (Secure Sockets Layer). A segurança é um problema essencial se estiver
a utilizar o local para o comércio electrónico.
de Linux.
✦Todos os Macs recentes vêm com Apache instalados. No entanto, talvez precise de
8
O sítio web Apache ( http://httpd.apache.org ) fornece informações, downloads de software,
documentação extensiva que está a melhorar o tempo todo e instruções de instalação para vários
sistemas operacionais.
Estão disponíveis outros servidores de Internet; no entanto, concentramo-nos quase
exclusivamente no Apache neste manual. A Microsoft oferece o IIS (Serviço de Informação
Internet), que é o segundo servidor web mais popular na Internet e também o Nginx.
Também é uma opção popular. Outros servidores de rede estão disponíveis, mas têm bases
ainda menores de utilizadores.
Instalando o PHP
Pode ou não precisar de instalar PHP.
- O PHP não está instalado nos computadores Windows.
- Linux ou Mac: o PHP já está instalado em Linux ou no Mac OS. Alguns tempos
instalados, mas não ativados.
Depois de instalar PHP, tens de configurar o teu servidor para processar o código PHP. As
instruções para a instalação de PHP e configurar o seu servidor web são fornecidas neste
manual.
Instalando o MySQL
Podes ou não precisar de instalar o MySQL. Considere qual o sistema operacional que está a
usar e as seguintes informações:
- Windows: MySQL não é fornecido com o sistema operativo do Windows.
- Linux ou Mac: juntamente com PHP, MySQL está off já instalado Linux ou Mac.
Alguns tempos estão instalados, mas não ativados. Contudo, a versão instalada pode
ser uma versão mais antiga, devendo, nesse caso, instalar uma versão mais recente.
Como pode suspeitar, a instalação varia dependendo do sistema operacional que está a usar.
Instalar e configurar MySQL no Windows usando um guia de configuração. Está disponível
um ficheiro PKG para a instalação da MySQL na Mac OS X, e estão disponíveis embalagens
com todas as distribuições populares de Linux.
9
Se o servidor estiver instalado e a funcionar, uma página na Internet. Por exemplo, o ecrã de
Bem-vindos Apache apresenta o seguinte texto:
Se consegue ver isto, significa que a instalação do software do servidor de televisão Apache
neste sistema foi bem sucedida. Pode agora acrescentar conteúdo a este Directório e substituir
esta página.
Deve escrever o URL na barra de endereço do seu navegador para testar o servidor.
Se não estiver a funcionar um servidor de rede na sua máquina, é apresentada uma mensagem
de erro, como uma das seguintes mensagens:
Incapaz de se ligar
A página não pode ser exposta
Mesmo que não tenha servidor de web a funcionar, um servidor de rede pode ser instalado no
computador, mas não começou. Se assim for, só precisa de ligar o servidor da Internet. Por
exemplo, o Apache está instalado em todos os computadores Mac recentes, mas pode ter de ser
iniciado. Ver as instruções de obtenção e instalação do Apache abaixo nesta unidade.
Obtendo o Apache
Apache é um servidor de fonte aberta que podes descarregar de graça. As secções que se
seguem dão-lhe a informação preliminar que precisa, baseada no sistema operacional que está
a usar, para decidir como iniciar a selecção e a instalação do software do servidor web. Esteja
ciente, também, que um kit de instalação pode funcionar para os seus propósitos.
A seleccionar uma versão de Apache
Os Apache estão actualmente disponíveis em três versões: Apache 2.0, Apache 2.2 e Apache
2.4. Todas as versões são apoiadas e actualizadas. O software PHP funciona com as três
versões, mas qualquer outro software relacionado com o PHP pode ter problemas com o
Apache 2.4. No Windows, o Apache 2.4 não está actualmente disponível.
Como qualquer software, o Apache evolui à medida que novas versões aparecem. Alguns
módulos de terceiros podem não funcionar corretamente nas três versões. Como o PHP é um
módulo, devias verificar a página da Internet para o estado actual do PHP com versões Apache
www.php.net/manual/en/install.windows.apache2.php
Tenta instalar a versão mais atual da Apache que escolheres para que o servidor Apache inclua
todas as últimas fixações de segurança e insectos.
10
O Apache para todos os sistemas operacionais estão disponíveis no sítio web oficial Apache.
Pode descarregar o código fonte para compilar o seu sistema operacional. A compilação e a
instalação de código fonte não são difíceis para Linux e Mac, mas requer conhecimentos e
software especializados em Windows.
Os ficheiros binários — compilados, prontos para a fuga, que precisam de ser copiados para o
local correcto — estão disponíveis para o Windows.
Para obter Apache do site Apache, ir para http://httpd.apache. Passe para a secção da versão
Apache que quer descarregar o link adequado para a versão que quer fazer em que quer
descarregar. Uma página de download com ligações para descarregar as actuais versões.
11
Pode facilmente compilar e instalar Apache do código de origem. Este processo não é tão
técnico e assombrante como parece. As instruções de instalação do Apache a partir de código
fonte são apresentadas na seção “Installing Apache” do código de origem da Linux ou Mac,
posteriormente na presente unidade.
A instalar Apache
As subseções seguintes descrevem a instalação de Apache no Windows, Mac e Linux.
A instalar Apache no Windows
Podes instalar Apache em quase qualquer versão de Windows.
12
Não pode instalar Apache com as seguintes se os serviços de informação da Internet
Gerente. Se não encontrar este item no menu, o IIS não está instalado. Se o IIS estiver
a correr, tem de desligá-lo antes de instalar Apache ou instalar Apache numa porta
diferente.
Para instalar Apache depois de ter a certeza de que o IIS não está a correr, seguir estas etapas:
1. Clique no ficheiro que descarregou.
O ficheiro chama-se Apache, seguido do número da versão e
win32-x86-no_ssl.msi. Por exemplo, httpd-2.2.22-wi32-x86-no_ssl.msi.
Nota: talvez precises de acertar o arquivo e escolher o "Corre como"
Administrador.
O guia da Instalação Apache começa, e aparece um ecrã de boas-vindas.
2. Clique a seguir.
O acordo de licença está exposto.
3. Selecionar I Aceitar os termos do acordo de licença e depois clicar a seguir.
Se não aceitar os termos, não poderá instalar o software. Um ecrã de informação sobre Apache
é exibido.
4. Clique a seguir.
Um ecrã é exibido a pedir informações.
5. Entra na informação solicitada e depois clique a seguir.
A informação solicitada é
13
mensagens de correio electrónico sobre o servidor web, tais como webserver@example.com .
• Modo de correção: selecionar se quer que o Apache funcione como serviço (a partir
automaticamente quando o computador se bota) ou se quer iniciar manualmente o Apache
quando o quiser usar. Na maioria dos casos, quer gerir Apache como serviço.
O ecrã de tipo de instalação está exposto.
6. Selecione um tipo de instalação e depois clique a seguir.
Na maioria dos casos, devias escolher a Completa.
7. Selecione o repórter onde quer que o Apache esteja instalado e depois clique a seguir.
Vês o relatório de instalações de incumprimento para Apache, normalmente C.
Programa Grupo Apache. Se não se importar, clique a seguir. Se quiser que o Apache seja
instalado num Directório diferente, clique na Change e selecione um Diretório diferente, clique
bem e clique a seguir. O ecrã que aparece diz que o guia está pronto para instalar o Apache.
8. Click Install.
Se for preciso, pode voltar e mudar qualquer informação que você
entrada antes de avançar com a instalação. Um ecrã mostra o progresso. Quando a instalação
estiver completa, aparecerá um ecrã, dizendo que o guia completou com sucesso a instalação.
9. Clique em Finish para sair do guia da Instalação.
O Apache está instalado no teu computador com base no seu sistema operacional. Se o instalar
em versões posteriores do Microsoft Windows, é instalado por defeito como serviço que
começa automaticamente quando o computador começa. Se o instalar numa versão mais antiga
do Windows 95/98/Me, então tem de o iniciar manualmente ou montá-la para que comece
automaticamente quando as botas de computador. Ver a secção “Iniciar e parar Apache”, mais
tarde, na presente unidade, para mais informações.
O Apache está instalado em todas as versões recentes do Mac OS X, mas pode não
Sistema➪Partilha.
14
Talvez precises de começar o Apache quando o instalares. Ou talvez não. Pode também ser
começado. No entanto, quando mudares as configurações Apache ou PHP, tens de reiniciar
Apache para as novas configurações entrarem em vigor.
A começar e a parar Apache no Windows
Quando instalar Apache no Windows, normalmente é automaticamente instalado como serviço
e começou. Está pronto para usar. No entanto, no Windows 95, 98 e eu, tens de começar
manualmente o Apache, usando o menu.
Quando instalamos Apache, cria artigos de menu para parar e começar. Para
✦ Início: Esta opção começa Apache quando não está a funcionar. Se clicares nisto
quando o Apache está a correr, vês uma mensagem de erro a dizer que o Apache já
começou.
✦ Pare: parar o Apache quando está a funcionar. Se clicares neste item quando Apache
não está a correr, vê uma mensagem de erro a dizer que o Apache não está a funcionar.
A configuração dos Apache, tem de reiniciar Apache antes que as mudanças se tornem eficazes.
15
O guião Apachet1 gere e verifica dados que os comandos da httpd requerem. Usar o guião
apachectl para iniciar Apache com o seguinte comando:
✦ Para Linux:
/usr/local/Apache/bin/apachectl start
✦ Pelo Mac:
16
Ver todas as opções disponíveis, escreva
httpd -h.
✦ Instalando PHP: Se instalar PHP, é preciso configurar Apache para reconhecer programas
PHP. Como alterar a configuração Apache para PHP é descrita nas próximas unidades deste
manual.
Pode mudar a localização da sua rotina de documentação. Leia a próxima secção para
instruções.
para pedidos de arquivo na porta 80. Podes configurar Apache para ouvir numa porta diferente.
Ver a secção «Alteração do número da porta» para pormenores sobre a forma de o fazer.
Para mudar quaisquer configurações, editar o ficheiro httpd..conf com um texto
editor. Em Windows, pode aceder a este ficheiro através do menu
httpd.conf File. Quando clicares este item, o ficheiro da httpd.conf abre em Notepad.
17
O ficheiro da httpd..conf tem comentários (linhas começando por #) que descrevem as
directivas, mas certifica-te que compreendes as suas funções antes de mudar qualquer. Todas
as diretivas estão documentadas no sítio web Apache.
✦ Linux/Unix/Mac: escreva:
procurar o php*.
Obtendo PHP
Na altura desta escrita, existem duas versões de PHP 4 e PHP 5. Quando for libertado o PHP
6, podem estar disponíveis três versões de PHP por um período de tempo. Se estiver a instalar
PHP pela primeira vez e criar o seu primeiro sítio web, deve descarregar PHP 5 ou PHP 6.
18
Deverá instalar uma versão mais antiga do PHP se precisar de manter ou alterar um sítio web
existente com o código existente.
O código que está escrito para uma versão de PHP pode precisar de ser alterado para outra
versão de PHP. Se tiver muito código, talvez queira atualizar o código durante um período de
tempo.
As seções que seguem fornecem informações gerais sobre o que encontrará no sítio web PHP
e dizer-lhe como obter o ficheiro de instalação PHP para o Windows, Linux e Mac — e também
como obter um kit de instalação integral que inclui PHP e mais ferramentas de desenvolvimento
da Internet. Escolhe a opção que melhor encaixa nas tuas necessidades. Depois de descarregar
o ficheiro, pode verificar se o ficheiro está seguro.
19
Obtendo PHP para Linux
As versões mais recentes do Linux incluem PHP. Se precisar de instalar PHP ou de actualizar
para uma versão mais recente, a maioria das distribuições Linux fornece software no seu sítio
web que pode descarregar e instalar no seu sistema Linux específico. Além disso, a maioria
dos sistemas Linux fornece serviços específicos para o download e a instalação de software.
Por exemplo, a Fedora fornece a utilidade yum utility que descarrega e instala software do sítio
Web Fedora, e Ubuntu inclui também um gestor de encomendas. Ver a documentação para a
sua distribuição Linux para informações sobre como baixar e instalar software no seu sistema
Linux.
Em alguns casos, talvez precises de instalar o PHP manualmente. O software fornecido pelo
site pode não ser o mais recente ou não estar configurado às suas necessidades. Para instalar
manualmente, you need to download the source code from the PHP website at www.php.net.
Pode facilmente compilar e instalar PHP do código de origem. Este processo não é tão técnico
e assombrante como parece. Na presente unidade, são apresentadas instruções para a instalação
de PHP a partir do código fonte em Linux.
20
e MySQL. No XAMPP está disponível em www.apachefriends.org. No presente manual, são
fornecidas instruções para a instalação do seu software que utiliza o XAMPP.
WAMPServer é um kit de instalação popular para Windows que fornece versões recentes de
Apache, PHP e MySQL. WAMPServer está disponível em www.wampserver.com .
21
4. Configurar PHP.
Seguir as instruções da secção “Configuração PHP”, mais tarde, nesta matéria.
22
Removam o início da linha para ativar o módulo. O
o nome do módulo pode diferir ligeiramente em função da versão de PHP
e a versão do Apache que estás a usar.
3. Diz aos Apache que ficheiros são programas PHP.
Procure uma secção que descreve o AddType. Esta secção pode conter um
ou mais linhas de AddType para outro software. A linha de AddType paro PHP é
AddType application/x-httpd-php.php
Procure esta linha. Se o encontrares com um sinal de libra no início da linha, remova o sinal.
Se não encontrar a linha, acrescenta-a à lista de declarações de AddType. Pode especificar
qualquer prorrogação ou série de prorrogações.
Esta linha diz ao Apache que os ficheiros com a extensão de PHP são ficheiros do "PHP"
aplicação do tipo/x-httpd-php. o Apache sabe então enviar ficheiros com extensões de PHP ao
módulo PHP.
4. Iniciar Apache (se não estiver a funcionar) ou reiniciar Apache (se estiver a funcionar).
Pode começar como um serviço em versões posteriores de Windows escolhendo
Às vezes, reiniciar Apache não é suficiente; deves pará-lo primeiro e depois então, iniciar.
Além disso, o seu computador está sem dúvida instalado para que o Apache comece quando o
computador começar. Portanto, podes desligar e depois ligar o teu computador para reiniciar o
Apache.
23
1. Abre o ficheiro da polícia de conflito para que possas fazer mudanças.
2. Configure o Apache para carregar o módulo PHP.
Encontra a lista das declarações do Módulo de Carga. Procurem a seguinte linha:
Módulo de cargo PHP5_módulo libec/ libphp5.so
Se esta linha não estiver lá, acrescente-a. Se um sinal de libra (#) estiver no início do ano
linha, remove o sinal do canil.
3. Configure o Apache para reconhecer extensões PHP.
Tens de dizer ao Apache que os ficheiros podem conter o código PHP. Procura um
seção descrevendo o AddType. Podem ver uma ou mais linhas de AddType para outro
software. Procura a linha de AddType paro PHP, como se segue:
AddType application/x-httpd-php.php
Se encontrares um sinal de libra (#) no início da linha, remova o
sinal de pólvora. Se não encontrar esta linha, acrescente-a às declarações de AddType. Esta
linha diz ao Apache para procurar o código PHP em todos os ficheiros com uma extensão de
PHP. Pode especificar qualquer prorrogação ou série de prorrogações.
4. Iniciar o servidor Apache httpd (se não estiver a funcionar) ou reiniciar o servidor Apache
httpd
Servidor Apache httpd (se estiver a funcionar).
Pode começar ou reiniciar o servidor com um guião instalado
no seu sistema durante a instalação. Este guião pode ser apachectl
ou a httpd.apache, e pode estar localizada em/bin ou/usr/local/ apache/bin. Por exemplo, pode
ser capaz de iniciar o servidor, reiniciando o apachectl, ou impedi-lo usando um apachectl. Às
vezes, restaurar não é suficiente; deve parar o servidor primeiro e depois começar.
Configurando o PHP
O PHP usa as configurações num ficheiro chamado php.ini para controlar alguns dos seus
comportamentos. o PHP procura PHP.ini quando começa e usa as configurações que encontra.
Se o PHP não encontrar o ficheiro, utiliza um conjunto de regulamentos por defeito. A
localização por incumprimento do ficheiro PHP.ini é uma das seguintes, a menos que o altere
durante a instalação:
24
✦ Unix, Linux e Mac: /usr/local/lib
Se o ficheiro PHP.ini não for instalado durante a instalação, tem de instalá-lo agora. A
distribuição PHP inclui um ficheiro de configuração com regulamentos por defeito, chamado
php.ini-dist. Copiar este ficheiro para o local adequado, como os locais por defeito acaba de
mencionar, alterar o seu nome para PHP.ini. Se tiver uma versão anterior de PHP instalada
(como PHP 4.3), faça uma cópia de apoio do ficheiro php.ini antes de o sobrepor ao php.ini
ficheiro para PHP 5 ou 6. Podem ver as configurações que estão a usar e alterar as
configurações do novo ficheiro PHP para corresponder às atuais configurações.
Precisas de remover o ponto e virgula para que o cenário esteja activo, e também
muda de 1 para 0. Após as mudanças, a linha é a seguinte:
cgi.force_redirect = 0
6. Só se estiver a usar PHP 5 ou mais recente, estabelecer a zona horária local.
Encontra a linha:
;date.timezone =
Remova o semicolon desde o início da linha. Adiciona o código
25
a tua zona de tempo local após o sinal igual. Por exemplo, a linha pode ser
date.timezone = Africa/Maputo
7. Salve o ficheiro PHP.ini e reinicie o servidor da Internet.
De um modo geral, as restantes configurações por defeito permitem que o PHP corra bem, mas
pode precisar de editar algumas destas configurações por razões específicas. Discutimos as
configurações do ficheiro PHP ao longo do livro quando discutimos um tema que possa exigir
que mude de configurações.
Testando PHP
Para testar se o PHP é instalado e funciona, seguir estas etapas:
1. Encontrem o repórter onde os vossos programas PHP têm de ser salvos.
Este directorio e os subdirectores que estão por baixo dele são o seu Documento Root.
A raiz do documento por defeito para Apache é HDDC no diretório onde o Apache está
instalado. Para o IIS, é Inetpub. Em Linux, pode ser /var/www/html. O espaço Web pode ser
colocado num diretório diferente, configurando o servidor da Internet. Se estiver a utilizar uma
empresa de acolhimento na Internet, o pessoal fornecerá o nome de reporte.
2. Cria o seguinte arquivo algures no teu espaço com o nome teste.php
<!doctype html>
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<p>This is an HTML line</p>
<?php
echo “<p>This is o PHP line</p>”;
phpinfo();
?>
</body>
</html>
O ficheiro deve ser guardado na sua raiz de documentos para a WEB server para encontrá-lo.
26
3. Faça o teste. O ficheiro de PHP criado na segunda fase. Ou seja, digite o nome do servidor
da sua web na janela do endereço do browser, seguido do nome do ficheiro (por exemplo,
escreva http://www.example.com/test.php).
Se o seu servidor, PHP e o ficheiro de teste.PHP estiverem no mesmo computador de que está
a testar, pode escrever http://localhost/test.php.
Para que o ficheiro seja processado pelo PHP, tem de aceder ao ficheiro
27
Unidade 1.8. Instalando o MySQL
Embora MySQL ande em muitas plataformas, descrevemos como instalá-lo em Windows,
Linux, Unix e Mac, que, em conjunto, representam a maioria.
A preparar o MySQL
A instalar o MySQL Setup Wizard no Windows
Para montar a MySQL no Windows, seguir estes passos:
1. Clique no ficheiro do instalador (.msi) que descarregou.
O ecrã de abertura mostrado na imagem abaixo é exibido.
28
2. Click Install MySQL Products.
Vês um ecrã para aceitar o acordo de licença. Depois de ler o seu termo, se concordares,
selecione Aceito os Termos e clique a seguir.
3. Selecionar o Executo.
As atualizações serão descarregadas. Na Escolha uma tabela de Tipo de estado, selecciona
A plena, tal como se mostra na figura abaixo.
4. Clique a seguir.
Pode ser efectuada uma verificação de requisitos; em caso afirmativo, clicar em execução. Os
pré-requisitos serão instalados, se necessário. Clique a seguir, se for caso disso, para instalar
os pré-requisitos. O ecrã de progresso da instalação será mostrado.
5. Clique Execute.
Os progressos da instalação serão apresentados para cada componente e depois a secção de
configuração começará.
6. No diálogo geral da Configuração, clique a seguir para iniciar o processo de configuração.
29
7. Escolhe a máquina de Desenvolvimento da Configuração do Server MySQL
diálogo e clique a seguir.
8. No diálogo de configuração do servidor MySQL, insere a palavra-passe que
Usará para o acesso à raiz ou administrador e clique a seguir.
9. No diálogo de Configuração, clique ao lado para instalar o
amostras.
10. Quando as amostras forem instaladas, clique a seguir.
11. No diálogo completo da Instalação, clique em Finish.
30
A começar e a parar o Server MySQL
Se instalou MySQL no Windows com os guias, em Linux com uma MPM, ou num Mac com
um ficheiro PKG, o servidor MySQL foi iniciado durante a instalação e montado de modo a
que começasse automaticamente sempre que inicia o computador. No entanto, às vezes, pode
precisar de parar ou ligar o servidor. Por exemplo, se atualizar o MySQL, deve desligar o
servidor antes de iniciar a atualização. As instruções para a partida e a paragem do servidor
MySQL são fornecidas na presente secção.
Se instalou o MySQL do código de origem, tem de ligar o servidor MySQL manualmente e
montar o servidor MySQL para que comece automaticamente quando as botas de computador.
As instruções para iniciar o servidor e a montagem do motor estão incluídas na seção
“Instalando MySQL a partir de ficheiros de fonte”, anteriormente na presente unidade.
31
A executar um desligamento manual
Às vezes, pode ter dificuldade em desligar o servidor. Pode desligar o servidor manualmente
do seguinte modo:
1. Abrir uma janela de comando (talvez chamada DOS) escolhendo
Se esses comandos não funcionarem, podem experimentar estes comandos, que funcionam em
versões mais recentes do Chapéu Vermelho e outras distribuições de Linux:
service mysqld start
service mysqld stop
service mysqld restart
Finalmente, algumas versões da Debian ou Ubuntu podem também ter começado a utilizar
estes comandos:
/etc/init.d/mysql stop
/etc/init.d/mysql start
Pode também parar o servidor MySQL com a utilidade mysqladmin instalada quando a MySQL
estiver instalada. Mudar para o subdiretório do Diretório onde a MySQL é instalada e digital
mysqladmin –u root -p shutdown
32
O p faz com que a minha sqladmin te leve a password. Se a conta não exigir uma senha, não
inclui -p.
✦ PHP
✦ Apache
✦ PHPMyAdmin
Analisa a página da Internet até chegares à secção de descarregamento. Sob a lista de XAMPP
para Windows, clique na ligação Installer para descarregar a versão Installer.
O ficheiro descarregado chama-se xampp-win32-, seguido do número de versão e da biblioteca,
seguido de -installer.exe, como o xampp-win32-1.8.0-VC9-installer.exe. Salvem o ficheiro
descarregado no seu disco rígido num lugar fácil de encontrar, como o Desktop.
Instalando o XAMPP
Depois de descarregar o XAMPP, segue estas escadas para o instalar:
1. Navegar para o local onde salvou o ficheiro XAMPP.
O ficheiro chama-se algo como o "Xampp-Wi32-1.8.0-VC9installer".
2. Clique no ficheiro.
O guia de Setup começa.
Se estiver a instalar na Windows Vista, 7 ou 8, não pode instalar na pasta do Programa por
causa de um problema de protecção. E também, PHP alguns tempos têm problemas em
funcionar se estiver instalado numa pasta com um espaço no caminho ou nome de ficheiro,
como os ficheiros do Programa.
3. Leia e clique nos próximos ecrãs até ao Install
O ecrã de localização aparece, como se mostra na figura abaixo.
É melhor aceitar o local por defeito (c) a menos que tenha um é uma boa razão para escolher
outro local. Podes clicar no Browse para selecionar outra pasta.
33
4. Quando escolheres a pasta de instalação, clicar a seguir.
O ecrã das opções XAMPP aparece, como se mostra na figura abaixo.
5. No âmbito da Secção de Serviços, seleccionar o Install Apache como Serviço e o Serviço
Instalar MySQL como caixas de verificação de serviço.
Isto instala as ferramentas como Serviços de Windows, o que os faz começar
automaticamente quando o computador começar.
34
6. Carregue no botão do Install.
O processo de instalação demora alguns minutos a completar. À medida que a instalação se
procede, vê vários ficheiros e componentes a serem instalados no seu sistema, no local que
especifica. Uma barra de estado mostra o progresso da instalação.
Quando a instalação estiver completa, o ecrã completo da instalação aparece assim.
7. Click Finish.
Abre uma pequena janela e são exibidas mensagens adicionais. Quando esta parte da instalação
está terminada, um ecrã mostra uma mensagem que lhe mostra que a instalação está terminada.
8. Clique OK.
A seguinte questão é apresentada:
Começar o painel de controle XAMPP agora?
O ecrã mostra um "sim" e um "não".
9. Clique sim.
O painel de controle XAMPP aparece.
Usando o painel de controlo XAMPP
o XAMPP fornece um painel de controlo para uma gestão eficaz do software
no pacote XAMPP. Pode usar o painel de controle para determinar se os Apache e a MySQL
estão a funcionar e a começar ou detê-los. Antes de poderes usar o teu ambiente de
35
desenvolvimento, os Apache e a MySQL devem estar a funcionar. Esta secção diz-te como
usar o painel de controlo para começar e parar o Apache e o MySQL.
O painel de controlo XAMPP pode funcionar continuamente, pronto para o seu uso
sempre. Quando o painel de controlo estiver a funcionar, vês um ícone laranja no tabuleiro do
sistema, no fundo, à direita do ecrã do computador,
36
Testando PhpMyAdmin
Na página XAMPP de Bem-vindos (ver secção anterior), pode abrir a phpMyAdmin para testar
se está instalada. Clique no link de phpmyAdmin na secção das Ferramentas em direção ao
fundo do painel esquerdo. Se o PHPMyAdmin for instalado, abre-se no teu navegador.
Se a página de phpMyAdmin não abrir, certifica-te que o Apache começa. Pode gerir Apache,
como descrito na secção “Utilizar o painel de controlo XAMPP”, mais cedo na presente
unidade.
Testando PHP
Para testar se o PHP é instalado e funciona, seguir estas etapas:
1. Localiza o reporte em que os seus guiões de PHP têm de ser salvos.
Este directorio e os subdirectores que estão no seu espaço de Internet.
Este é o espaço onde o Apache procuram os teus guiões quando escreves
localhost. Este diretório chama-se HTDOCS e está localizado no Diretório onde instalou
XAMPP, como por exemplo, os documentos de trabalho.
Pode mudar a localização do seu espaço na Internet no ficheiro de configuração Apache. A
configuração do Apache é descrita na seção “Configuração Apache” mais tarde na presente
unidade.
2. Cria um ficheiro de texto no teu espaço com o nome de teste.php com o seguinte conteúdo:
<html>
<head><title>PHP test</title></head>
37
<body>
<?php
phpinfo();
?>
</body>
</html>
3. Abra um browser e escreva localhost/test.php na barra de endereços.
4. Analisem a lista para encontrar uma seção de configurações para a MySQL.
As secções de software são enumeradas por ordem alfabética, a partir de início
bcmath. As secções MySQL estão localizadas a meio da lista.
Encontramos dois quarteirões, um dirige-se ao Mysql e um a dirige-se ao Mysqli. O
a diferença entre o Mysql e o Mysqli é explicada no unidade 4 deste
minibook.
38
Nesta unidade, descrevemos os princípios básicos de escrever guiões PHP — as regras
aplicáveis a todas as declarações PHP. Considera estas regras semelhantes às regras gerais de
gramática e pontuação. Nas unidades restantes deste manual, descobre-se sobre declarações e
características específicas de PHP e como escrever guiões PHP para desempenhar tarefas
específicas.
A seção começa com o básico e avança para material mais complexo. Mesmo que tenha tido
alguma experiência com PHP antes, é uma boa ideia começar a unidade desde o início.
Como funciona o PHP
O software PHP funciona com o servidor, que é o software que entrega páginas web ao mundo.
Quando escreves um URL na barra de endereços do seu web Browser, estás a enviar uma
mensagem ao servidor da URL, pedindo-lhe para enviar um ficheiro HTML. O servidor da
Internet responde enviando o ficheiro solicitado. O teu navegador lê o ficheiro HTML e mostra
a página web. Também pede um ficheiro ao servidor da Internet quando clica uma ligação
numa página. Além disso, o servidor da Internet processa um ficheiro quando carregas no botão
de páginas na Internet que apresenta um formulário. Este processo é essencialmente o mesmo
quando o PHP é instalado. Pede um ficheiro, o servidor da Internet está a gerir PHP, e manda
HTML de volta ao navegador, graças à programação em PHP.
Mais específico, quando o PHP estiver instalado, o servidor web está configurado para esperar
que certas extensões de ficheiros contenham estados de línguas PHP. Muitas vezes, a extensão
é de php ou de html, mas pode ser utilizada qualquer prorrogação. Quando o servidor web
recebe um pedido de um ficheiro com a extensão designada, envia as declarações HTML tal
como é, mas as declarações PHP são tratadas pelo software PHP antes de serem enviadas ao
requerente.
Quando as declarações linguísticas PHP são tratadas, apenas a produção, ou qualquer outra
impressa no ecrã, é enviada pelo servidor web ao browser. As declarações linguísticas PHP, as
que não produzem qualquer produto para o ecrã, não estão incluídas na produção enviada ao
browser, por isso o código PHP não é normalmente visto pelo utilizador. Por exemplo, neste
simples estado PHP,
-<?php é TAG de abertura, e ?> é a TAG que está a fechar.
- <?php echo “<p>Hello World</p>”; ?>
Aqui, a echo é uma instrução PHP que diz o PHP para produzir o texto que vem a seguir. O
software PHP processa o estado PHP e os resultados seguintes:
<P>Olá World</p>
39
Este estado de HTML regular é entregue ao utilizador. O browser interpreta o estado como
código HTML e apresenta uma página web com um parágrafo — Olá Mundo. A parte da TAG
PHP não é entregue
o navegador, por isso, a utilização nunca vê estados PHP. o PHP e o servidor de web devem
trabalhar em conjunto. O PHP não está integrado em todos os servidores da Internet, mas
trabalha com muitos servidores populares. O PHP funciona bem com o servidor de web
Apache. o PHP também trabalha com a Microsoft Internet Information Services (IIS) e outros.
Se puder selecionar ou influenciar a seleção do servidor web utilizado na sua organização,
selecione Apache. Sozinho, Apache é uma boa escolha. É grátis, aberto
fonte, estável e popular. Atualmente, pode aumentar mais de 60% de todos os sites, according
to the web server survey at www.netcraft.com. Corre
em Windows, Linux, Mac OS, e a maioria dos sabores de Unix.
Como exemplo, começa com um guião HTML que mostra o "Hello World"! no browser,
mostra na Lista 1-1. É uma tradição que o primeiro guião que escreves em qualquer língua é o
guião do "Hello World". Podes ter desgraçado um guião do "Hello World" quando aprendeste
HTML.
HTML Script
<!doctype html>
<html>
<head><title>Hello World Script</title></head>
<body>
<p>Hello World!</p>
</body>
</html>
PHP Script
<!doctype html>
<html>
<head><title>Hello World Script</title></head>
<body>
<?php
40
echo “<p>Hello World!</p>\n”;
?>
</body>
</html>
✦ Identificador: Todos os nomes variáveis têm um sinal de dólar ($) à frente deles.
✦ Início do nome: Os nomes variáveis devem começar por uma letra ou uma
e só subornos.
✦ sensibilidade dos casos: letras superficiais e baixas não são as mesmas. Por
exemplo, o primeiro nome e o primeiro nome não são a mesma variável. Se guardar
informações em nome próprio, por exemplo, não pode aceder a essa informação
41
Quando se indica variáveis, utiliza nomes que permitem esclarecer quais as informações que
contém na variável. Usando nomes variáveis como $Var1, $Var2, $A ou $B não
contribuir para a clareza do guião. Embora o PHP não se importe com o nome da variável e
não se misture, às pessoas que tentam seguir o guião
terá dificuldade em manter o rastro da qual variável tem informações. Nomes variáveis como
o primeiro nome, idade e ordens são muito mais descritivos e úteis.
Criação e atribuição de valores a variáveis
As variáveis podem conter números ou cordas de personagens. Guarda informações em
variáveis com um único sinal igual (=). Por exemplo, as quatro declarações PHP seguintes
atribuem informações às variáveis:
$age = 12;
$price = 2.55;
$number = -2;
$name = “Little Bo Peep”;
Reparem que a corda de personagem está fechada em citações, mas os números não estão.
Discutimos mais sobre a utilização de números e personagens na secção “Tipos de dados de
acordo” mais tarde neste unidade.
Sempre que coloca informações numa variável que não existia antes, cria essa variável. Por
exemplo, suponha que utilize a seguinte declaração PHP:
$firstname = “George”;
Se esta declaração for a primeira vez que menciona a variável $firstname, esta declaração cria
a variável e fixa-a para “George”.
42
<p>Your age is <?php echo $age ?>.</p>
A saída será:
Your age is 12.
43
● Java Naming and Directory Interface (JNDI) (espaço de nomes e objetos) Java
Management Extensions (JMX) (administração da sua aplicação e estatísticas
sobre a mesma)
44
● JSTL
● JSF
Um Servlet Container é um servidor que suporta essas funcionalidades, mas não
necessariamente o Java EE Web Profile nem o Java EE completo. É indicado a quem não
precisa de tudo do Java EE e está interessado apenas na parte web (boa parte das aplicações de
médio porte encaixam-se nessa categoria).
Há alguns servlet containers famosos no mercado. O mais famoso é o Apache Tomcat.
Instalação do TOMCAT
Baixe o Tomcat 9 em http://tomcat.apache.org/ na p£gina de downloads da versão que escolher,
você precisará de uma "Binary Distribution". Mesmo no windows, dê preferência a versão .zip,
para você entender melhor o processo de inicialização do servidor. A versão executável é
apenas um wrapper para executar a JVM, já que o Tomcat é 100% Java.
Unidade 2.4. Servlets
As 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. Uma
primeira ideia da servlet seria que cada uma delas é responsável por uma página, sendo que ela
lê dados da requisição do cliente e responde com outros dados (uma página HTML, uma
imagem GIF etc). Como no Java tentamos sempre que possível trabalhar orientado a objetos,
nada mais natural que uma servlet seja representada como um objeto a partir de uma classe
Java.
Cada servlet é, portanto, um objeto Java que recebe tais requisições (request) e produz algo
(response), como uma página HTML dinamicamente gerada. O diagrama abaixo mostra três
clientes acessando o mesmo servidor através do protocolo HTTP:
45
O comportamento das servlets que vamos ver neste tema foi definido na classe HttpServlet do
pacote javax.servlet .
A interface Servlet é a que define exatamente como uma servlet funciona, mas não é o que
vamos utilizar, uma vez que ela possibilita o uso de qualquer protocolo baseado em requisições
e respostas, e não especificamente o HTTP.
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. Sua assinatura:
protected void service (HttpServletRequest request,
HttpServletResponse response)
throws ServletExcepti.on, IOException (
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.
Nosso primeiro exemplo de implementação do método service não executa nada de lógica e
apenas mostra uma mensagem estática de bem vindo para o usuário. Para isso, precisamos
construir a resposta que a servlet enviará para o cliente.
É possível obter um objeto que represente a saída a ser enviada ao usuário através do método
getWriter da variável response . E, a partir disso, utilizar um PrintWriter para imprimir algo
na resposta do cliente:
46
public class OiMundo extends HttpServlet +l
protected void service (HttpServletRequest request,
HttpServletResponse response)
throws ServletExcepti.on, IOException 41
Printwriter out : response.getWriter ( ) ;
// escreve o texto
out.println("<html)" ) ;
out.println("<body)" ) ;
out.println("Primeiro servlet");
out.println("</body> ") ;
out.println("</html> " ) ;
O único objetivo do servlet acima é exibir uma mensagem HTML simples para os usuários
que a requisitarem. Mas note como seria muito fácil escrever outros códigos Java mais
poderosos para gerar as Strings do HTML baseadas em informacões dinâmicas vindas. Dor
exemplo de um banco de dados.
O comportamento das servlets que vamos ver neste tema, foi definido na classe HttpServlet do
pacote javax.servlet. A interface Servlet é a que define exatamente como uma servlet funciona,
mas não é o que vamos utilizar, uma vez que ela possibilita o uso de qualquer protocolo baseado
em requisições e respostas, e não especificamente o HTTP.
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. Sua assinatura:
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.
47
Nosso primeiro exemplo de implementação do método service não executa nada de lógica e
apenas mostra uma mensagem estática de bem vindo para o usuário. Para isso, precisamos
construir a resposta que a servlet enviará para o cliente.
É possível obter um objeto que represente a saída a ser enviada ao usuário através do método
getWriter da variável response . E, a partir disso, utilizar um PrintWriter para imprimir algo na
resposta do cliente:
48
para um Servlet. Já sabemos que a Servlet responde por uma determinada URL (através do url-
pattern/v2.5 ou do urlPatterns/v3.0),
portanto, só precisamos indicar que ao clicar no botão devemos enviar uma requisição para
essa Servlet.
Para isso, vamos criar uma página HTML, chamada adiciona-contato.html , contendo um
formulário para preenchermos os dados dos contatos:
<html>
<body>
<form action="adicionaContato">
Nome: <input type="text" name="nome" /><br />
E-mail: <input type="text" name="email" /><br />
Endereço: <input type="text" name="endereco" /><br />
Data Nascimento: <input type="text" name="dataNascimento" /><br />
<input type="submit" value="Gravar" />
</form>
</body>
</html>
Esse código possui um formulário, determinado pela tag <form> . O atributo action indica qual
endereço deve ser chamado ao submeter o formulário, ao clicar no botão Gravar. Nesse caso,
estamos apontando o action para um endereço que será uma Servlet que já vamos criar.
Ao acessar a página adiciona-contato.html, o resultado deverá ser similar à figura abaixo:
Para recebermos os valores que foram preenchidos na tela e submetidos, criaremos uma
Servlet, cuja função será receber de alguma maneira esses dados e convertê-los, se necessário.
49
Dentro do método service da nossa Servlet para adição de contatos, vamos buscar os dados que
foram enviados na requisição. Para buscarmos esses dados, precisamos utilizar o parâmetro
request do método service chamando o método getParameter("nomeDoParametro"), onde o
nome do parâmetro é o mesmo nome do input que você quer buscar o valor. Isso vai retornar
uma String com o valor do parâmetro. Caso não exista o parâmetro, será retornado null :
String valorDoParametro = request.getParameter("nomeDoParametro");
O fato de ser devolvida uma String nos traz um problema, pois, a data de nascimento do contato
está criada como um objeto do tipo Calendar . Então, o que precisamos fazer é converter essa
String em um objeto Calendar . Mas a API do Java para trabalhar com datas não nos permite
fazer isso diretamente. Teremos que converter antes a String em um objeto do tipo
java.util.Date com auxílio da classe SimpleDateFormat , utilizando o método parse , da
seguinte forma:
String dataEmTexto = request.getParameter("dataNascimento");
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
Repare que indicamos também o pattern (formato) com que essa data deveria chegar para nós,
através do parâmetro passado no construtor de SimpleDateFormat com o valor dd/MM/yyyy.
Temos que tomar cuidado pois o método parse lança uma exceção do tipo ParseException .
Essa exceção indica que o que foi passado na data não pôde ser convertido ao pattern
especificado. Com o objeto do tipo java.util.Date que foi devolvido, queremos criar um
Calendar . Para isso vamos usar o método setTime da classe Calendar , que recebe um Date.
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
Unidade 2.5. Usando TAGLIBS JSTL
A Sun percebeu que os programadores estavam abusando do código Java no JSP e tentou criar
algo mais "natural" (um ponto um tanto quanto questionável da maneira que foi apresentada
no início), sugerindo o uso de tags para substituir trechos de código.
O resultado final é um conjunto de tags (uma tag library, ou taglib) padrão, que possui, entre
outras tags, a funcionalidade de instanciar objetos através do construtor sem argumentos.
JSTL
Seguindo a ideia de melhorar o código Java que precisa de uma maneira ou outra ser escrito na
página JSP, a Sun sugeriu o uso da JavaServer Pages Standard Tag Library, a JSTL.
50
A JSTL é a API que encapsulou em tags simples toda a funcionalidade que diversas páginas
Web precisam, como controle de laços ( fors ), controle de fluxo do tipo if else , manipulação
de dados XML e a internacionalização de sua aplicação.
Antigamente, diversas bibliotecas foram criadas por vários grupos com funcionalidades
similares ao JSTL (principalmente ao Core), culminando com a aparição da mesma, em uma
tentativa da Sun de padronizar algo que o mercado vê como útil.
Existem ainda outras partes da JSTL, por exemplo aquela que acessa banco de dados e permite
escrever códigos SQL na nossa página, mas se o designer não compreende Java o que diremos
de SQL?
O uso de tal parte da JSTL é desencorajado.
A JSTL foi a forma encontrada de padronizar o trabalho de milhares de programadores de
páginas JSP. Antes disso, muita gente programava como nos exemplos que vimos
anteriormente, somente com JSPs e Javabeans, o chamado Modelo 1, que na época fazia parte
dos Blueprints de J2EE da Sun (boas práticas).
INSTALAÇÃO DO JSTL
Para instalar a implementação mais famosa da JSTL basta baixar a mesma no site
http://jstl.java.net/.
Ao usar o JSTL em alguma página precisamos primeiro definir o cabeçalho. Existem quatro
APIs básicas e vamos aprender primeiro a utilizar a biblioteca chamada de core.
Sempre que vamos utilizar uma taglib devemos primeiro escrever um cabeçalho através de uma
tag JSP que define qual taglib vamos utilizar e um nome, chamado prefixo.
Esse prefixo pode ter qualquer valor mas no caso da taglib core da JSTL o padrão da Sun é a
letra c. Já a URI (que não deve ser decorada) é mostrada a seguir e não implica em uma
requisição pelo protocolo http e sim uma busca entre os arquivos .jar no diretório lib.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
A JSTL core disponibiliza uma tag chamada c:forEach capaz de iterar por uma coleção,
exatamente o que precisamos. No c:forEach , precisamos indicar a coleção na qual vamos
iterar, através do atributo items e também como chamará o objeto que será atribuído para cada
iteração no atributo var . O exemplo a seguir mostra o uso de expression language de uma
maneira muito mais elegante:
<c:forEach var="contato" items="${dao.lista}">
${contato.nome}, ${contato.email},
${contato.endereco}, ${contato.dataNascimento}
51
</c:forEach>
IF COM JSTL
Para que possamos fazer essa verificação precisaremos fazer um if para sabermos se o e-mail
está preenchido ou não. Mas, novamente, não queremos colocar código Java na nossa página e
já aprendemos que estamos mudando isso para utilizar tags. Para essa finalidade, existe a tag
c:if , na qual podemos indicar qual o teste lógico deve ser feito através do atributo test . Esse
teste é informado através de Expression Language.
Para verificarmos se o e-mail está preenchido ou não, podemos fazer o seguinte:
<c:if test="${not empty contato.email}">
<a href="mailto:${contato.email}">${contato.email}</a>
</c:if>
Podemos também, caso o e-mail não tenha sido preenchido, colocar a mensagem "e-mail não
informado", ao invés de nossa tabela ficar com um espaço em branco. Repare que esse é
justamente o caso contrário que fizemos no nosso if , logo, é equivalente ao else .
O problema é que não temos a tag else na JSTL, por questões estruturais de XML. Uma
primeira alternativa seria fazermos outro <c:if> com a lógica invertida. Mas isso não é uma
solução muito elegante. No Java, temos outra estrutura condicional que consegue simular um
if/else , que é o switch/case .
Para simularmos switch/case com JSTL, utilizamos a tag c:choose e para cada caso do switch
fazemos c:when . O default do switch pode ser representado através da tag c:otherwise , como
no exemplo a seguir:
<c:choose>
<c:when test="${not empty contato.email}">
<a href="mailto:${contato.email}">${contato.email}</a>
</c:when>
<c:otherwise>
E-mail não informado
</c:otherwise>
52
Para isso, vamos utilizar outra Taglib da JSTL que é a taglib de formatação, a fmt.
Para utilizarmos a taglib fmt , precisamos importá-la, da mesma forma que fizemos com a tag
core , através da diretiva de taglib , como abaixo:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
Dentro da taglib fmt , uma das tags que ela possui é a formatDate , que faz com que um
determinado objeto do tipo java.util.Date seja formatado para um dado pattern. Então, podemos
utilizar a tag fmt:formatDate da seguinte forma:
<fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy" />
Repare que, na Expression Language que colocamos no value , há no final um .time . Isso
porque o atributo value só aceita objetos do tipo java.util.Date , e nossa data de nascimento é
um java.util.Calendar que possui um método getTime() para chegarmos ao seu respectivo
java.util.Date
53
Na figura acima vemos a relação entre o controller, o model e o view. O controller aceita a
requisição do usuário, acessa o view e/ou o model. O model acessa o banco de dados. Ao final,
o conteúdo do view é retornado ao usuário.
Recursos do ASP.NET MVC
O ASP.NET MVC permite, entre outras coisas:
• Controle total sobre o HTML.
• Criação de URLs amigáveis.
• Clara separação entre o design, o código e a camada de dados.
• Validação no cliente e servidor.
• Definição de filtros de ação.
• Facilidade em implementar aplicações Ajax.
• Uso da sintaxe Razor.
• Uso intensivo de atributos.
• Implementação e criação de HTML helpers.
• A implementação de unidades de teste.
• Implementa o pattern MVC.
54
para Add e clique em Controller.... Na caixa de diálogo Add Controller digite o nome do con-
trolador – HomeController. Observe a figura abaixo:
55
return View();
}
}
}
Pressione F5. A aplicação retorna novamente uma página de erro, pois ainda não as sociamos
nenhum view – responsável pela exibição do conteúdo ao usuário.
Para resolver o problema, substitua o trecho de código:
public ActionResult Index() {
return View();
}
Por:
public ActionResult Index() {
return Content("<h1>Olá mundo!</h1>");
}
Se preferir use:
public string Index() {
return "<h1>Olá mundo!</h1>";
}
Ou:
public void Index() {
Response.Write("<h1>Olá mundo!</h1>");
}
Pressione F5 novamente. O resultado vemos na figura abaixo.
O mesmo resultado é obtido quando digitamos:
http://localhost:1029/
http://localhost:1029/Home
http://localhost:1029/Home/index
56
O ASP.NET MVC usa roteamento de URLs e as regras são registradas no método
RegisterRoutes dentro do arquivo Global.asax:
57
Unidade 3.4. Método com parâmetros
Acrescente o método Details à classe HomeController:
public ActionResult Details(int id) {
return Content("<h1>Olá mundo com id = " + id + "</h1>");
}
Exemplo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace AppCapitulo1.Controllers {
public class HomeController : Controller {
public ActionResult Index() {
return Content("<h1>Olá mundo!</h1>");
}
public ActionResult Details(int id) {
return Content("<h1>Olá mundo com id = " + id + "</h1>");
}
}
}
Quando pressionamos F5 ou digitamos no navegar a URL:
http://localhost:NúmeroDaPorta/Home/Details/5
É retornada a página exibida na figura abaixo.
58
Unidade 3.5. Views
View ou exibição – é responsável pela apresentação do conteúdo HTML da página.
Geralmente, é definida por intermédio de arquivos .aspx, .ascx, .master, .cshtml.
Criar uma exibição a partir de um método de controlador MVC. É o modo mais
fácil, rápido e simples.
Clique com o botão direito do mouse no nome do método e, em seguida, clique em
Add View.... Observe a figura abaixo.
Na caixa de diálogo Add View defina o nome do view e também o mecanismo de exibi-
ção – ASPX no nosso caso. Marque a caixa de seleção com a legenda "Use a layout or
master page:” e determine o nome da master page. Observe a figura abaixo.
59
O novo view é acrescentado ao subdiretório Home do diretório Views. Observe a figura abaixo
60
Unidade 3.6. Models
O model contém as classes da camada de dados, ou seja, contém as rotinas de acesso e
manipulação de dados provenientes de diferentes origens de dados, por exemplo, banco de
dados SQL Server, Oracle, MySQL, documentos XML etc.
Os arquivos da camada de dados são armazenados no diretório Models.
Para facilitar a manutenção, os testes e evitar a duplicação de códigos, divida, por
exemplo, a camada de dados em um ou mais objetos Entity Framework e os manipule por
intermédio de uma classe e uma interface.
Acrescentando uma nova classe
Para ilustrar o que foi abordado até o momento, criamos uma nova classe no diretório Models,
conforme a figura abaixo:
61
Em seguida, na caixa de diálogo Add New Item definimos o nome da classe. Observe a figura
abaixo:
Ao clicar no botão Add da caixa de diálogo Add New Item é acrescentado ao diretório Models
o arquivo Cidades.cs com o seguinte código:
using System;
using System.Collections.Generic;
62
using System.Linq;
using System.Web;
namespace AppCapitulo1.Models {
public class Cidades {
}
}
O passo seguinte é alterar o código gerado. Alteramos o nome da namespace de:
namespace AppCapitulo1.Models {
Para:
namespace AlfredoLotar.Livro.AspnetMvc {
E acrescentamos três propriedades:
public int CidadeID { get; set; }
public string Nome { get; set; }
public string Estado { get; set; }
A seguir temos o código da classe Cidades com as alterações:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace AlfredoLotar.Livro.AspnetMvc {
public class Cidades {
public int CidadeID { get; set; }
public string Nome { get; set; }
public string Estado { get; set; }
}
}
Antes de acessar os membros da classe Cidades é preciso compilá-la. Observe a figura abaixo.
63
64
TEMA IV: ESTUDO COMPARATIVO
Unidade 4.1. Diferenças entre PHP, ASP e JSP
As três linguagens, PHP, ASP e JSP, compartilham da mesma arquitetura para o seu
funcionamento, ou seja, rodam na parte do cliente, são usadas principalmente para tratar
requisições feitas por um cliente, possuem lógica de programação e montam a saída do seu
processamento usando principalmente HTML.
As diferenças de cada uma estão mais nos detalhes de implementação, pois cada uma delas
implementa a sua própria sintaxe para estrutura condicionais, variáveis, repetições e tudo o
mais relacionado à maneira como o fluxo de execução acontece. Cada um deles roda usando
um servidor web específico: o PHP usa principalmente o Apache, o ASP o IIS da Microsoft e
o JSP faz uso do Apache Tomcat.
O JSP, que possui sua estrutura e maneira de escrever intimamente ligada ao mundo Java (o
termo JSP significa Java Server Pages) possui ainda todo um universo adicional e
complementar de programação chamado Servlets, que trazem mais facilidades na escrita de
código do lado do servidor, sendo o JSP usado principalmente na criação de interfaces gráficas
inteligentes para sistemas, pois concentra uma série de facilidades de lógica que o HTML por
si só não tem.
Ainda que todas elas sejam parecidas e compartilhem de alguns pontos em comum, a escolha
ou definição de alguma delas em detrimento de outra passa principalmente pelo problema
existente e qual a melhor maneira de resolvê-lo. Enquanto PHP possui uma curva de
aprendizado pouco inclinada, tornando o seu aprendizado muito rápido, as tecnologias Java
trazem embutidas, curvas mais acentuadas, o que a torna um limitante em alguns momentos.
Já a vantagem do PHP em relação ao ASP está no custo das licenças necessárias da plataforma
Microsoft, pois as ferramentas e infra-estruturas necessárias para se rodar um programa PHP
são zero, enquanto até o ambiente de desenvolvimento traz consigo o custo de licença para
início do trabalho comercial.
65
execução de um pacote de instalação. Este pacote instala não apenas um servidor web e PHP,
mas também MySQL, FileZilla, Mercury, Perl e Tomcat. Esses aplicativos permitem testar
sites inteiros em seu próprio computador de mesa sem precisar carregar tudo em um servidor
da Web online.
Passo 1
Acesse o site do Apache Friends e faça o download do XAMPP para Windows. Para facilitar
a instalação, faça o download do “arquivo RAR de extração automática” do Pacote Básico.
Aguarde o download terminar e abra-o para iniciar a instalação do XAMPP. Clique no botão
“Instalar” para começar a extrair o arquivo. Quando a tela com o prompt de comando aparecer,
pressione a tecla “Enter” em cada pergunta para aceitar a configuração padrão.
Passo 2
Inicie o programa XAMPP. Quando é iniciado, o XAMPP é carregado na bandeja de ícones.
O ícone é laranja com uma forma de osso branco no centro. Clique no ícone para expandir o
painel de controle. Clique no botão “Iniciar” ao lado de “Apache” para iniciar o servidor da
Web Apache. Quando o Apache estiver em execução, a palavra “Em execução” aparecerá ao
lado, destacada em verde. Você também deve executar o “MySQL” se seus scripts PHP
dependerem de um banco de dados MySQL para funcionar.
Passo 3
Coloque os arquivos PHP na pasta “htdocs” dentro da pasta “XAMMP” na unidade C :. O
caminho do arquivo é “C: xampp htdocs” para o seu servidor da Web. Certifique-se de que
seus arquivos PHP sejam salvos dessa maneira. Eles devem ter a extensão “.php”. Abra um
navegador da web na área de trabalho e digite “localhost” no espaço fornecido. O navegador
abrirá uma lista dos arquivos armazenados na pasta “htdocs” do seu computador. Clique no
link de um arquivo PHP e abra-o para executar um script.
Passo 4
Crie as pastas necessárias para testar os arquivos PHP na pasta “htdocs”. Se você criar uma
pasta chamada “scripts”, use o endereço “localhost / scripts” para abri-los no seu navegador.
66
Unidade 5.2. Novo projecto ASP
1.Inicie o Visual Studio 2010 ou o Visual Web Developer 2010 Express. Acesse o menu File
e clique em New Project ....
Na caixa de diálogo New Project selecione Visual C# e ASP.NET MVC 3 Web Application.
Nomeie o projeto como AppCapitulo1. Clique em OK. Conforme figura abaixo.
2.Em seguida, escolha um dos dois templates para iniciar seu projeto:
• Empty contém a estrutura básica de arquivos e diretórios usados por uma apli-
cação ASP.NET MVC.
• Internet Application contém além dos recursos do template Empty arquivos e diretórios
usados na autenticação de usuários e formatação.
Na caixa de combinação View Engine:. Selecione o mecanismo de exibição ASPX.
67
Quando criamos uma nova aplicação com o template Empty, é automaticamente adi-
cionada a seguinte estrutura de arquivos e diretórios.
68
Além dos diretórios-padrão, listados anteriormente, há diretórios com significados
especiais:
Areas:
O ASP.NET MVC cria uma nova estrutura de diretórios e arquivos.
Ideal para dividir uma aplicação grande ou criar uma área restrita no
website.
App_GlobalResources:
Contém os arquivos de recursos globais (.resx e .resources). Esses
arquivos contêm imagens, textos, arquivos etc.
App_LocalResources:
Contém os arquivos de recursos locais (.resx e .resources). Esses arquivos
contêm imagens, textos, outros arquivos etc.
App_Browsers:
69
Contém os arquivos com a extensão .browser. Os arquivos .browser gerenciam as informações
sobre os recursos implementados pelo na-
vegador.
App_Themes:
Contém os arquivos .skin e .css responsáveis pela aparência da aplicação.
Bem, esse erro acontece porque não temos nenhuma informação ou página para exibir no
navegador. Para resolver esse problema adicionamos um controlador ao projeto.
70
Unidade 5.3. Novo projecto JSP
Aqui veremos como, passo a passo, criar um novo projeto Web no Eclipse usando os recursos
do Eclipse Java EE. Dessa forma não precisamos iniciar o servlet container na mão, além de
permitir a configuração de um projeto, de suas bibliotecas, e de seu debug, de uma maneira
bem mais simples do que sem ele.
1.Vá em New > Project e selecione Dynamic Web Project e clique Next:
2.Coloque o nome do projeto como fj21-agenda, verifique se o Target runtime está apontando
para a versão do Tomcat que acabamos de configurar e se o Dynamic web module version está
configurado para 4.0. Depois clique em Next. ATENÇÃO: NÃO CLIQUE EM Finish AINDA!
!!
71
3.Clique em Next na configuração das pastas:
72
4. Na configuração Web module marque o box Generate web.xml deployment
descriptor e clique em Finish:
73
Olhe bem a estrutura de pastas e verá algo parecido com o que segue:
74
O diretório src já é velho conhecido. É onde vamos colocar nosso código fonte Java. Em um
projeto normal do Eclipse, essas classes seriam compiladas para a pasta bi.n , mas no Eclipse
é costume se usar a pasta build que vemos em nosso projeto.
Nosso projeto será composto de muitas páginas Web e vamos querer acessá-lo no navegador.
Já sabemos que o servidor é acessado pelo http://localhost:8080 , mas como será que dizemos
que queremos acessar o nosso prometo e não outros projetos?
No Java EE, trabalhamos com o conceito de contextos Web para diferenciar sites ou projetos
distintos em um mesmo servidor. Na prática, é como uma pasta virtual que, quando acessada,
remete a algum projeto em questão.
Por padrão, o Eclipse gera o context name com o mesmo nome do projeto; no nosso caso, fj21-
agenda. Podemos mudar isso na hora de criar o projeto ou posteriormente indo em Project
Properties. Repare que não é necessário que o nome do contexto seja o mesmo nome do projeto.
Assim, para acessar o projeto, usaremos a URL: http://localhost:8080/fj21-agenda/
Mas o que será que vai aparecer quando abrirmos essa URL? Será que veremos todo o conteúdo
do projeto? Por exemplo, será possível acessar a pasta src que está dentro do nosso projeto?
Tomara que não, afinal todo nosso código fonte está lá.
Para solucionar isso, uma outra configuração é importante no Eclipse: o Content Directory. Ao
invés de abrir acesso a tudo, criamos uma pasta dentro do projeto e dizemos que ela é a raiz
(root) do conteúdo a ser exibido no navegador. No Eclipse, por padrão, é criada a pasta
WebContent, mas poderia ser qualquer outra pasta configurada na criação do projeto (outro
nome comum de se usar é web).
Tudo que colocarmos na pasta WebContent será acessível na URL do projeto. Por exemplo, se
queremos uma página de boas vindas:
http://ocaihost8080/fj21-agenda/bemvindo.htm
então criamos o arquivo:
fj21-agenda/WebContent/bemvindo.html
WEB-INF
Repare também que dentro da WebContent há uma pasta chamada WEB-INF . Essa pasta é
extremamente importante para qualquer projeto web Java EE. Ela contém configurações e
recursos necessários para nosso projeto rodar no servidor.
O web.xml é o arquivo onde ficará armazenada as configurações relativas a sua aplicação.
75
Criação da página Index.html
Vamos testar nossas configurações criando um arquivo HTML de teste.
1. Crie o arquivo WebContent/index.html com o seguinte conteúdo:
<html>
<head>
<title>Projeto fj21-agenda</title>
</head>
<body>
<h1>Primeira página do projeto fj21-agenda</h1>
</body>
</html>
76