概述:验证码对于各大论坛的信息验证功能来说已经成了不可或缺的一部分,至于其作用,本人就不在这里赘述。近日,本人在自己也实现了一个JavaServlet版的验证码,现把其源代码贴出来,请各位不吝赐教。
实现机理:生成一串随机数,其中可以是固定值,可以是可变值,本人的随机数长度固定为4(可根据您自己的程序进行改变),等到随机字符串产生后,将此字符串打乱成字符,然后一个一个的把字符画到输出流里,其中每个字符的颜色即RGB值也是随机产生,在画面的同时,再产生若干条干扰线,以防止验证码被破解。然后把图象流输出到客户端。其中客户端的HTML代码利用img标签实现。
Servlet源代码:
java 代码
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
-
- response.setContentType("image/jpeg");
-
- BufferedImage image = new BufferedImage(80,20,BufferedImage.SCALE_SMOOTH);
-
- Graphics2D graphics = image.createGraphics();
-
- graphics.setColor(Color.WHITE);
- graphics.fillRect(0, 0,100,20);
-
- graphics.setFont(new Font("Roman",Font.CENTER_BASELINE,22));
-
- String randomStr=randomString(4);
- for(int i=0;i
-
- graphics.setColor(new Color(new Random().nextInt(250),new Random().nextInt(250),
- new Random().nextInt(250)));
-
- graphics.drawString(randomStr.substring(i,i+1),15*i,20);
-
- graphics.drawLine(0,0,1, 1);
- }
-
- response.setHeader("Prama", "no-cache");
- response.setHeader("Coche-Control", "no-cache");
- response.setDateHeader("Expires", 0);
-
- ImageIO.write(image,"jpeg",response.getOutputStream());
- }
randomString方法源代码:
java 代码
//number 产生有number个字符组成的字符串
- public String randomString(int number){
- //字符串的内容组成
- String str="1234567890qwertyuioplkjhgfdsazxcvbnm";
- char[] chars=str.toCharArray();
- int length=chars.length;
- StringBuilder sb=new StringBuilder();
- Random random=new Random();
-
- for(int i=0;i
- //把单个字符转换成字符串然后追加到已经产生的字符串中
- sb.append(new String(new Character(chars[random.nextInt(length)]).toString()));
- }
- return sb.toString();
- }
Jsp文件源代码:
jsp 代码
-
-
- <img src="<!---->/random" id="PHOTO"
- onclick="document.getElementById('PHOTO').src='<!---->/random';return false;"/>
- <a href="<!---->/switch.do?prefix=/demo&page=/show.jsp">qqqa>
- <br>
- <input type="button" onclick="javascript:document.getElementById('photo').src='<!---->/random';return false;"
- value="看不清楚?">
分享到:
相关推荐
java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-...
赠送jar包:jakarta.servlet-api-4.0.4.jar; 赠送原API文档:jakarta.servlet-api-4.0.4-javadoc.jar; 赠送源代码:jakarta.servlet-api-4.0.4-sources.jar; 赠送Maven依赖信息文件:jakarta.servlet-api-4.0.4....
赠送jar包:javax.servlet-api-4.0.0.jar; 赠送原API文档:javax.servlet-api-4.0.0-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.0-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.0.pom; ...
thrift 生成的java包servlet-api-2.5.jar
javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...
赠送jar包:javax.servlet-api-4.0.1.jar; 赠送原API文档:javax.servlet-api-4.0.1-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.1-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.1.pom; ...
Tomcat中lib下的servlet-api包。
赠送jar包:jakarta.servlet-api-4.0.4.jar; 赠送原API文档:jakarta.servlet-api-4.0.4-javadoc.jar; 赠送源代码:jakarta.servlet-api-4.0.4-sources.jar; 赠送Maven依赖信息文件:jakarta.servlet-api-4.0.4....
javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...
javax.servlet-api-3.1.0.jar,处理找不到servlet JAR的问题
javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...
Java servlet 自动生成 图片验证码 生成 Java源码
赠送jar包:javax.servlet-api-4.0.0.jar; 赠送原API文档:javax.servlet-api-4.0.0-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.0-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.0.pom; ...
文件中包含javax.servlet-api-3.0.1.jar,javax.servlet-api-3.1.0.jar,javax.servlet-api-4.0.0.jar,用来处理java项目运行中找不到servlet JAR的问题,需要的朋友可以下载
Servlet API被分成两个软件包:javax.servlet-不对应HTTP的通用的软件包和javax.servlet.http-对应HTTP的软件包。这两个软件包的同时存在使得Java Servlet API能够适应将来的其他请求-响应的协议。API包含了两个...
servlet-api-3.0.jar
Java-Servlet-API
赠送jar包:javax.servlet-api-4.0.1.jar; 赠送原API文档:javax.servlet-api-4.0.1-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.1-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.1.pom; ...