我很少有這樣的場景在我的web應用程序,這是我如何解決它
我有一個看起來像下面
public class MessageQueue {
public static Hashtable<String, Object> messages = new Hashtable<String, Object>();
public static void putMessage(String key, Object obj)
{
messages.put(key, obj);
}
public static Object getMessage(String key)
{
if(key == null)
return null;
Object obj = messages.get(key);
if(obj == null)
return null;
messages.remove(key);
return obj;
}
}
一類被稱爲消息隊列現在這個班留在記憶中。在重定向之前,我創建了一些重定向後需要的對象。創建一個隨機的Guid爲字符串,然後將此對象存儲在消息隊列
我然後添加此GUID作爲URL
字符串justDeletedId =「someId」的參數; String guid =(new Guid())。toString(); MessageQueue.put(guid,justDeletedId); sendRedirect(「\ list \?msgid =」+ guid);
現在重定向後,您可以檢查郵件ID,並從消息隊列刪除對象,做任何你請
我選擇允許使用該對象一次......以避免內存泄露
在當前版本...我也實施了最後訪問驅逐政策,它使用石英作業,定期清理此消息隊列
+1這似乎是一個可靠的解決方案,我不確定的唯一的事情是國家創建。一個Web應用程序不應該是如此有狀態的,但在某個地方你必須畫出我想要的路線。 – Mahoni 2012-07-27 01:10:07
如果它回答了你的問題,你可以選擇這個答案作爲答案 – jsshah 2012-07-27 17:52:18