Postado por Carlos Fernando Sylverio | Postado em Programação, Tecnologia | Postado em 19-10-2009
0
O problema que o Ajax tenta resolver está enraizado no protocolo de comunicação HTTP. Isso porque esse protocolo é sem estado (stateless), assim o controle das ações executadas na aplicação cliente é controlado pelo código no servidor web. Ou seja, as alterações (ou entrada de dados) executadas na página web pelo usuário são enviadas para o servidor para que este atualize seu estado, e o servidor responde a alteração reenviado todo o HTML para o browser.

Mas o que é o Ajax?
Ajax é o acrônimo (da língua inglesa) de Asynchronous Javascript and XML, ele não é uma linguagem de programação e sim a combinação de tecnologias existentes (Javascript, XML e XmlHttpRequest) que nos permite realizar solicitações assíncronas ao servidor para busca de informações e/ou atualizar seu estado.
Em outras palavras o Ajax, é um objeto presente nos browser atuais que combinado com JavaScript pode se comunicar com o servidor Web sem recarregar e redesenhar a página inteira.
Utilizando do Ajax
O exemplo abaixo apresenta uma página chamada calcProduto.html, onde o usuário escolhe o tipo de produto e informa a quantidade de produto que gostaria de adquir. Ao clicar no botão calcular, é realizado via ajax uma requisição ao servidor web (arquivo calcProduto.php) que realiza o calculo necessário e sua reposta é renderizada sem recarregar a página html.
Abaixo o código do arquivo calcProduto.html:
<html>
<head>
<title>Produto</title>
<script language="javascript" type="text/javascript">
var request = null;
// função que cria objeto de requisição
function createRequest () {
try {
// cria objeto XmlHttpRequest para os browser Firefox, Safari, Opera
request = new XMLHttpRequest();
} catch( trymicrosoft ) {
try {
// cria objeto XmlHttpRequest para o browser IE
request = new ActiveXObject( "Msxm12.XMLHTTP" );
} catch( othermicrosoft ) {
try{
// cria objeto XmlHttpRequest para o browser IE
request = new ActiveXObject( "Microsoft.XMLHTTP" );
} catch( failed ) {
request = null;
}
}
}
if ( request == null ) {
alert( "Erro ao criar objeto Request!" );
}
}
// função que executa chamada ao servidor para realizar o calculo
function getPrice () {
createRequest ();
var prod = document.getElementById( "produto").value;
var qtd = document.getElementById( "quantidade").value;
var url = "calcProduto.php?produto=" + prod + "&quantidade=" + qtd;
request.open( "GET", url, true );
request.onreadystatechange = updatePage; // define função a ser chamada a obter resposta do servidor web
request.send( null ); // null informa que não está sendo enviado nenhum dado na requisição
}
// função chamada ao obter retorno da requisição e atualiza interface
function updatePage () {
if( request.readyState == 4 ) {
if( request.status == 200 ){
var resultado = document.getElementById( "resultado" );
resultado.innerHTML = request.responseText;
}
else{
alert( "Erro: não foi possível obter resposta do servidor." );
}
}
}
</script>
</head>
<body>
<h1>Calculo de produto</h1>
<p> Escolha um produto e informe a quantidade.</p>
<form method="GET" action="calcProduto.php">
<p> Produto:
<select name="produto" id="produto">
<option value="0">Caneta</option>
<option value="1">Borracha</option>
<option value="2">Giz</option>
<option value="3">Apagador</option>
</select>
</p>htm
<p> Quantidade <input type="text" name="quantidade" id="quantidade"></p>
<p><input type="button" value="Calcular" onClick="getPrice();"></p>
</form>
<div id="resultado">
</div>
</body>
</html>
O código utilizado no servidor web:
<?php
$produto = $_REQUEST['produto'];
$qtd = $_REQUEST['quantidade'];
$prodName = '';
$vlr = '';
switch($produto){
case "0":
$prodName = 'Caneta';
$vlr = 1;
break;
case '1':
$prodName = 'Borracha';
$vlr = 2;
break;
case '2':
$prodName = 'Giz';
$vlr = 3;
break;
case '3':
$prodName = 'Apagador';
$vlr = 4;
break;
}
$total = $qtd * $vlr;
?>
<h3>Calculo:</h3>
<table border=1 >
<tr>
<td>Produto</td>
<td>Quantida</td>
<td>Valor unidade</td>
<td>Total</td>
</tr>
<tr>
<td><?php print $prodName ?></td>
<td><?php print $qtd ?></td>
<td><?php echo "R$ " .number_format($vlr, 2, ',', '.'); ?></td>
<td><?php echo "R$ " .number_format($total, 2, ',', '.'); ?></td>
</tr>
</table>
Futuramente falarei um pouco mais sobre o componente XmlHttpRequest e seus recursos.
Enjoy
Postado por Carlos Fernando Sylverio | Postado em Programação | Postado em 25-09-2009
0
Olá pessoal,
No post anterior Requisição HTTP com Java Application Parte 1 , falei um pouco sobre como obter o conteúdo de uma página web. Mas nem sempre somente o conteúdo de uma página nos interessa.
Na maioria das vezes necessitamos que de uma interação com a página (ou páginas) por meio de troca de informação, ou seja, enviamos dados, a página processa os dados e nos retorna a informação.
Para isso iremos trabalhar com o objeto URLConnection, objeto existente no pacote java.net.
Veja o exemplo abaixo:
package teste.comunication;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
public class TesteComunicacao {
public static void main(String[] args)
throws MalformedURLException, IOException {
try{
// monta estrutura de parametros a serem eviados
String data = URLEncoder.encode( "nome", "UTF-8" ) + "=" + URLEncoder.encode( "Fernando", "UTF-8" );
URL url = new URL( "http://localhost/get_name.php" );
URLConnection urlConnection = url.openConnection();
// envia dados
urlConnection.setDoOutput(true);
OutputStreamWriter outputWriter = new OutputStreamWriter(urlConnection.getOutputStream());
outputWriter.write(data);
outputWriter.flush();
// Obtem as respostas
InputStreamReader inputReader = new InputStreamReader(urlConnection.getInputStream());
BufferedReader bufferedReader = new BufferedReader( inputReader );
System.out.println( "\n** retorno da página web **" );
String linha = "";
while ( (linha = bufferedReader.readLine()) != null){
System.out.println(linha);
}
} catch (Exception e) {
System.out.println( e.getMessage() );
}
}
}
Após instânciar o objeto URL, podemos obter o objeto URLConnection através do seu método openConnection.
O método urlConnection.setDoOutput(true); é executado para informar que será enviado parâmetros.
Depois obtemos o stream de saída e enviamos os dados (obs: esses dados são enviados via método POST).
O retorno é obtido através do método urlConnection.getInputStream que é tratado por meio do objeto InputStreamReader.
Para simular o processamento dos dados enviados gerei um arquivo PHP com o seguinte código:
<?php
$response = $_POST['nome'];
echo "Conteúdo recebido: ";
echo $response;
?>
Ele simplesmente lê o dado recebido e gera uma resposta apartir das informações obtidas.
Enjoy
Postado por Carlos Fernando Sylverio | Postado em Programação | Postado em 23-08-2009
0
CakePHP é um framework escrito em PHP, que possibilita o desenvolvimento de aplicações (PHP) web robustas rapidamente sem perder flexibilidade.
O CakePHP é Open Source e fornece uma arquitetura extensível para desenvolvimento, manutenção, e distribuição de aplicações por meio de patterns conhecidos como ActiveRecord, Association Data Mapping, Front Controller, MVC (Model-View-Controller) e ORM.
Entendendo o MVC
O CakePHP segue o design pattern MVC, que separa sua aplicação em três camadas principais?
1. Model representa os dados da aplicação.
2. View representa o modelo de apresentação dos dados.
3. Controller recebe e encaminha requisições feitas pelo cliente.

