【发布时间】:2011-07-28 17:46:05
【问题描述】:
我正在翻新我继承的旧版 Java webapp(servlet 和 JSP)。 webapp 发送电子邮件,它使用大约 12 个电子邮件地址列表。电子邮件地址被硬编码到 web 应用程序中。自然,我想将这些电子邮件地址列表放入一个文件中,然后让 webapp 读取它们。
在过去,我会将这些列表放入 webapp 根目录中的 *.properties 文件中。
我猜 Properties 对象和 *.propertie 文件不是现代 Java 的方法。
我的一个选择是将每个电子邮件列表作为<context-param> 放入web.xml,<param-value> 是一个逗号分隔的电子邮件地址列表。然后,我将使用 context.getInitParameter() 按名称检索每个列表,然后编写一个函数来标记电子邮件并将每个列表放入 ArrayList 中。我的直觉告诉我,这比它必须的更混乱。
我希望我的配置文件像属性文件一样具有非技术用户友好性,包含 cmets、空格、键值对,即
########################################
## This file lists the email lists
#########################################
customerList = joeblow@gmail.com,sara@yahoo.com
managerList = jack@biz.com,jane@bigorg.gov
##########################################
## end of file
##########################################
这样的文件将包含 12 个这样的列表以及大约 10 个不同的电子邮件地址
我知道如何使用 Properties 类在 WAR 中找到这样的文件并将其加载到属性对象中非常容易。
问题在于如何优雅地将这 12 个列表中的每一个从属性对象中取出、标记化并放入单独的 ArrayList(带有命名引用)
我是否正确地假设现代系列已经过时了 Prooperties 类?我猜要走的路是使用 Scanner 类来读取文件并将其标记为 Map,每个键是电子邮件列表的名称,每个值是电子邮件地址的 ArrayList。
我不确定如何将所有这些与我上面描述的文件类型放在一起。
任何建议。
我的目标是首先以最简单的方式,然后以最现代的方式做到这一点(我有一本关于集合和泛型的书,但我仍在吸收它)。
提前感谢您的任何帮助或想法
史蒂夫
【问题讨论】:
-
将它们放入数据库,并编写一个界面供用户添加/删除/编辑地址。这是对用户最友好的方式。
标签: java email web-applications servlets