많은 사용자를 위해 JSP 페이지에서 서비스를 제공하고 (양식 작성) 사용자에게 한 달에 한 번만 허용되기를 원합니다 (시작 및 종료 날짜 달력에 따라 작동해야 함). 아무도 내가 어떻게 할 수있는 날 또는 샘플 코드를 줄 수 말해 줄래? 이미 구현 된 링크는 상당히 유용 할 것입니다. 감사.JSP로 한 달에 한 번 서비스 허용
답변
서버 측에서는 세션 데이터 (및 데이터베이스)에서 사용자 당 Map
을 관리 할 수 있습니다. 값은 사용자가 서비스를 사용했는지 여부를 나타내는 부울 플래그입니다. 지도 키로 정수로 일년과 월의 고유 한 조합을 사용할 수 있습니다 (예 : year * 12 + (month - 1)
수식) (여기에 1에서 시작하는 달).
그러면 모든 양식 호출이이지도를 평가하여 사용자가 현재 달에 서비스를 이미 사용했는지 여부를 판단 할 수 있습니다. 그렇지 않고 사용자가 한달에 한 번 서비스를 사용하면 서버 측의 저장소 계층에있는 맵과 그 표현이 그에 따라 업데이트되어야합니다.
업데이트 : 당신은 내가 아는 모든 관계형 데이터베이스가 명시 적으로 데이터 형식을 지원하지 않는 점에 유의해야한다 제안 Map
의 저장을 위해
. 그러나 예를 들어 두 개의 열 (사용자 키와 년 - 월 - 키)이있는 테이블로 모델링 할 수 있습니다. 여기서 모든 db 레코드는 지정된 달에 서비스 사용을 의미합니다.
Map
을 사용하면 서비스가 24 시간 연중 무휴로 운영되지 않으므로 최선의 선택이 아니라고 생각합니다. 따라서 사용자가 마지막으로 서비스를 사용한 시점에 대한 정보 인 저장해야합니다.
이 데이터가 저장되면 java의 Calendar
을 사용하여 날짜를 확인할 수 있습니다.
희망이 도움이 될 것입니다!
내가 제안한지도는 실제로 주어진 문제에 대한 올바른 추상화를 사용하는 시간 정보를 가지고 있습니다. 한 달에 한 번만 사용자가 서비스를 사용한다는 것을 보장하기 위해 사용자가 서비스를 사용한 달의 어느 날 또는 밀리 초에 실제로 흥미로운 것은 아닙니다. 맵 키의 제안 된 형식은이 세부 사항을 정확하게 설명합니다. 어쨌든, 서비스의 마지막 사용의 정확한 시간은 다른 목적으로 저장 될 수도 있지만 질문과 직접 관련이 없습니다. –
- 1. 한 달에 한 번 반복 알람 설정
- 2. 한 기간에 한 달에 한 번 레코드 수를 계산하는 방법
- 3. 한 달에 한 번 계정에 자동으로 로그인하는 스크립트
- 4. 레일 앱은 한 달에 한 번 작업을 수행해야합니다.
- 5. 한 달에 한 번 실행될 예약 타이머 - C#
- 6. 한 달에 한 번 실행되는 스크립트이지만 cron 작업을 사용하지 않음
- 7. 한 달에 한 번 시작되는 Android 알람 관리자
- 8. 테이블 디자인 - 한 달에 한 번 입력 제한
- 9. cakephp 한 달에 한 달에 COUNT 개 항목
- 10. 매일 한 달에 mysql이
- 11. 카운트를 다시 한 달에
- 12. 한 번 의도 서비스 내부
- 13. Null 허용 참조 형식 (다시 한 번)
- 14. 사용자가 PHP에서 한 번 투표 허용
- 15. 이 트랜잭션까지 한 달에 한 번 평균 한 거래 당 평균 금액
- 16. 데이터는 마지막 X의 모든 달에 한 번 이상 나타 월
- 17. 사용자가 한 달에 10 번 이상 방문했는지 어떻게 추적합니까?
- 18. 한 달에 실제 주가 찾기
- 19. 한 달에 주 수를 계산하십시오.
- 20. 한 달에 계산 된 간단한 레일 보고서
- 21. Android - 하루에 한 번 실행되는 서비스 만들기
- 22. 달에 실행될 시스템 서비스 받기
- 23. SQLite 그룹 (한 달에 10 번째에서 다음 달에 열 번째까지)
- 24. 한 달에 한 번 Heroku에서 스케줄러 추가 기능을 실행하는 방법은 무엇입니까?
- 25. 한 번
- 26. 한 번
- 27. 한 번
- 28. 한 번
- 29. 한 번
- 30. fridays의 날짜를 찾는 방법 객관적인 c에서 한 달에 한 달
감사합니다. 나는 이것이 내가 최소한 생각을 가질 수 있기를 정말로 바란다. :) –
@IbrahimNadir 고려해야 할 한가지는 또한 시간대 참조 연도와 관련이있다. 예를 들어,'java.util.GregorianCalendar'를 인스턴스화 해 현재의 해 및 달을 추출하는 경우 (아마 0으로부터 시작되는 달), 아마도 UTC를 사용해야 할 것입니다. –
네, 그곳에서 당신의 요지를 완전히 이해했습니다.이 점을 염두에 두었지 만 포괄적 인지도에 감사드립니다. –