本人刚刚大学毕业在一家软件公司上班,最近开发一些小的功能模块:
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;
}
}