`
yanfaguanli
  • 浏览: 678986 次
文章分类
社区版块
存档分类
最新评论

验证码在tomcat中正常显示,在resin中显示不出来解决方法

 
阅读更多

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

// 输出图象到页面

out.clear();//加上这句话

ImageIO.write(image, "JPEG", response.getOutputStream());
out.clear();
out = pageContext.pushBody();
%>

分享到:
评论

相关推荐

    linux环境下验证码不显示问题

    根据提供的部分内容,可以通过修改Tomcat的启动脚本来解决验证码无法显示的问题。具体步骤如下: 1. **编辑`catalina.sh`文件**: - 打开`$TOMCAT_HOME/bin/catalina.sh`文件。 - 在文件中添加`-Djava.awt....

    tomcat中文显示解决

    本文将详细介绍如何在Tomcat中正确配置以实现中文字符的正常显示。 #### 一、理解MIME Mapping与字符集 在深入探讨解决方法之前,首先需要了解几个关键概念: 1. **MIME类型**:Multipurpose Internet Mail ...

    Tomcat 不显示详细日志的问题

    Tomcat 不显示详细日志的问题解决方案 Tomcat 是一个流行的 Java Web 服务器,用于部署和运行基于 Java 的 Web 应用程序。但是,在某些情况下,Tomcat 的详细错误日志可能会消失,只报一个万恶的 Context [] ...

    解决tomcat中文乱码问题

    解决tomcat中文乱码问题,有详细的解释说明,希望对需要的人有所帮助

    Tomcat配置解决跨域问题

    总的来说,理解和配置Tomcat的跨域策略是现代Web开发中的一个重要技能,它能确保你的服务能够顺利地与不同源的客户端进行通信,无论是移动应用还是单页应用。通过以上步骤,你可以有效地解决Tomcat的跨域问题,提升...

    tomcat&resin

    在IT领域,特别是Java应用服务器环境下的开发与部署过程中,JNDI(Java Naming and Directory Interface)是一个不可或缺的概念。本文将深入探讨如何在Tomcat和Resin这两种流行的Java应用服务器中配置JNDI,以便更好...

    Tomcat 中文问题及解决方法总结

    在Tomcat 4.1 下使用POST方式提交表单时,表单中的中文字符显示为乱码,而在Tomcat 4.0 下通常不会出现该问题。 **可能原因**: POST提交的数据默认为ISO8859-1编码,需要将其转换成中文编码。 **解决方法**(适用...

    JFreeChart在JSP(tomcat)中的一些问题(图片不显示)好资源0分送

    在使用JFreeChart与JSP结合时,可能会遇到一个常见问题:使用JFreeChart生成的图片虽然已经存在于Tomcat的临时目录(\Tomcat 6.0\temp),但在浏览器中却无法正常显示,只出现一个红色的叉号。这个问题困扰了很多...

    Tomcat无法正常启动的解决办法.zip

    Tomcat无法正常启动的解决办法 教你如何解决Tomcat无法正常启动 欢迎下载

    ZCMS站点在Tomcat下使用单独域名的解决方法

    ZCMS站点在Tomcat下使用单独域名的解决方法ZCMS站点在Tomcat下使用单独域名的解决方法ZCMS站点在Tomcat下使用单独域名的解决方法ZCMS站点在Tomcat下使用单独域名的解决方法ZCMS站点在Tomcat下使用单独域名的解决方法...

    Tomcat中Get和Post出现乱码的解决办法

    在本文中,我们将详细介绍 Tomcat 中 Get 和 Post 方法出现乱码的解决办法。 一、乱码问题的出现 在 JSP 程序中,当我们使用 GET 或 POST 方法提交中文信息时,可能会出现乱码问题。这是因为 Tomcat 对于 GET 和 ...

    windows下,把tomcat作成服务开机自启动不显示cmd窗口.zip

    在Windows操作系统中,将Tomcat配置为服务并设置为开机自启动,且不显示命令行窗口,是一项常见的系统管理任务。这有助于确保Tomcat在计算机启动时自动运行,并且不会打扰用户界面。以下是对这个过程的详细解释: ...

    命令行启动关闭tomcat而不显示cmd界面

    标题中的“命令行启动关闭tomcat而不显示cmd界面”指的是在Windows操作系统中,通过命令行启动和关闭Apache Tomcat服务器,但不希望看到通常伴随命令行执行而出现的CMD窗口。这种方式可以使得桌面更加整洁,同时也...

    解决tomcat配置ssl错误的解决办法

    在本文中,我们讨论了 Tomcat 配置 SSL 错误的问题,并提供了解决这些错误的方法。这些方法包括正确地配置 SSL 证书文件、连接器和 APR 模块,解决常见的错误等。通过遵循这些方法,可以成功地解决 Tomcat 配置 SSL ...

    解决Tomcat在控制台console中显示乱码的问题

    然而,在实际操作中,我们可能会遇到各种问题,其中一种常见的情况就是Tomcat在控制台(Console)中显示乱码。这不仅影响了日志的可读性,也可能对问题排查造成困扰。本篇将详细讲解如何解决Tomcat控制台中文乱码的...

    tomcat5中文问题完美解决

    【Tomcat5中文问题解决详解】 在使用Tomcat5运行含有中文内容的应用程序时,可能会遇到中文乱码的问题。...通过上述两种方法,可以有效地解决POST和GET请求的中文乱码问题,实现中文数据的正常显示。

    tomcat常见问题及解决方法

    然而,在使用 Tomcat 的过程中,开发者经常会遇到一些常见的问题,本文将列举一些常见的问题和解决方法,旨在帮助开发者更好地使用 Tomcat。 1. 如何加载一个属性文件? 加载属性文件是 Tomcat 中的一项常见操作,...

    在Tomcat中部署Web项目的操作方法(必看篇)

    在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Manager Web应用程序 一:部署解包的webapp目录 将Web项目部署到Tomcat中的方法之一,是部署没有封装到WAR文件中的Web项目...

    tomcat端口占用的解决方法

    ### tomcat端口占用的解决方法 在日常的软件开发工作中,尤其是对于使用Apache Tomcat作为应用服务器的项目来说,经常会遇到Tomcat启动时提示端口被占用的问题。这种情况不仅会打断开发流程,还可能影响到项目的...

    解决tomcat下中文乱码问题

    在本文中,我们将讨论如何解决 Tomcat 下中文乱码问题。该问题是由于 Tomcat 默认的字符编码设置不正确引起的。我们将通过设置 Connector 元素的 URIEncoding 属性和在过滤器中设置字符编码来解决该问题。 一、...

Global site tag (gtag.js) - Google Analytics