jsp implementa código de verificação gráfica
Autor:Eve Cole
Data da Última Atualização:2009-07-02 17:08:30
método de chamada
<img src=" http://...../getImg ">
O princípio é gerar aleatoriamente um número de 4 dígitos 1000-9999 no servlet
Em seguida, escreva este número na sessão
Mostre uma imagem com esses quatro números escritos nela
No lado do servidor, com base no número inserido pelo usuário e
Comparação de valores na sessão.
pacote com.schoolwx.util;
importar java.io.*;
importar java.util.*;
importar com.sun.image.codec.jpeg.*;
importar javax.servlet.*;
importar javax.servlet.http.*;
importar java.awt.*;
importar java.awt.image.*;
/**
* Título: getImg.java
* Descrição: Esta classe implementa principalmente a geração aleatória de um código de verificação de 4 dígitos e sua gravação na sessão.
* Direitos autorais: Direitos autorais (c) 2003
* Empresa: Blue Star Software
* @autor falcão
* @versão 1.1
*/
classe pública getImg estende HttpServlet {
private Font mFont=new Font("宋体", Font.PLAIN,12);//Define a fonte
//processa postagem
public void doPost (solicitação HttpServletRequest, resposta HttpServletResponse)
lança ServletException,IOException {
doGet(solicitação,resposta);
}
public void doGet (solicitação HttpServletRequest, resposta HttpServletResponse)
lança ServletException,IOException {
//Obtém um número aleatório de 1000 a 9999
String s="";
int intCont=0;
intCount=(new Random()).nextInt(9999);//
if(intCount<1000)intCount+=1000;
s=intCount+"";
//Paga valor para a sessão.
HttpSession sessão=request.getSession (verdadeiro);
session.setAttribute("getImg",s);
resposta.setContentType("imagem/gif");
ServletOutputStream out=response.getOutputStream();
Imagem BufferedImage=new BufferedImage(35,14,BufferedImage.TYPE_INT_RGB);
Graphicsgra=image.getGraphics();
//Define a cor de fundo
gra.setColor(Color.amarelo);
gra.fillRect(1,1,33,12);
//Define a cor da fonte
gra.setColor(Color.preto);
gra.setFont(mFont);
//Números de saída
caracter c;
for(int i=0;i<4;i++) {
c=s.charAt(i);
gra.drawString(c+"",i*7+4,11); //7 é a largura, 11 são as posições de altura superior e inferior
}
Codificador JPEGImageEncoder=JPEGCodec.createJPEGEncoder(out);
codificador.encode(imagem);
out.close();
}
}
http://blog.csdn.net/lixiaolong_blog/archive/2007/01/25/1493417.aspx