【发布时间】:2010-11-26 03:46:43
【问题描述】:
我需要将 IMAP 客户端作为 Web 应用程序
我实现了Sorting as的功能:
//userFolder is an Object of IMAPFolder
Message[] messages = userFolder.getMessages();
Arrays.sort(messages, new Comparator<Message>()
{
public int compare(Message message1, Message message2)
{
int returnValue = 0;
try
{
if (sortCriteria == SORT_SENT_DATE)
{
returnValue = message1.getSentDate().compareTo(message2.getSentDate());
}
} catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
if (sortType == SORT_TYPE_DESCENDING)
{
returnValue = -returnValue;
}
return returnValue;
}
});
代码 sn-p 不完整,只是简短 SORT_SENT_DATE,SORT_TYPE_DESCENDING 是我自己的常量。
实际上这个解决方案工作正常,但它在分页逻辑上失败 作为一个基于 Web 的应用程序,我不能期望服务器为每个用户加载所有消息并对其进行排序 (我们确实有 > 1000 个同时用户的邮箱有 > 1000 条消息的情况)
Web 服务器加载全部、排序、只返回一小部分(比如 1-20)也是没有意义的, 并在下一个请求中,再次加载所有排序并返回(21-40)。可以缓存,但保证用户实际上会提出请求吗?
我听说有一个名为 FetchProfile 的类,这对我有帮助吗? (我想它仍然会加载所有消息,但只加载所需的信息) 有没有其他方法可以实现这一目标?
我需要一个也适用于搜索操作(使用分页搜索)的解决方案, 我已经建立了一个架构来创建一个 SearchTerm,但在这里我也需要分页。
对于参考,我在以下位置提出了同样的问题: http://www.coderanch.com/t/461408/Other-JSE-JEE-APIs/java/it-possible-use-IMAP-paging
【问题讨论】:
标签: java web-applications email