- 浏览: 585587 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
liuzeyuss:
好文章,顶顶
java 线程死锁的检测 -
ysite:
hugh.wang 写道请问你这个能还原吗?短网址用的是HAS ...
Java版短网址(ShortUrl)的算法 -
lv双:
没有注释,看的费劲
java 线程死锁的检测 -
dgj:
好帖子竟然没人顶...
java 线程死锁的检测 -
天空趋虚:
不好,你这只是记录式的博客,不是分享式的博客,对浏览着不友好. ...
一些技术牛人的博客
代码:
前端代码为:
运行结果还行:
package com.babyDuncan.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class indentity extends HttpServlet { public static final char[] CHARS = { '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'f', 'k', 'r', 'y' }; public static Random random = new Random(); public static String getRandomStriong() { StringBuffer sb = new StringBuffer(); for (int i = 0; i < 6; i++) { sb.append(CHARS[random.nextInt(CHARS.length)]); } return sb.toString(); } public static Color getRandomColor(){ return new Color(random.nextInt(255),random.nextInt(255),random.nextInt(255)); } public static Color getOtherColor(Color c){ return new Color(255-c.getRed(),255-c.getGreen(),255-c.getBlue()); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("image/jpeg"); String randomString = getRandomStriong(); this.log(randomString); request.getSession(true).setAttribute("randomString", randomString); int width = 100; int heigth = 30; Color color = getRandomColor(); Color otherColor = getOtherColor(color); BufferedImage bi = new BufferedImage(width,heigth,BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); g.setFont(new Font(Font.SANS_SERIF,Font.BOLD,16)); g.setColor(color); g.fillRect(0,0,width,heigth); g.setColor(otherColor); g.drawString(randomString, 18, 20); for(int i=0;i<random.nextInt(100);i++){ g.drawRect(random.nextInt(width), random.nextInt(heigth), 1, 1); } ServletOutputStream out = response.getOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(bi); out.flush(); } }
前端代码为:
<body> <script type="text/javascript"> function reloadImage(){ document.getElementById("btn").disabled = true; document.getElementById("inditity").src = "servlet/indentity?ts="+ new Date().getTime(); } </script> <image src="servlet/indentity" id="inditity" onload="btn.disabled=false;"> </image> <input type="button" value="换张图片" id="btn" onclick="reloadImage()"/> </body>
运行结果还行:
发表评论
-
一些技术牛人的博客
2011-08-30 13:23 2447High Scalability - Building big ... -
Spring MVC 的请求参数获取的几种方法
2011-07-14 16:11 43941通过@PathVariabl注解获取路径中传递参数 JAVA ... -
Java版短网址(ShortUrl)的算法
2011-07-06 11:59 22560public class Encript { ... -
Spring mvc与JKaptcha组合生成验证码
2011-07-05 16:40 2968kaptcha 是一个非常实用的验证码生成工具。有了它,你可以 ... -
第一次使用resin的安装和配置问题
2011-03-10 17:18 3001那边要求熟悉tomcat和resin,tomcat倒是很熟悉, ... -
jsp页面跳转的方法
2011-03-10 10:02 11761. RequestDispatcher.forward( ... -
实验看看Servlet之间的跳转(dispatch-forward&sendRedirect)
2011-03-07 14:39 2041首先是dispatch-forward 代码如下: R ... -
读取web.xml文件中数据的三种方法
2011-03-04 14:53 4615一,采用web.xml中的init-param标签 web。x ... -
通过request的请求获取客户端信息
2011-03-04 11:24 2928代码,可以获得很多信息,我只写了几个,其实可以获得更多的! ... -
firstServlet 写一个最基本的servlet程序
2011-03-04 10:53 3150Servlet代码为: package c ... -
Spring的七大模块简介
2011-02-16 11:38 14547Spring有七大功能模块,分别是Spring Core,AO ... -
Servlet获取客户端ip地址和mac地址
2011-01-24 11:35 36026package com.babyDuncan.java; ... -
Servlet相比CGI的好处
2011-01-17 09:20 15721,Servlet是基于Java语言的,拥有java语言的所有 ... -
include指令简介
2011-01-13 11:56 1119incude指令的形式: < ... -
关于foward和redirect的详细描述(比一般的要详细)
2011-01-10 18:03 1693他们是一个Servet跳向另一个Servlet的方法,但是有所 ... -
实验证明Servlet生命周期
2011-01-10 17:19 1374根据上过一篇日志的内容,测试Servlet生命周期内各个函数的 ... -
Servlet生命周期的简单描述
2011-01-10 17:09 2082完整的Servlet的生命周期的描述: 1,服务器加载Serv ... -
Servlet获取上下文参数以及资源注入
2011-01-10 12:07 1865上下文参数可以理解为全局参数,可以支持多个Servlet来调用 ... -
servlet中web.xml的配置
2011-01-10 10:29 1465servlet的web.xml配置: <serv ... -
对Struts的理解
2011-01-07 10:49 1449对 Struts Struts Struts Struts 的 ...
相关推荐
在Servlet中生成图片验证码,首先需要创建一个Servlet类,该类将负责生成随机字符串并将其转化为图像。以下是一些关键步骤: 1. **生成随机字符串**:使用`java.util.Random`和`char[]`数组来创建一个指定长度的...
### JSP中利用Servlet生成验证码图片 在Web应用开发中,验证码被广泛应用于用户登录、表单提交等场景,以防止自动化的恶意攻击。本文将详细介绍如何在Java Server Pages (JSP) 和 Servlet 技术的基础上,实现一个...
本笔记将详细探讨如何使用Servlet来生成验证码。 一、验证码的原理与作用 验证码的主要目的是区分人类用户和自动化程序,通过要求用户输入图片上的文字或者完成简单的数学问题,来验证其为真实的人类。这有助于防止...
生成图片验证码的过程分为以下几个步骤: 1. **随机字符生成**:验证码通常包含4到6个随机字符,这些字符可以是数字、大小写字母或其他符号。这些字符是通过Java的随机数生成器和字符集来创建的,确保每次请求时都...
在本主题“利用jsp生成图片验证码”中,我们将探讨如何在JavaServer Pages (JSP)上下文中创建一个简单的图片验证码,而无需使用Servlet。首先,我们要明白JSP是Java Web开发中的视图层技术,它允许我们在HTML页面中...
### 关于servlet生成验证码图片的知识点 #### 一、概述 在Web应用开发中,验证码(CAPTCHA)被广泛用于防止自动化攻击或垃圾信息发送等安全问题。使用Java Servlet来生成验证码图片是一种常见的实现方式。本文将...
3. 将验证码图片输出到客户端,使用ServletResponse对象的getOutputStream()方法。 4. 将验证码存入Session中,以便后续验证。 知识点3: 验证码图片不显示的问题 在本例中,验证码图片生成成功,但是却不显示在...
本教程将详细介绍如何使用Servlet技术来实现一个基本的图片验证码功能。Servlet是Java服务器端编程的核心技术之一,它可以接收和响应HTTP请求,非常适合构建动态Web应用程序。 首先,我们需要理解验证码的基本原理...
总结来说,使用JSP生成图片验证码涉及到以下几个关键点:生成随机字符串、存储验证码、绘制并输出图片以及设置HTTP响应类型。这种方法简单易用,但要注意,对于高级的自动化攻击,可能需要更复杂的验证码解决方案,...
以下是一个简单的Java Servlet实现生成图片验证码的过程。 首先,我们看到这个类`Image`继承自`HttpServlet`,这意味着它用于处理HTTP请求。`processRequest`方法是处理HTTP `GET`和`POST`请求的核心,它将生成并...
4. **保存图像到响应**:使用Servlet的`response.getOutputStream()`方法,将生成的验证码图像以JPEG或PNG格式写入HTTP响应,设置响应的MIME类型为对应的图像类型。 三、点击更换验证码 1. **监听器**:在HTML页面...
- **展示验证码**:在JSP页面上,使用`<img>`标签加载Servlet生成的GIF验证码。 - **用户输入验证**:用户输入验证码后,提交表单时,服务器会对比Session中的验证码内容和用户输入,如果匹配则验证成功,否则提示...
在本案例中,`RandomCodeServlet` 类继承了 `HttpServlet` 类,并重写了 `service` 方法,该方法负责生成验证码图片并将其发送给客户端。具体实现步骤如下: 1. **创建图片**:首先创建一个 `BufferedImage` 对象...
在Web开发中,使用JSP(JavaServer Pages)来生成验证码图片是一种常见的方法。下面我们将详细讨论如何在JSP中实现验证码的生成。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机的字母和数字,有时...
### Servlet生成验证码知识点详解 #### 一、Servlet与验证码简介 - **Servlet**: Servlet是一种Java技术,用于扩展服务器的功能。Servlet被容器(如Tomcat)管理,并且可以生成动态的Web页面。它允许开发人员创建...
本示例中的代码展示了如何通过JSP和Servlet生成一个简单的四位数字验证码。以下是具体的知识点解析: 1. **Servlet基础**: Servlet是Java Web应用程序中的服务器端组件,用于处理HTTP请求并生成响应。`...
生成图片中的文字: 1、先编写一个字符串,包含:数字,大小字母 private String s = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 2、在产生背景之后,编写如下代码,产生四个字符...
总结来说,Spring框架生成图片验证码的实现涉及以下几个步骤: 1. 创建验证码生成器类,用于生成随机字符串并将其转化为图像。 2. 在Spring MVC控制器中创建一个处理请求验证码的端点,将图像数据直接输出到HTTP响应...
- `src`属性指向Servlet的URL,Servlet会动态生成验证码图片。 - 可以设置`alt`属性提供文本描述,以提高可访问性。 2. **添加表单元素** - 创建一个输入框让用户输入看到的验证码。 - 提交表单时,携带用户...