有人做过页面上显示验证码吗?请进!

llhz 2004-07-14 11:15:45
我做了个验证码生成程序pic.jsp,在显示页面上让其显示,语法是<img src="pic.jsp">,但页面上显示的是个X,pic.jsp程序代码没问题,显然是显示页面没有找到pic.jsp这个文件,可我已将其放到了显示页面的同级目录下,不知为何没有找到。一般img语法都是调用图片文件,如果调用jsp文件动态生成的图片是不是需要做些其他的配置(我的服务器是Resin),请求帮助。
...全文
307 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shareanway 2004-07-15
  • 打赏
  • 举报
回复
我这里业可以用的。我的是TOMCAT环境
llhz 2004-07-15
  • 打赏
  • 举报
回复
是不是我的IE的配置或者Resin的配置有什么问题?
gjd111686 2004-07-15
  • 打赏
  • 举报
回复
利用JSP实现的验证码
http://blog.csdn.net/gjd111686/archive/2004/07/08/37113.aspx
llhz 2004-07-15
  • 打赏
  • 举报
回复
我用的是Resin2.1.8,调用语法<img src="pic.jsp">,为什么显示不出来呢? :(
zhujj81 2004-07-15
  • 打赏
  • 举报
回复
大哥,不会吧,真的没问题啊。我用的是TOMCAT5.0。

测试通过!
llhz 2004-07-15
  • 打赏
  • 举报
回复
pic.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);
}


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();

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

%>
flyforlove 2004-07-15
  • 打赏
  • 举报
回复
把你的pic.jsp代码贴上来看看。
llhz 2004-07-15
  • 打赏
  • 举报
回复
我应该如何验证pic.jsp输出的是图片数据啊?pic.jsp代码我从网上下载的代码,都是这样实现的。
kinglht 2004-07-15
  • 打赏
  • 举报
回复
升级你的jdk到1.4以上
flyforlove 2004-07-14
  • 打赏
  • 举报
回复
如果你的这个pic.jsp输出的是图片数据的话,应该是没有问题的。
ningIII 2004-07-14
  • 打赏
  • 举报
回复
<jsp:include page="pic.jsp" flush="true"/>
llhz 2004-07-14
  • 打赏
  • 举报
回复
up

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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