이 예제는 참조에 대한 Java SMS Verification Code의 5 분 유효 시간을 공유합니다. 특정 내용은 다음과 같습니다
5 분 이내에 반복 요청이 필요한 SMS 확인 코드를 보내 겠다는 요청을 구현하고 동일한 확인 코드를 반환하십시오.
온라인으로 몇 가지 솔루션을 찾을 수 있습니다.
예를 들어, 스토리지 데이터베이스 또는 캐시. 구현하고 포기하는 것이 더 번거 롭습니다.
또 다른 방법은 세션 스토리지를 사용하는이 예입니다. 다른 방법은 아직 이해되지 않았습니다.
구현 단계 : (SpringMVC)
1. 컨트롤러에서 세션 객체를 가져 와서 코드를 가져오고 새로운 세대를 얻을 수없고 세션을 저장할 수 없습니다.
2. 단일 휴대 전화 번호를 보내는 수는 데이터베이스 +1에 판단되고 기록됩니다.
3. 타이머 타이머, Timertask 작업의 실행을 지연시키기 위해 새 스레드를 설정 (코드 삭제)
@requestmapping (value = "sendMessage", method = requestMethod.get) public Object SendMessage (최종 httpservletRequest 요청) {string phone = request.getParameter ( "전화"); int times = userService.MessagesEndToday (전화); // 두 번째 확인, 단일 휴대 전화 번호는 (시간 <= max_per_day) {string checkcode = generaterandomcode.createrandomnumber (6); 최종 httpsession httpsession = request.getSession (); httpsession.setattribute ( "checkcode", checkcode); CheckCodemEsage CheckCodemessage = 새로운 CheckCodemEssage (전화, checkcode); try {httpsender.batchsend (CheckCodemessage); // TimerTask는 5 분 동안 구현되고 세션에서 최종 타이머 타이머 = new Timer ()에서 삭제됩니다. timer.schedule (new Timertask () {@override public void run () {httpsession.removeattribute ( "checkcode"); system.out.println ( "checkcode 삭제"); timer.cancel ();}}, 5*60*1000); } catch (예외 e) {e.printstacktrace (); } return "Redirect :/index.jsp"; }}타이머 타이밍 작업 :
// TimertASK는 5 분 동안 구현되어 세션에서 삭제됩니다. checkCodeFinal Timer Timer = new Timer (); Timer.Schedule (new TimerTask () {@override public void run () {httpsession.removeattribute ( "CheckCode"); System.out.println ( "checkcode deleted re (timer.cel); 5*60*1000);위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.