2014-05-21 2 views
1

많은 사용자를 위해 JSP 페이지에서 서비스를 제공하고 (양식 작성) 사용자에게 한 달에 한 번만 허용되기를 원합니다 (시작 및 종료 날짜 달력에 따라 작동해야 함). 아무도 내가 어떻게 할 수있는 날 또는 샘플 코드를 줄 수 말해 줄래? 이미 구현 된 링크는 상당히 유용 할 것입니다. 감사.JSP로 한 달에 한 번 서비스 허용

답변

2

서버 측에서는 세션 데이터 (및 데이터베이스)에서 사용자 당 Map을 관리 할 수 ​​있습니다. 값은 사용자가 서비스를 사용했는지 여부를 나타내는 부울 플래그입니다. 지도 키로 정수로 일년과 월의 고유 한 조합을 사용할 수 있습니다 (예 : year * 12 + (month - 1) 수식) (여기에 1에서 시작하는 달).

그러면 모든 양식 호출이이지도를 평가하여 사용자가 현재 달에 서비스를 이미 사용했는지 여부를 판단 할 수 있습니다. 그렇지 않고 사용자가 한달에 한 번 서비스를 사용하면 서버 측의 저장소 계층에있는 맵과 그 표현이 그에 따라 업데이트되어야합니다.

업데이트 : 당신은 내가 아는 모든 관계형 데이터베이스가 명시 적으로 데이터 형식을 지원하지 않는 점에 유의해야한다 제안 Map의 저장을 위해

. 그러나 예를 들어 두 개의 열 (사용자 키와 년 - 월 - 키)이있는 테이블로 모델링 할 수 있습니다. 여기서 모든 db 레코드는 지정된 달에 서비스 사용을 의미합니다.

+0

감사합니다. 나는 이것이 내가 최소한 생각을 가질 수 있기를 정말로 바란다. :) –

+1

@IbrahimNadir 고려해야 할 한가지는 또한 시간대 참조 연도와 관련이있다. 예를 들어,'java.util.GregorianCalendar'를 인스턴스화 해 현재의 해 및 달을 추출하는 경우 (아마 0으로부터 시작되는 달), 아마도 UTC를 사용해야 할 것입니다. –

+0

네, 그곳에서 당신의 요지를 완전히 이해했습니다.이 점을 염두에 두었지 만 포괄적 인지도에 감사드립니다. –

1

Map을 사용하면 서비스가 24 시간 연중 무휴로 운영되지 않으므로 최선의 선택이 아니라고 생각합니다. 따라서 사용자가 마지막으로 서비스를 사용한 시점에 대한 정보 인 저장해야합니다.

이 데이터가 저장되면 java의 Calendar을 사용하여 날짜를 확인할 수 있습니다.

희망이 도움이 될 것입니다!

+0

내가 제안한지도는 실제로 주어진 문제에 대한 올바른 추상화를 사용하는 시간 정보를 가지고 있습니다. 한 달에 한 번만 사용자가 서비스를 사용한다는 것을 보장하기 위해 사용자가 서비스를 사용한 달의 어느 날 또는 밀리 초에 실제로 흥미로운 것은 아닙니다. 맵 키의 제안 된 형식은이 세부 사항을 정확하게 설명합니다. 어쨌든, 서비스의 마지막 사용의 정확한 시간은 다른 목적으로 저장 될 수도 있지만 질문과 직접 ​​관련이 없습니다. –

관련 문제