如何使用tomcat服务器将数据加载到内存中?
我有一个从文件加载数据的java类。 我想将数据加载到内存中一次,每当客户端请求使用该类的页面时,数据将从内存中使用。
例如
class MyClass
{
HashMap data = new HashMap(100);
public void LoadDataFromFile()
{.....}
public void UseTheData(String input)
{....}
public MyClass(){ LoadDataFromFile();} // c'tor load data
public SetInput(String Input)
{
UseTheData(input);
}
}
并在我的jsp文件中
Myclass myclass= new MyCass();
myclass.LoadDataFromFile();
myclass.UseTheData();
我知道我应该在jsp文件中使用JSTL
如果我使用scope =“session”,数据加载将保留吗?
<jsp:useBean id="myclass" class="MyClass" scope="session">
<jsp:setProperty name="myclass" property="input" value="blabla" />
</jsp:useBean>
如果我在构造函数中加载数据,我可以确保该类只是init一次吗?
答案 0 :(得分:3)
创建ServletContextListener
并在web.xml文件中注册。在ServletContextListener
中,初始化应用程序时,读取文件并将其存储在ServletContext
的属性中。然后可以从Java和JSP代码轻松访问此属性。