好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ssh生成隨機數字驗證碼操作步驟

ssh生成隨機數字驗證碼操作步驟

熱門標簽:福建電銷貓機器人收費 地圖標注專業和非專業 湖北地圖標注公司 山東ai外呼電銷機器人好用嗎 汝南縣地圖標注app 甘肅銷售電銷機器人公司 智能電話機器人銷售話術 四川正規外呼系統軟件 外呼直播語音系統
1、login.jsp頁面程序
復制代碼 代碼如下:

script type="text/javascript">
function changeValidateCode(obj) {
//獲取當前的時間作為參數,無具體意義
var timenow = new Date().getTime();
//每次請求需要一個不同的參數,否則可能會返回同樣的驗證碼
//這和瀏覽器的緩存機制有關系,也可以把頁面設置為不緩存,這樣就不用這個參數了。
obj.src="rand.action?d="+timenow;
}
/script>

在表單中添加下面這句話:
復制代碼 代碼如下:

s:text name="random">/s:text>:s:textfield name="rand" size="5">/s:textfield>img src="rand.action" onclick="changeValidateCode(this)" title="點擊圖片刷新驗證碼"/>

2、RandomNumUtil.java 生成驗證碼的類文件
復制代碼 代碼如下:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
public class RandomNumUtil {
private ByteArrayInputStream image;//圖像
private String str;//驗證碼
private RandomNumUtil(){
init();//初始化屬性
}
/*
* 取得RandomNumUtil實例
*/
public static RandomNumUtil Instance(){
return new RandomNumUtil();
}
/*
* 取得驗證碼圖片
*/
public ByteArrayInputStream getImage(){
return this.image;
}
/*
* 取得圖片的驗證碼
*/
public String getString(){
return this.str;
}
private void init() {
// 在內存中創建圖象
int width=85, 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));
// 隨機產生155條干擾線,使圖象中的認證碼不易被其它程序探測到
g.setColor(getRandColor(160,200));
for (int i=0;i155;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);
}
// 取隨機產生的認證碼(6位數字)
String sRand="";
for (int i=0;i6;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);
}
//賦值驗證碼
this.str=sRand;
//圖象生效
g.dispose();
ByteArrayInputStream input=null;
ByteArrayOutputStream output = new ByteArrayOutputStream();
try{
ImageOutputStream imageOut = ImageIO.createImageOutputStream(output);
ImageIO.write(image, "JPEG", imageOut);
imageOut.close();
input = new ByteArrayInputStream(output.toByteArray());
}catch(Exception e){
System.out.println("驗證碼圖片產生出現錯誤:"+e.toString());
}
this.image=input;/* 賦值圖像 */
}
/*
* 給定范圍獲得隨機顏色
*/
private 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);
}
}

3、RandomAction.java 生成驗證碼的action程序
復制代碼 代碼如下:

import java.io.ByteArrayInputStream;
import com.mxl.util.RandomNumUtil;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class RandomAction extends ActionSupport{
private ByteArrayInputStream inputStream;
public String execute() throws Exception{
RandomNumUtil rdnu=RandomNumUtil.Instance();
this.setInputStream(rdnu.getImage());//取得帶有隨機字符串的圖片
ActionContext.getContext().getSession().put("random", rdnu.getString());//取得隨機字符串放入HttpSession
return SUCCESS;
}
public void setInputStream(ByteArrayInputStream inputStream) {
this.inputStream = inputStream;
}
public ByteArrayInputStream getInputStream() {
return inputStream;
}
}

4、LoginAction.java 驗證驗證碼的action
復制代碼 代碼如下:

private String rand; //表單中的rand
public String getRand() {
return rand;
}
public void setRand(String rand) {
this.rand = rand;
}
//從session中取出RandomAction.java 中生成的驗證碼random
String arandom=(String)(ActionContext.getContext().getSession().get("random"));
//下面就是將session中保存驗證碼字符串與客戶輸入的驗證碼字符串對比了
if(arandom.equals(this.getRand())) {
ActionContext.getContext().getSession().put("user", this.getUsername());
return SUCCESS;
}
else {
return ERROR;
}

5、配置struts.xml文件
復制代碼 代碼如下:

!-- Random驗證碼 -->
action name="rand" class="com.mxl.rand.RandomAction">
result type="stream">
param name="contentType">image/jpeg/param>
param name="inputName">inputStream/param>
/result>
/action>

6、生成的驗證碼圖片演示(實現的6位數字的驗證碼)
說明:
如果想修改驗證碼生成的個數,需要修改以下幾個地方:
第一點:
int width=85, height=20; int width=85, height=20;
第二點: for (int i=0;i6;i++) for (int i=0;i6;i++)
數字6,修改成你想生成的位數就可以了~
您可能感興趣的文章:
  • asp.net(C#) 生成隨機驗證碼的代碼
  • php 生成隨機驗證碼圖片代碼
  • Python 隨機生成中文驗證碼的實例代碼
  • C# 生成驗證碼取隨機數字加字母(改進版)
  • Java 隨機生成驗證碼(支持大小寫字母、數字、隨機字體)的實例
  • python生成隨機驗證碼(中文驗證碼)示例
  • Python隨機生成一個6位的驗證碼代碼分享
  • Python生成隨機驗證碼的兩種方法

標簽:昌都 肇慶 白銀 臨沂 黔東 梅州 吳忠 南充

巨人網絡通訊聲明:本文標題《ssh生成隨機數字驗證碼操作步驟》,本文關鍵詞  ssh,生成,隨機,數字,驗證,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ssh生成隨機數字驗證碼操作步驟》相關的同類信息!
  • 本頁收集關于ssh生成隨機數字驗證碼操作步驟的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 极品岳坶交换| 久久精品高清| 国产在线欧美精品| 国产成人高清亚洲一区91| 羞耻在线观看| 男人添女人荫道口视频| 台湾三级《色诱》在线观看| 日本高清中文| 麻豆国产视频| 严洲国产AV精品一区二区三区 | 日日摸夜夜搂人人要| 窝窝午夜剧场| 91在线码无精品秘?入口| 国产美女免费A片2023| 男男激情漫画无遮挡下拉式| 白浆少妇在线mv| 处破之轻点好疼十八分| 久久免费特黄毛片| 变性被室友啪啪好爽h| 国产做受???高潮短发巨乳| 色综合久| 亚洲欧美日本韩国综合在线观看 | 91探花国产综合在线精品| 交换娇妻张雅婷1-20集| 男人扒开腿女人猛戳视频| 全彩bl漫画无遮挡网址| 无毛护士| 国产日产久久久久久精品加勒比| 国产?麻豆?女教师张津瑜| 互换娇妻100系列| 联合早报即时高清| 97视频在线看| 免费无码又爽又刺激高潮九一视频| 综合图区+亚洲+偷自拍| 摸着美妇丰满翘起的臀部| 黑人极品videos精品欧美裸| 精品无码国产污污污污男同| 宝宝好大好深好涨水多| 成人爽视频| 欧美一区二| 国产性猛交?XX?乱动漫小说|