JSP图片彩色数字验证
产生验证码图片的文件image.jsp
<%@ page contentType="image/jpeg" import="java.awt.*,
java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
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);
}
%>
<%
//
设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
//
在内存中创建图象
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++
相关文档:
JSP源代码
<%
//获取系统时间
//String ddate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8");
TimeZone.setDefault(tz);
  ......
我们知道 XML+XSLT就可以直接输出到支持XML的浏览器上,如IE 5.0以上,但是,我们还要考虑到有不少浏览器不直接支持XML,在这种情况下,我们需要在服务器上进行转换成html输出到浏览器,这种临时过渡办法恐怕要在一段时间内一直要使用.
使用Jsp 加上tablib标识库,我们可以完成这种转换。
著名open source项目组jakar ......
大家总是不喜欢看到<%和%>在jsp页面上,其实我们可以使用比较优雅的xml方式来表达
1,隐含的注释
JSP语法:<%-- 内容 --%>
XML语法:无
2,变量或函数的声明
JSP语法:<%! declaration;[declaration;]+... %>
例如:
<%!
int i=0;int a,b,c;
Color red=new Color( ......
元问题来自JSP与Servlet的比较。
我们知道Servlet能够使得JAVA代码不用像Applet那样在客户浏览器中运行,它会在你控制的一个应用服务器上运行。在没有什么背景知识的前提下我默认这是一种规则,即Servlet就是这样发展起来的。在实际应用中当我们请求一个JSP页面的时候,JSP首先被转 ......