|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,js|servlet|静态|考证码如今有很多网站在用户填写表单时,同时请求填写考证码,考证码的一个目标就是提防一些歹意的网站下载软件,这些软件能经由过程遍历链接而将网站的一切网页下载。还能够避免用户不经由本网站的页面而利用网站的资本。以是如今有很多网站都利用了考证码手艺,考证码一般是一个在WEB服务器上天生的随机字符串,同时以某种体例保留起来,好比保留到与以后的Session中,然后在用户提交网页时与用户输出的考证对照是不是分歧,但是假如间接以明文的体例,仍是不克不及提防一些功效较强的主动填写表格的软件。以是一样平常将考证码以图片的情势显现出来,同时能够将在图片中显现的字符串举行一些处置,好比利用扭转字符,增加背景纹理等手艺以增年夜被软件辨认的难度。上面扼要先容一下假如完成这类考证码:
起首完成一个servlet用来天生图片(固然也能够用jsp完成):
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.io.*;
importjava.util.*;
importcom.sun.image.codec.jpeg.*;
importjava.awt.*;
importcom.sun.image.codec.jpeg.*;
importjava.awt.image.BufferedImage;
importjava.awt.image.DataBuffer;
importjava.awt.geom.GeneralPath;
importjavax.swing.*;
importjava.math.*;
publicclassServlet1
extendsHttpServlet{
//ProcesstheHTTPGetrequest
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throws
ServletException,IOException{
response.setContentType(CONTENT_TYPE);
response.setContentType("image/jpeg");//必需设置ContentType为image/jpeg
intlength=4;//设置默许天生4个数字
Dated=newDate();
longlseed=d.getTime();
java.util.Randomr=newRandom(lseed);//设置随机种子
if(request.getParameter("length")!=null){
try{
length=Integer.parseInt(request.getParameter("length"));
}
catch(NumberFormatExceptione){
}
}
StringBufferstr=newStringBuffer();
for(inti=0;i<length;i++){
str.append(r.nextInt(9));//天生随机数字
}
//能够在此到场保留考证码的代码
//创立内存图象
BufferedImagebi=newBufferedImage(40,16,BufferedImage.TYPE_INT_RGB);
Graphics2Dg=bi.createGraphics();
g.clearRect(0,0,16,40);
g.setColor(Color.green.CYAN);
g.drawString(str.toString(),4,12);
try{
//利用JPEG编码,输入到response的输入流
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(response.
getOutputStream());
JPEGEncodeParamparam=encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1.0f,false);
encoder.setJPEGEncodeParam(param);
encoder.encode(bi);
}
catch(Exceptionex){
}
}
}
然后在需求显现考证码的到场以下代码就能够了
将/WebModule1/servlet1交换成你用来天生考证码的servlet的全路径。
进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。 |
|