2011-09-26 80 views

回答

2

將其存儲在應用程序或會話範圍中。假設這些下拉菜單代表應用程序範圍內的常量,那麼您可以使用ServletContextListener。它只能在webapp的啓動時執行一次。

例如

@WebListener 
public class ApplicationDataConfigurator implements ServletContextListener { 

    @Override 
    public void contextInitialized(ServletContextEvent event) { 
     Map<String, String> countries = populateAndGetItSomehow(); 
     event.getServletContext().setAttribute("countries", countries); 
     // ... 
    } 

    @Override 
    public void contextDestroyed(ServletContextEvent event) { 
     // NOOP. 
    } 

} 

ServletContext的屬性,也可在JSP EL通常的方式:

<select name="countries"> 
    <c:forEach items="${countries}" var="country"> 
    <option value="${country.key}">${country.value}</option> 
    </c:forEach> 
</select> 

如果你寧願喜歡將其存儲在會話代替,然後用預處理servlet代替它檢查在doGet()如果它們不在當前會話中,然後填充它。您只需要認識到,這可能會影響大數據時的總內存使用量。

+0

嗨balusC感謝您的快速回復。 因爲我對這個世界並不陌生。想要更多的關注這個.. 請。 –

+0

不客氣。慢慢來。 – BalusC

相關問題