我正在开发自定义搜索应用程序。用户输入的查询将被预处理以删除某些查询词。删除标准基于已为语料库中的所有术语预先计算的分数。我正在考虑将术语及其分数存储在哈希中,当用户输入查询时,我可以从哈希中获取术语的分数,并根据条件删除术语。
但是,由于散列非常大,是否可以将其作为全局变量,以便对于多个客户端请求,只有变量的单个副本在内存中?我想在index.jsp
中将其声明为全局变量将不起作用,因为对于每个客户端请求,将在内存中创建单独的副本。
答案 0 :(得分:2)
您可以将其存储在application scope。
中application.setAttribute("someName", someObject);
您可以getAttribute()
再次获取。
请注意,此作业通常由ServletContextListener
和/或HttpServlet
完成,而不是在JSP内部。在JSP中编写Java代码被认为是不好的做法。
答案 1 :(得分:0)
您也可以使用Singleton模式。它只会启动一次。