『壹』 java中如何在同一個jsp頁面中判斷圖片驗證碼與輸入的是否一致
1.在servlet或者action中獲取存放在session里的圖片驗證碼.
2.獲得用戶輸入的驗證碼,然後跟從session里獲得的驗證碼做比較,如果驗證碼和輸入的不一致,則可以存放在一個變數里(前提是你用的是struts2框架,在最上面聲明一個屬性,類型是私有的,然後加set、get方法,然後把錯誤信息放在這個屬性中),
如果是你是servlet中做判斷的話,你可以把錯誤信息存放在request或者session中,存放在request的話,只能用轉發,如果用重定向的話,在頁面中取不出來數據.
3.在頁面中取:
可以用request取
4.如果你是想在同一個頁面中做判斷的話.那也一樣.只是在頁面中加個腳本,然後其他步驟都差不多,從session中取出來和輸入的驗證碼做判斷,然後中間加上js腳本。
『貳』 java中如何在同一個jsp頁面中判斷圖片驗證碼與輸入的是否一致
這個問題很簡單的。我想你動態產生的驗證碼一定是一個單獨的頁面然後再把這個頁面導入到你的輸入信息的頁面的。你打開你的動態生成驗證碼的頁面。在裡面你一定可以找到一個session.setAttribute(""); 這個方法是把你驗證碼的值保存在session裡面。根據你的意思在用js彈出來驗證. 首先你在頁面中加一小腳本<% Stirng vcode= (String)session.getAttribute("驗證碼Key") %>然後在你的提交按鈕中加一個onClick事件... 請輸入驗證碼:<input type="text" id="txtvcode" name="txtvcode" /> <input type="button" name="text" id="text" value="提交" onClick="checkVcode('<%= vcode%>')" />這樣就可以把你動態生成的驗證碼值傳入到js的函數中去了。 <script> function checkVcode(vcode){ var txtvcode= document.getElementById("txtvcode").value; if(vcode==txtvcode){ alert("輸入驗證碼正確"); }else{ alert("輸入驗證碼錯誤"); } } </script>人在網吧。沒工具調試。我想這些代碼不會出問題的。
『叄』 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++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 將認證碼顯示到圖象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
//調用函數出來的顏色相同,可能是因為種子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 將認證碼存入SESSION
session.setAttribute("rand",sRand);
// 圖象生效
g.dispose();
// 輸出圖象到頁面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
『肆』 用一個jsp頁面生成了驗證碼,在登陸界面引入這個界面,怎麼在登陸界面進行驗證碼校驗
生成驗證碼時將實際數據存入session,用戶填寫驗證碼並提交後,將用戶提交的驗證碼與session中的數據做比較就可以了。