本功能主要採用JSP頁面產生驗證碼,通過原始JavaScript+iframe實現頁面重新整理。步驟如下:
1、驗證碼產生頁面ValiCode.jsp:
<%@ page language="java" import="java.util.*,java.io.*,com.sun.image.codec.jpeg.*,java.awt.*,java.awt.image.*" pageEncoding="GB18030"%><%String s="";int count=0;Random rand=new Random();count=rand.nextInt(9999);while(count<1000){count=rand.nextInt(9999);}s+=count;session.setAttribute("validate",s);response.setContentType("image/gif");BufferedImage image=new BufferedImage(65,30,BufferedImage.TYPE_INT_RGB);Graphics gra=image.getGraphics();gra.setColor(Color.RED);gra.fillRect(1,1,63,28);gra.setColor(Color.ORANGE);gra.setFont(new Font("隸書",Font.PLAIN,28));char c;for(int i=0;i<4;i++){c=s.charAt(i);gra.drawString(c+" ",i*15+4,23);}OutputStream toClient=response.getOutputStream();JPEGImageEncoder jpg=JPEGCodec.createJPEGEncoder(toClient);jpg.encode(image);toClient.close();out.clear();out=pageContext.pushBody();%>
2、設定重新整理頁面code.jsp:
主要引入驗證碼圖片,點擊時重新整理。
<html><head><style type="text/css"><!--body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;}--></style><script language="javascript">function showVali(){history.go(0) ;}</script></head><body><img src="/company/ValiCode.jsp" onClick="showVali()" ></body></html>
3、在主題頁index.jsp面使用iframe,引入驗證碼
<iframe id="myframe" width="65" height="30" src="/company/code.jsp" scrolling="no"></iframe>
4、點擊即可實現重新整理。
5、更簡單的方法,在主題頁index.jsp頁面可以直接使用onclick實現請求重新整理
<img id='imgVcode' src="ValiCode.jsp" onclick="document.getElementById('imgVcode').src = 'ValiCode.jsp?'+(new Date()).getTime()"/>
後面的時間可以改變地址,相當於發出不同的請求,頁面實現重新整理效果。