日志里也看不到报错信息。
之前用了个多线程出现问题也是这样,log错误信息看不到,后来才发现它不支持多线程。。。
我引入的这些类我看过了,都在它的白名单里面。
谁弄过这个东西,能不能给个验证码的小示例,或给我个链接。
我的新浪sae500个豆早已完蛋。。。sae对java的支持好很多吧,起码人家有虚拟机给你用,java所有特性都支持。
贴上我的验证码产生程序(其实主要部分是网上copy的):
package com.action.util;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
import com.action.Action;
public class ImgChecker extends Action{
private static char charTable[] = { 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D',
'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k',
'K', 'l', 'L', 'n', 'N', 'm', 'M', 'p', 'P', 'q', 'Q', 'r', 'R',
's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y',
'Y', 'z', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
public void getImg(){
try {
String imgCode = drawPicture(63, 35,response.getOutputStream());
log.info("验证码:"+imgCode);
session.setAttribute("ImgCheck", imgCode);
response.setContentType("image/jpeg");
response.getOutputStream().print(imgCode);
} catch (IOException e) {
log.warning(e.getMessage());
log.warning(e.getLocalizedMessage());
log.warning(e.toString());
e.printStackTrace();
}
}
public void checkImg(){
String imgCode = (String) session.getAttribute("ImgCheck");
if (imgCode != null && imgCode.equalsIgnoreCase(request.getParameter("imgCode")))
ajaxReturn("");
else
ajaxReturn("验证字符错误");
}
public static String drawPicture(int width, int height, OutputStream os) throws IOException {
if (width <= 0)
width = 100;
if (height <= 0)
height = 60;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setColor(Color.LIGHT_GRAY);
g.fillRect(0, 0, width, height);
g.setColor(new Color(0x5265fd));
g.drawRect(0, 0, width, height);
String str = "";
for (int x = 0; x < 4; x++) {
str += charTable[(int) (Math.random() * charTable.length)];
}
g.drawString(str.substring(0, 1), 0, 15);
g.drawString(str.substring(1, 2), 15, 17);
g.drawString(str.substring(2, 3), 35, 19);
g.drawString(str.substring(3, 4), 50, 16);
Random rand = new Random();
for (int i = 0; i < 10; i++) {
int x = rand.nextInt(width);
int y = rand.nextInt(height);
g.drawOval(x, y, 1, 1);
}
g.dispose();
ImageIO.write(image, "JPG", os);
return str;
}
}
分不多了。。。
8 个解决方案
#1
#2
没人回吗?...
#3
我再顶。。。
#4
SAE 你可以申请开发者身份验证 那样豆豆就够用了
#5
回复于: 2013-05-07 16:47:25
SAE 你可以申请开发者身份验证 那样豆豆就够用了
SAE 你可以申请开发者身份验证 那样豆豆就够用了
#6
问题是没人邀请~
#7
官方解释~ 开源jdk6有这个bug吗
#8
百度的空间不支持字体。貌似是,我也遇到了同样的问题。你可以看看他自己的api。貌似可以实现。
#1
#2
没人回吗?...
#3
我再顶。。。
#4
SAE 你可以申请开发者身份验证 那样豆豆就够用了
#5
回复于: 2013-05-07 16:47:25
SAE 你可以申请开发者身份验证 那样豆豆就够用了
SAE 你可以申请开发者身份验证 那样豆豆就够用了
#6
问题是没人邀请~
#7
官方解释~ 开源jdk6有这个bug吗
#8
百度的空间不支持字体。貌似是,我也遇到了同样的问题。你可以看看他自己的api。貌似可以实现。