
package br.com.javamagazine.jairelton2;
public class comentario {
private int id;
private string nome;
private string email;
private string texto;
public comentario(){
nome = "";
email = "";
texto = "";
}
public string getemail() {
return email;
}
public void setemail(string email) {
this.email = email;
}
public int getid() {
return id;
}
public void setid(int id) {
this.id = id;
}
public string getnome() {
return nome;
}
public void setnome(string nome) {
this.nome = nome;
}
public string gettexto() {
return texto;
}
public void settexto(string texto) {
this.texto = texto;
}
}package br.com.javamagazine.jairelton2;
import java.awt.color;
import com.octo.CAPTCHA.component.image.backgroundgenerator.backgroundgenerator;
import com.octo.CAPTCHA.component.image.backgroundgenerator.funkybackgroundgenerator;
import com.octo.CAPTCHA.component.image.fontgenerator.fontgenerator;
import com.octo.CAPTCHA.component.image.fontgenerator.twistedandshearedrandomfontgenerator;
import com.octo.CAPTCHA.component.image.textpaster.randomtextpaster;
import com.octo.CAPTCHA.component.image.textpaster.textpaster;
import com.octo.CAPTCHA.component.image.wordtoimage.composedwordtoimage;
import com.octo.CAPTCHA.component.image.wordtoimage.wordtoimage;
import com.octo.CAPTCHA.component.word.wordgenerator.randomwordgenerator;
import com.octo.CAPTCHA.engine.image.listimageCAPTCHAengine;
import com.octo.CAPTCHA.image.gimpy.gimpyfactory;
import com.octo.CAPTCHA.service.image.defaultmanageableimageCAPTCHAservice;
import com.octo.CAPTCHA.service.image.imageCAPTCHAservice;
public class CAPTCHA {
private imageCAPTCHAservice service;
private static CAPTCHA instance = new CAPTCHA();
/*a classe deve ser um singleton*/
private CAPTCHA(){
defaultmanageableimageCAPTCHAservice serv = new defaultmanageableimageCAPTCHAservice();
serv.setCAPTCHAengine(new enginenumeros());
service = serv;
}
public static CAPTCHA getinstance(){
return instance;
}
public imageCAPTCHAservice getservice(){
return service;
}
/*especializando um engine para gerar apenas números*/
class enginenumeros extends listimageCAPTCHAengine {
protected void buildinitialfactories() {
/*cria um um textpaster, o tamanho mínimo é de 5 caracteres
* maximo de 8, e a cor do texto será branca
*/
textpaster textpaster =
new randomtextpaster(5, 8, color.white);
/*um gerador de background, a imagem terá 100 x 50 pixels
*/
backgroundgenerator backgroundgenerator =
new funkybackgroundgenerator(100, 50);
/* um gerador de fonte, é responsável por distorcer o
* texto, o tamanho mínimo da fonte é 25 e o maximo 30
*/
fontgenerator fontgenerator =
new twistedandshearedrandomfontgenerator(25, 30);
/* o objeto responsável por juntar o background, a fonte e
* o texto para gerar a imagem
*/
wordtoimage wordtoimage =
new composedwordtoimage(fontgenerator,
backgroundgenerator, textpaster);
/* adiciona o factory randomwordgenerator recebe os
* caracteres válidos, no caso queremos apenas números
*/
this.addfactory(new gimpyfactory(new randomwordgenerator
("0123456789"), wordtoimage));
}
}
}package br.com.javamagazine.jairelton2;
import java.awt.image.bufferedimage;
import java.io.bytearrayoutputstream;
import java.io.ioexception;
import javax.servlet.servletexception;
import javax.servlet.servletoutputstream;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import com.sun.image.codec.jpeg.jpegcodec;
import com.sun.image.codec.jpeg.jpegimageencoder;
public class CAPTCHAservlet extends javax.servlet.http.httpservlet{
protected void doget(httpservletrequest request, httpservletresponse
response) throws servletexception, ioexception {
servletoutputstream out = response.getoutputstream();
bytearrayoutputstream jpegstream = new bytearrayoutputstream();
try {
/*a imagem será gerada com base no id da sessão*/
string jsid = request.getsession().getid();
/*gera a imagem*/
bufferedimage challenge = CAPTCHA.getinstance().
getservice().getimagechallengeforid(jsid);
/*codifica a imagem no formato jpeg*/
jpegimageencoder jpegencoder = jpegcodec.
createjpegencoder(jpegstream);
jpegencoder.encode(challenge);
} catch (exception e) {
response.senderror(httpservletresponse.sc_internal_server_error);
return;
}
/*transforma a imagem em um array de bytes*/
byte[] jpegbytes = jpegstream.tobytearray();
/*modifica os cabeçalhos http
* para que a imagem não seja armazenada em cache
*/
response.setheader("cache-control", "no-store");
response.setheader("pragma", "no-cache");
response.setdateheader("expires", 0);
response.setcontenttype("image/jpeg");
/*envia a imagem para o cliente*/
out.write(jpegbytes);
out.flush();
out.close();
}
protected void dopost(httpservletrequest request, httpservletresponse
response) throws servletexception, ioexception {
doget(request, response);
}
}package br.com.javamagazine.jairelton2;
import java.io.ioexception;
import javax.servlet.requestdispatcher;
import javax.servlet.servletexception;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
public class comentarioservlet extends javax.servlet.http.httpservlet{
protected void doget(httpservletrequest request, httpservletresponse
response) throws servletexception, ioexception {
dopost(request, response);
}
protected void dopost(httpservletrequest request, httpservletresponse
response) throws servletexception, ioexception {
/*os caracteres serão validados de acordo com o id da sessão
*pois eles foram gerados a partir dele
*/
string jsid = request.getsession().getid();
/*recupera os caracteres que foram digitados pelo usuário*/
string CAPTCHA = request.getparameter("CAPTCHA");
/*valida a entrada do usuario, retorna true se valido, false se
invalido*/
boolean CAPTCHAok = CAPTCHA.getinstance().
getservice().validateresponseforid(jsid, CAPTCHA);
/*cria um comentário com base nos dados do formulário*/
comentario comentario = new comentario();
comentario.setnome(request.getparameter("nome"));
comentario.setemail(request.getparameter("email"));
comentario.settexto(request.getparameter("texto"));
request.getsession().setattribute("comentario", comentario);
if(CAPTCHAok){
/*caso o usuário tenha digitado os caracteres corretamente, processa
*normalmente, no nosso caso fazemos apenas um redirecionamento para
*outro pagina, mas em uma aplicação real os dados seriam persistidos*/
requestdispatcher dispatcher =
getservletcontext().getrequestdispatcher("/ok.jsp");
dispatcher.forward(request, response);
}else{
/*caso os caracteres sejam inválidos, volta para o formulário com uma
*mensagem de erro*/
request.setattribute("mensagem", "preencha os caracteres
corretamente!");
requestdispatcher dispatcher =
getservletcontext().getrequestdispatcher("/formulario.jsp");
dispatcher.forward(request, response);
}
}
}
<%@ page language="java" contenttype="text/html; charset=iso-8859-1"
pageencoding="iso-8859-1"%>


<%@ page language="java" contenttype="text/html; charset=iso-8859-1"
pageencoding="iso-8859-1"%>

Todas as matérias de Redação Oficina da Net
O computador terá o tamanho que você quiser. Poderá ser do tamanho da .
Aqui veremos como aplicar uma tatuagem a qualquer pessoa de uma maneir.
Público é um item fundamental para se ter um site. De que adianta você.
Veja como transformar suas imagens em quebra cabeças de uma maneira be.
Olá pessoal, estou aqui para mais uma vídeo aula, desta vez vou mostra.
O NetBeans é um ambiente de desenvolvimento integrado (IDE) Java desen.
O Tomcat é um Conteiner Servlet (Servidor de Aplicações Java), que ser.
Instalação e Configuração do JDK em Ambiente Windows
Mandando o foco para um campo determinado na tela.
© 2005 - 2009 - Oficina da Net - v 4.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.
Seja o primeiro a comentar!