1.Cliente (browser) faz requisição para o servidor web;
2.O expedidor (dispacher) verifica a URL e encaminha a requisição para o controller correto.
3.O controller realiza a específica lógica da aplicação.
4.O controller utiliza o model para se ter acesso aos dados da aplicação.
5.Depois os dados o controller os encaminha para view. A view pega os dados e os prepara no formato de apresentação específico para o cliente.
6.Uma vez criado a apresentação, este é retornado para o browser.
Observação:
- A camada de Model representa os dados da aplicação, não é representação de um banco de dados ou entidades da aplicação, ela poderia estar acessando um WebService, por exemplo, para obter os dados da aplicação, isolando assim a camada de apresentação com a camada de negócio.
- Usualmente as views no CakePHP são no formato HTML, mas podem ser PDF, XML, JSON, isso depende mais qual será o propósito de sua utilização.
Estrutura do CakePHP
Alem das classes de Model, View e Controller o CakePHP também possui algumas características como classes de Components, Behaviors e Helpers que auxiliam o desenvolvimento.
Controller – são equipados com callbacks, que possibilita inserir operações no núcleo do CakePHP;
Component – compartilha a lógica entre controllers;
Helper – compartilha a lógica entre as views;
Behaviors – adiciona funcionalidade entre models;
DataSources – abstrações que permitem os models manipularem diferentes tipos de dados consistente;
Convenções
O CakePHP possui já um estilo de programação que pode ser acompanhado em book.cakephp.org
Segue uma lista básica de estilo:
| nomes de arquivo |
devem ser sublinhados; |
| nome de classes |
devem ser CamelCase; |
| nome de controller |
devem estar no plural e ser CamelCase; |
|
deve ter uma função chamada índex(); |
|
colocando um sublinhado na frente da função ela será disponível somente para uso interno, não ficando disponível para web por meio do dispatcher. |
| nome de models |
devem ser no singular e ser CamelCase; |
| nome de URL |
o nome dos controller devem ser no plural e lowerCamelCase, porem curtos. Exemplo: RedCarsController ficaria redCars; |
Referências
The Official CakePHP website
The Cookbook
Wikipedia
Até mais
Postado por Carlos Fernando Sylverio | Postado em Programação | Postado em 20-08-2009
0
PHP é uma linguagem de script Open Source de uso geral, muito utilizada para aplicações Web.

Suas principais características são:
- Criação de aplicações dinâmicas;
- Código PHP é executado do lado servidor;
- Interação com banco de dados sem exposição de código para o cliente;
- Possibilidade de embutir código dentro do HTML;
- Arquivos PHP são tipos texto (ASCII) e podem ser escritos em qualquer editor de texto;
- Compatibilidade com diversos Sistemas Operacionais (Windows, Linux, Unix, Mac OS, e outros);
- Suportado por diversos servidores Web (Apache, IIS, e outros), podendo ser configurado como módulo ou como um CGI comum.
O que pode ser feito?
Basicamente, qualquer coisa como criar e coletar dados de um formulário, gerar páginas dinâmicas ou enviar e receber cookies.
Segue um link para o manual web do PHP. Nele há um suporte desde a sintaxe básica do PHP até a instalação e configuração de um servidor PHP.
Referência
Manual PHP
Beginning PHP5 and MySQL5, W Jason Gilmore
Até mais
seguidores
leitores