本人剛剛大學畢業在一家軟件公司上班,最近開發一些小的功能模塊:
1、手機發送激活碼功能,當用戶一次點擊五次時做某事:
代碼:
package com.csair.sso.count;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.csair.sso.identifying.code.CheckInputNum;
import com.csair.sso.input.security.SecurityNum;
import com.csair.sso.user.change.ChangePwd;
// 監聽類
public class ClearMap implements ServletContextListener {
static final long time = 24 * 60 * 60 * 1000;
final int hour = 23, min = 59, sec = 59;
// 加載時執行
public void contextInitialized(ServletContextEvent arg0) {
// 執行時間
Timer timer = new Timer();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, min);
calendar.set(Calendar.SECOND, sec);
Date date = calendar.getTime();
timer.schedule(new TimerClear(), date, time);
}
private class TimerClear extends TimerTask {// 實現TimerTask類
public void run() {
// 每隔一段時間執行
clearMap(SecurityNum.getMap());
clearMap(CheckInputNum.getMap());
clearMap(ChangePwd.getMap());
}
// 要執行的方法
public void clearMap(Map<String, Integer> map0) {
Map<String, Integer> map = map0;
map.clear();
}
}
// 類銷燬後執行
public void contextDestroyed(ServletContextEvent arg0) {
}
}
package com.csair.sso.count;
import java.util.Map;
/**
* Title: PhoneIdentifyingCode.java
*
* @author 高孟陽
* @date 2015-7-17 上午11:26:22
* @version 1.0
*/
public final class CountNum {
// 定義i用於次數累計
int i;
public String checkNum(Map<String, Integer> map, String sessionid) {
// 清除map數據
if (map.containsKey(sessionid)) {
i = map.get(sessionid);
++i;
map.put(sessionid, i);
if (i < 5) {
// 驗證小於五次返回1
return "1";
} else {
// 用戶驗證碼超過五次返回0,並且清除當前用戶sessionid
map.remove(sessionid);
return "0";
}
} else {
// 當sessionid不在map中則加入
map.put(sessionid, 1);
return "1";
}
}
}
package com.csair.sso.input.security;
import java.util.HashMap;
import java.util.Map;
import com.csair.sso.count.CountNum;
// 密保問題此數限制
public class SecurityNum {
static Map<String, Integer> map = new HashMap<String, Integer>();
CountNum countNum = new CountNum();
//該方法用於jsp中調用,也可以寫其他方法
public String Num(String sessionid) {
return countNum.checkNum(map, sessionid);
}
// 返回map
public static Map<String, Integer> getMap() {
return map;
}
}