程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP驗證碼刷新無效問題解決

JSP驗證碼刷新無效問題解決

編輯:關於JSP

在form表單中,如下

[html]
<form name="infof"> 
   <font color="red">姓名:</font> <input name="name" type="text"></input><br> 
   <font color="red">密碼:</font> <input name="password" type="password"></input><br> 
   驗證碼:<input name="validate" type="text"> 
   <img name="vali" border=0 src="validate.jsp" onclick="refresh()"/> 
   <a href="JavaScript:refresh()">看不清,換一張</a> 
   <br> 
   <input type="button" onclick="login()" value="登錄"> <input 
    type="reset"> 
  </form> 

在驗證碼圖片中,調用的是validate.jsp,用於生成驗證碼圖片。這個jsp中的內容如下:

[html]
<body> 
    <% 
        response.setHeader("Pragma", "No-cache"); 
        response.setHeader("Cache-Control", "no-cache"); 
        response.setDateHeader("Expires", 0); 
        BufferedImage image = new BufferedImage(75, 30, 
                BufferedImage.TYPE_INT_RGB); 
        Graphics g = image.getGraphics(); 
        g.setColor(Color.gray); 
        g.fillRect(0, 0, 75, 30); 
 
        String randStr = String.valueOf(new Random().nextInt(8999) + 1000); 
        session.setAttribute("randStr", randStr); 
 
        g.setColor(Color.black); 
        g.setFont(new Font("", Font.PLAIN, 20)); 
        g.drawString(randStr, 10, 20); 
        for (int i = 1; i <= 120; i++) { 
            int x = new Random().nextInt(75); 
            int y = new Random().nextInt(30); 
            g.setColor(Color.blue); 
            g.drawOval(x, y, 1, 1); 
        } 
        ImageIO.write(image, "JPEG", response.getOutputStream()); 
        out.clear(); 
        out = pageContext.pushBody(); 
         
    %> 
</body> 
好了,現在大頭戲來了。

<img name="vali" border=0 src="validate.jsp" onclick="refresh()"/>
   <a href="JavaScript:refresh()">看不清,換一張</a>

中,無論是鏈接還是onclick方法,都是指到js中的一個方法。

具體如下:

[javascript]
<script type="text/javascript"> 
        function refresh(){ 
            infof.vali.src=""; 
            infof.vali.src="validate.jsp"; 
             
        } 
    </script> 

本來呢,infof.vali.src="";這條語句我是沒有的。當我點擊圖片,或者點擊鏈接的時候,我發現,validate.jsp都沒有被調用。無論我怎麼設置緩存設置(可能是我還沒有設置到點上)

干脆,我自己想了個辦法,我用這種方法 解決了刷新驗證碼無效的問題。

經過測試,鏈接和點擊圖片都可以~~~問題解決


摘自 MELEARNER的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved