- 浏览: 78783 次
- 性别:
- 来自: 湖南
最新评论
-
lysvanilla:
补充: 对于action返回input的补充,查阅源代 ...
No result defined for action and result input
MakePicture.java产生图片的类:
package com.strongit.zwjc.util; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.awt.*; import java.awt.image.*; import java.util.*; import javax.imageio.*; public class MakePicture extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("image/jpeg"); response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); HttpSession session=request.getSession(); // 在内存中创建图象 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 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(); ServletOutputStream responseOutputStream =response.getOutputStream(); // 输出图象到页面 ImageIO.write(image, "JPEG", responseOutputStream); //以下关闭输入流! responseOutputStream.flush(); responseOutputStream.close(); } 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); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } public String getServletInfo() { return "Short description"; } }
页面代码:
<%@ page language="java" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <link href="css/datagather_login.css" rel="stylesheet" type="text/css"> <title>个性化门户登陆页面</title> <script type="text/javascript"> var request = false; function refresh(){ document.getElementById("makePicture").src="makePicture?now="+ new Date(); } </script> </head> <body> <form action="" method="post" id="form1" name="form1"> <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"> <table width="607" align="center" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="bottom"> <img src="images/portlettools/login/titleportal.jpg" width="682" height="103" /> </td> </tr> <tr> <td valign="top" align="right" background="images/portlettools/login/bg.jpg" width="607" height="288"> <table width="38%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="30"> </td> </tr> <tr> <td height="100"> <table width="100%" height="100" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="52" class="tt"> 用户名: </td> <td colspan="2" class="lo_input"> <input name="username" height="40" type="text" style="width:132" onfocus="true" class="lo_input" size="18" /> </td> </tr> <tr> <td width="52" class="tt"> 密 码: </td> <td colspan="2" class="lo_input"> <input id="password" name="password" type="password" style="width:132" onkeydown="if(event.keyCode==13) gotoSubmit();" size="18" /> </td> </tr> <tr> <td width="52" class="tt"> 验证码: </td> <td width="70"> <input type="text" name="checkCode" size="4" maxlength="4" onkeydown="if(event.keyCode==13) gotoSubmit();"> </td> <td> <img src="makePicture" id="makePicture"> </td> </tr> <tr> <td width="52"></td> <td> <td> <font color="blue"><a href="#" onclick="refresh()">看不清</a> </font> </td> </tr> </table> </td> </tr> <tr> <td> <table width="210" align="left" border="0" cellspacing="0" cellpadding="0" height="80"> <tr> <td align="left"> <img src="images/portlettools/login/login.jpg" width="76" height="35" onclick="gotoSubmit();" style="cursor:hand;" /> </td> <td> <img src="images/portlettools/login/cancle.jpg" width="76" height="35" style="cursor:hand;" onclick="gotoReset()" /> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </form> </body> </html>
WEB.XML中设置:
<servlet> <servlet-name>makePicture</servlet-name> <servlet-class> com.strongit.zwjc.util.MakePicture </servlet-class> </servlet> <servlet-mapping> <servlet-name>makePicture</servlet-name> <url-pattern>/makePicture</url-pattern> </servlet-mapping>
发表评论
-
Java获取各种常用时间方法
2011-08-18 22:28 657Java代码 package com.hef ... -
Calendar常用方法封装
2011-08-18 22:26 768Java代码 <PRE class=j ... -
java常用日期操作对象
2011-08-18 22:25 1166Java代码 import java.uti ... -
常用java工具类(一)
2011-08-18 22:19 8651.读取配置文件 EnvironmentConfig.jav ... -
MyEclipse搭建java web基本常识和环境配置
2011-08-18 22:17 1032MyEclipse配置工程使用的jdk 设置 ... -
防止表单重复提交
2010-12-28 02:08 0一、防止表单重复提交一般有两种方法: 1、使用重定向 ... -
Web应用的中文本地化
2010-12-27 19:16 8821、解决HTML页面中的中文问题 为了使HTML页面很 ... -
Struts2的业务控制器Action实现中的一些知识点
2010-12-26 02:14 14441、execute()方法是Action实现类的默认方法,只 ... -
Field-Driven和Model-Driven
2010-12-26 01:26 1372Struts2根据Action属性的不同将它分为两类:Fiel ... -
Struts2的Action接口
2010-12-25 15:13 1570在Struts2应用的开发过程中,针对不同用户请求编写相应的 ... -
Struts2 常用类
2010-12-25 14:53 15011、Action接口:通过实现Action接口可以 ... -
struts 2.1输入校验
2010-12-24 23:15 917Struts2 框架中的服务器端表单验证由两种方式实 ... -
struts2-2.2.1所需要的jar文件
2010-12-23 23:31 15861、struts2-2.2.1需要的jar文 ... -
No result defined for action and result input
2010-12-23 23:02 2381今天在学习struts2.2类型转换时,出现了No r ...
相关推荐
Java彩色验证码Java彩色验证码Java彩色验证码Java彩色验证码Java彩色验证码JavaJava彩色验证码Java彩色验证码Java彩色验证码Java彩色验证码Java彩色验证码Java彩色验证码Java彩色验证码
JSP彩色验证码的实现JSP彩色验证码的实现JSP彩色验证码的实现JSP彩色验证码的实现
java生成验证码源码包括彩色验证码 包括jsp生成验证码和彩色验证码
java 生成彩色验证码的程序,改程序可以极大的帮助你,是你可以自动生成彩色的验证码
优化过的 c# 彩色验证码
彩色验证码的简单实现
JSP实现彩色验证码实现具体源代码
JSP实现彩色验证码(源码示例)
整个html打开可以看到效果,不包含验证码背景图片,自己找一个命名为code.jpg就有背景了,js验证码比jsp...这个程序既可以直接验证,也可以点击验证码刷新一个新的验证码(当原来的验证码看不清楚的时候),再验证
JSP彩色验证码JSP彩色验证码JSP彩色验证码
中文彩色验证码实现(变形\噪点\点击更换) <br>一个中文彩色验证码程序,实现了文字的变形,随机噪点及点击更换验证码,代码非常简单.
一个简单的生成彩色验证码的例子,部分代码if (r1 == 13) { r2 = random.nextInt(7); //生成0到7之间的随机数 } else { r2 = random.nextInt(16); //生成0到16之间的随机数 } String str_r2 = rBase[r2]; // ...
Jsp中的验证码 java实现 Jsp中的验证码 java实现
彩色验证码: 1.原理:随机生成一个包含字符串的图片,用户读取图片中的字符信息,将其输入到指定文本框中,随着登录或者注册功能的提交将其传递给服务器进行验证处理。 2.作用:防止通过程序进行批量注册或者暴力...
JSP中彩色验证码 注册验证码 中文验证码 图片验证码的生成
验证码 制作彩色验证码
和平时登录QQ或其他程序时一样,产生验证码,输入对应验证码才可通过验证。
asp彩色验证码,无组件的asp彩色验证码 使用方法 c = Request.form("c") '如果可以输入小写的数字,请把下面三行注释掉 for ii = 0 to 9 c = Replace(c,Cstr(ii),"") next c = Replace(c,"零","0") c = ...
JSP自动生成彩色验证码-由2个JSP页面与一个action验证验证码的类构成,code.jsp自动生成4位彩色随机码。index.jsp是登陆页面包含彩色验证码
jsp彩色验证码.rar jsp彩色验证码.rar