Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
允许在JSP中每月提供一次服务代码_Jsp_Date_Calendar - Fatal编程技术网

允许在JSP中每月提供一次服务代码

允许在JSP中每月提供一次服务代码,jsp,date,calendar,Jsp,Date,Calendar,我在JSP页面上为许多用户提供了一项服务(比如填写表单),我希望每个月只允许用户使用一次(每月的开始和结束日期应根据日历确定)。谁能告诉我怎么做,或者给我一个示例代码?任何与已经实现的这种方法的链接都是值得注意的。谢谢。在服务器端,您可以在会话数据(和数据库)中管理每个用户的映射。这些值是指示用户是否使用了服务的布尔标志。作为映射键,您可以使用年和月的唯一组合作为整数,例如公式年*12+(月-1)(此处:月从一开始) 然后,每个表单调用都可以评估该映射,以确定用户在当前月份是否已经使用了该服务。

我在JSP页面上为许多用户提供了一项服务(比如填写表单),我希望每个月只允许用户使用一次(每月的开始和结束日期应根据日历确定)。谁能告诉我怎么做,或者给我一个示例代码?任何与已经实现的这种方法的链接都是值得注意的。谢谢。

在服务器端,您可以在会话数据(和数据库)中管理每个用户的
映射。这些值是指示用户是否使用了服务的布尔标志。作为映射键,您可以使用年和月的唯一组合作为整数,例如公式
年*12+(月-1)
(此处:月从一开始)

然后,每个表单调用都可以评估该映射,以确定用户在当前月份是否已经使用了该服务。如果没有,并且用户使用每月一次的服务,则需要相应地更新地图及其在服务器端存储层中的表示

更新:


对于建议的
Map
的存储,您必须注意,我知道的所有关系数据库都不明确支持这种数据类型。但您可以将其建模为具有两列(用户键和年-月键)的表,例如,其中每个db记录表示给定月份的服务使用情况。

我认为使用
映射不是最佳选择,因为您的服务不会全天候运行(可能是,但您不应该信任它)。因此,您需要存储(这意味着持久性)关于用户上次使用您的服务的时间的信息

一旦存储了这些数据,就可以使用java的
日历检查日期


希望这会有帮助

谢谢!我真的希望这能帮助我至少有一个想法:“IbHimHimNADIR一个要考虑的事情也是时区参考年和月相关。例如,在实例化
java.util.GregorianCalendar
以提取当前年份和月份时,您可能应该只使用UTC(注意:没有以零为基础的月份).是的,我完全理解你的观点,我也想到了这一点,但感谢你的全面指导。我建议的地图确实有一个时间信息,对给定的问题使用了正确的抽象。用户使用该服务以确保用户每月只使用一次该服务的日期甚至毫秒都不是很有趣。建议的映射键形式正好解决了这个细节。无论如何,最后一次使用服务的确切时间也可以存储用于其他目的,但与问题没有直接关系。