JAVA教程之JSP中图片考证的完成
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。js图片考证在有存眷册和宣布留言常常用到.我在此用jsp写了个.供人人参考.个中com.sun.image不是java的尺度包.必要别的下载.相干地点为:http://java.sun.com/products/java-media/jai/
1.random.jsp(发生四位的随机字符,由0-9,a-z,A-Z组成.并把终极字符串放到session中保留以让后续页面考证真伪)
代码以下:
<%@pageautoFlush="false"import="java.util.*,java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*"%>
<%@pageimport=""contentType="text/html;charset=gb2312"%>
<%
Stringchose="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
chardisplay[]={0,,0,,0,,0},ran[]={0,0,0,0},temp;
Randomrand=newRandom();
for(inti=0;i<4;i++)
{
temp=chose.charAt(rand.nextInt(chose.length()));
display=temp;
ran=temp;
}
Stringrandom=String.valueOf(display);
session.setAttribute("random",String.valueOf(ran));
%>
<%
out.clear();
response.setContentType("image/jpeg");
response.addHeader("pragma","NO-cache");
response.addHeader("Cache-Control","no-cache");
response.addDateHeader("Expries",0);
intwidth=47,height=15;
BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphicsg=image.getGraphics();
//以下添补背景色彩
g.setColor(Color.GREEN);
g.fillRect(0,0,width,height);
//设置字体色彩
g.setColor(Color.RED);
g.drawString(random,3,10);
g.dispose();
ServletOutputStreamoutStream=response.getOutputStream();
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(outStream);
encoder.encode(image);
outStream.close();
%>
<P>
2.img.jsp(显现考证图片.因为本程序复杂让考证程序也一并放在了一同)
代码以下:
<%@pagecontentType="text/html;charset=gb2312"language="java"%>
<%
Stringnum=request.getParameter("num");
Stringrandom=(String)session.getAttribute("random");
if(num!=null&&random!=null)
{
if(!num.equals(random))
{
out.println("<script>alert(考证码毛病!请重试。)</script>");
out.println("<script>history.go(-1)</script>");
//response.sendRedirect("img.jsp");
}
else
{
out.println("<center>考证乐成!</center>");
}
}
%>
<html>
<head>
<title>图片考证</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<P><body>
<formaction="img.jsp"method="post">
<table>
<tr>
<td>
<inputtype="text"name="num"size=10>
</td>
<td>
<imgsrc="random.jsp">
</td>
</tr>
</table>
<inputtype="submit"value="OK">
</form>
</body>
</html>
申明:有乐趣的网友能够在此基本上增添图片的内容.好比让背景加上纹理.让字符地位倾斜以加年夜扫描程序的难度.人人有甚么意见和倡议,都能够复兴中提出来....
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
页:
[1]