weblogic环境下的验证码实现代码

3891681 2004-12-09 08:20:25
image.jsp代码:

<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取图形上下文
Graphics g = image.getGraphics();

//生成随机类
Random random = new Random();

// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));

//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);


// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}

// 取随机产生的认证码(4位数字)
//String rand = request.getParameter("rand");
//rand = rand.substring(0,rand.indexOf("."));
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}

// 将认证码存入SESSION
session.setAttribute("rand",sRand);


// 图象生效
g.dispose();

// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());

%>

JSP调用页面:

<%@ page language="java" contentType="text/html; charset=gb2312" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<form name="frmLogin" method=post action="login.jsp" onsubmit="if(submitClick()==false) return false;">
<table width="800" border="1" align="center">
<tr>
<td width="80"> </td>
<td width="438"> </td>
</tr>
<tr>
<td>登陆名:</td>
<td><INPUT class=unnamed1
id=CSDNUserLogin_tb_UserName style="WIDTH: 120px" maxLength=50
name=UserName></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>密码:</td>
<td><INPUT class=unnamed1
id=UserName style="WIDTH: 120px" maxLength=50
name=Password></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>验证码:</td>
<td><input name="rand" maxlength=4 size="10"><img border=0 src="image.jsp">
</td>
</tr>
<tr>
<td> </td>
<td><INPUT name=Submit type=submit value=进入 class="BUTTONINPUT">
  <INPUT name=Submit2 type=reset value=重写 class="BUTTONINPUT"></td>
</tr>
</table>
</form>
</body>
</html>


在tomcat5.0下面已经实现了彩色验证码,但是移到weblogic下,图片就显示不出来,该怎么设置才能出来???大家帮忙啊!!
...全文
328 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
3891681 2004-12-20
  • 打赏
  • 举报
回复
谢谢楼上
3891681 2004-12-20
  • 打赏
  • 举报
回复
?
demon007 2004-12-20
  • 打赏
  • 举报
回复
up
3891681 2004-12-17
  • 打赏
  • 举报
回复
网上搜索一下找到一下解决方法:
1.在启动Weblogic中要加上这个参数-Djava.awt.headless=true,这样才能显示出图片。
2.在catalina.sh中增加CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true"

我在C:\bea\user_projects\domains\mydomain中的startWebLogic.sh文件中的倒数第二行里加入了-Djava.awt.headless=TRUE

${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Dweblogic.Name=${SERVER_NAME} -Djava.awt.headless=TRUE -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" weblogic.Server

可惜还是显示不出来,是不是加错了呀??
adventure007 2004-12-15
  • 打赏
  • 举报
回复
ding
3891681 2004-12-14
  • 打赏
  • 举报
回复
谢谢楼上几位!
fruitfull 2004-12-14
  • 打赏
  • 举报
回复
帮你顶。也学习学习!!!!
keithhe 2004-12-14
  • 打赏
  • 举报
回复
我也遇到过的。
chenyumao 2004-12-14
  • 打赏
  • 举报
回复
学习
3891681 2004-12-14
  • 打赏
  • 举报
回复
3891681 2004-12-13
  • 打赏
  • 举报
回复
3891681 2004-12-10
  • 打赏
  • 举报
回复
如何处理啊?
难道大家没碰到过这样的问题?
3891681 2004-12-10
  • 打赏
  • 举报
回复
Eclipse 2.1.3+MyEclipse2.6.4+Tomcat 5.0.27 可以正常显示图片
Eclipse 2.1.3+MyEclipse2.6.4+WebLogic 8.1 不能显示图片
xzg771218 2004-12-10
  • 打赏
  • 举报
回复
你没有讲清你的配置啊,情况多变啊
3891681 2004-12-09
  • 打赏
  • 举报
回复
饭前小定一下哈
umbrella1984 2004-12-09
  • 打赏
  • 举报
回复
对啊
gks_cn 2004-12-09
  • 打赏
  • 举报
回复
可能是因为没有awt包

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