一 HTML - Basic
Image 標(biāo)簽 <IMG src="../images/03.gif" border="0"> 所有屬性包括
Basic 屬性包括
alt
Class
Id
Long
Longdesc
Name
Src
Title
Usemap
Display 屬性包括
Align
Border
Dir
Height
Hspace
Ismap
Mapfile
Style
Vspace
Width
Events 屬性包括
Onclick
Ondbclick
Onhelp
Onkeydown
Onkeypress
Onkeyup
Onmounsedown
Onmousemove
Onmouseout
Onmouseover
Onmouseup
二、 HTML-Form
Image Button<INPUT type="image" src="../images/03.gif" />
Basic 屬性包括
Accept
Accesskey
Alt
Checked
Class
Disabled
Id
Long
Maxlength
Name
readonly
Src
Tabindex
Title
Type
Usemap
Value
Display 屬性包括
Align
Border
Dir
Height
Ismap
Isstyle
Size
Style
Width
Events 屬性包括
Onblur
Onchange
Onclick
Ondbclick
Onfocus
Onhelp
Onkeydown
Onkeypress
Onkeyup
Onmounsedown
Onmousemove
Onmouseout
Onmouseover
Onmouseup
Onselect
三、 Struts - Basic
Image <html:img page="/images/03.gif" border="0" />
Basic 屬性包括
Action
Alt
AltKey
Bundle
imageName
locale
lowsrc
Name
Page
PageKey
Paramname
Paramproperty
Paramscope
Src
SrcKey
Title
titleKey
Usemap
Display 屬性包括
Align
Border
Height
Hsapce
Ismap
Style
StyleClass
StyleId
Vsapce
Width
Events 屬性包括
Onclick
Ondbclick
Onkeydown
Onkeypress
Onkeyup
Onmounsedown
Onmousemove
Onmouseout
Onmouseover
Onmouseup
Other 屬性包括
contextRealtive
module
paramId
useLocalEncoding
四、 Struts-Form
Image Button <html:image page="/images/03.gif" />
Basic 屬性包括
Accesskey
Alt
altKey
bundle
Disabled
Indexed
Locale
Page
pageKey
property
Src
SrcKey
Tabindex
Title
titleKey
Value
Display 屬性包括
Align
Border
Style
styleClass
styleId
Events 屬性包括
Onblur
Onchange
Onclick
Ondbclick
Onfocus
Onkeydown
Onkeypress
Onkeyup
Onmounsedown
Onmousemove
Onmouseout
Onmouseover
Onmouseup
在 Struts 必須使用 Struts - Basic 下的 Image 標(biāo)簽 和 Struts-Form 下的 Image Button 按鈕。其中可以使用 servlet 隨機(jī)生成的圖片,或者 jsp 文件。 JSP 下的彩色驗(yàn)證碼的解決:
隨機(jī)驗(yàn)證圖片的生成文件
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){// 給定范圍獲得隨機(jī)顏色
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);
}
%>
<%
// 設(shè)置頁(yè)面不緩存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在內(nèi)存中創(chuàng)建圖象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 獲取圖形上下文
Graphics g = image.getGraphics();
// 生成隨機(jī)類
Random random = new Random();
// 設(shè)定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
// 設(shè)定字體
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
// 畫邊框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 隨機(jī)產(chǎn)生 155 條干擾線,使圖象中的認(rèn)證碼不易被其它程序探測(cè)到
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);
}
// 取隨機(jī)產(chǎn)生的認(rèn)證碼 (4 位數(shù)字 )
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 將認(rèn)證碼顯示到圖象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));// 調(diào)用函數(shù)出來(lái)的顏色相同,可能是因?yàn)榉N子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 將認(rèn)證碼存入 SESSION
session.setAttribute("rand",sRand);
// 圖象生效
g.dispose();
// 輸出圖象到頁(yè)面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
使用頁(yè)面:
<%@ page contentType="text/html;charset=gb2312" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> 認(rèn)證碼輸入頁(yè)面 </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<form method=post action="check.jsp">
<table>
<tr>
<td align=left> 系統(tǒng)產(chǎn)生的認(rèn)證碼: </td>
<td><img border=0 src="image.jsp"></td>
</tr>
<tr>
<td align=left> 輸入上面的認(rèn)證碼: </td>
<td><input type=text name=rand maxlength=4 value=""></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=" 提交檢測(cè) "></td>
</tr>
</table>
</form>