1. 환경
1) JAVA 1.7
2. 과정
String changePwFalg = "";
/* 날짜 포맷 셋팅 */
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
/**
* 2021. 01. 14
* test.properties 에서 90일 값을 셋팅 후 Environment 객체를 호출해 사용.
* 자바단에서 이후 날짜를 변경하지 않는다.
*/
final long passwordDateLimit = Integer.parseInt(Environment.getPasswordDateLimit());
/**
* 2021. 01. 14
* TA_MANAGER 테이블의 PASSWORD_DATE 컬럼값과 현재 날짜를 비교.
* 90일이 지나면 비밀번호 변경 Flag값을 던진다.
*/
/* PASSWORD_DATE값 Setting */
String pwDate = ManagerEntity.getField("PASSWORD_DATE");
Date passwordDateFormat = sdf.parse(pwDate);
Calendar passwordDate = Calendar.getInstance();
passwordDate.setTime(passwordDateFormat);
/* 현재 날짜 Setting */
Date date = new Date();
String dateFormat = sdf.format(date);
Date todayDate = changeStringToDate(dateFormat);
Calendar toDay = Calendar.getInstance();
toDay.setTime(todayDate);
long diffSec = (toDay.getTimeInMillis() - passwordDate.getTimeInMillis()) / 1000;
long diffDays = diffSec / (24 * 60 * 60);
System.out.println("==> CHANGE_PASSWORD_DATE, DIFFDAYS : " + diffDays);
//changeStringToDate 객체
/**
* 2021. 01. 13
* String을 Date로 변환
*/
public Date changeStringToDate(String dateInput) {
Date resultDate=null;
String dateFormat = "yyyyMMdd";
DateFormat df = new SimpleDateFormat(dateFormat);
try {
resultDate = df.parse(dateInput);
} catch (ParseException e) {
e.printStackTrace();
}
return resultDate;
}
//특정날짜와 오늘날짜와 비교 후 90일 값과 비교.
/**
* 2021. 01. 14
* 위에서 구한 날짜 차이를 90일과 비교한다.
* 90일이 지났으면 changePwFalg를 Y로 보낸다.
*/
if(diffDays > passwordDateLimit) {
ManagerEntity.setField("CHANGE_PW_FLAG", changePwFalg);
changePwFalg = "Y";
ManagerEntity.setField("CHANGE_PW_FLAG", changePwFalg);
} else {
changePwFalg = "N";
ManagerEntity.setField("CHANGE_PW_FLAG", changePwFalg);
}
** 오타 **
changePwFalg => changePwFlag
3. 결과
1) 특정날짜와 오늘날짜를 비교해서 일 수를 구하고,
2) 구한 결과를 다시 한번 90(일, day)이라는 값과 비교한다.
** 만약 30일을 구하고 싶으면 properties에서 30, 60, 90, 120... 등을 고치면 된다.
** 굳이 자바단을 수정할 필요가 없다.
3) 그리고 changePwFlag를 JSP쪽으로 보내어 사용하면 된다.
일단 기본적으로 1.7과 스프링이 아닌 Servlet의 스트럿츠를 사용하다보니 정말 헛갈리고 복잡하다. -,-....
1) properties를 ResourceBundle 이라는 객체를 사용해서 맵핑 시키고
2) 사용하기 위해서 Environment class 에서 getter setter를 하나하나 다 지정해준다.
3) 그럼 이걸 위에서 한 것처럼 객체에 담을 꺼내어 와서 int로 변형시키고...
4) JSP에서는 httpSession을 이용해서 set하고 또 다른 JSP에서 request get 하고...
정말 너무 복잡하다...-,-...
새삼스럽지만 스프링의 위대함을 다시 한번 알게 됐다..
참고 블로그 : https://myhappyman.tistory.com/128