对于我的教育JSP项目(Servlets,Java EE),我必须用Java实现数据库。在索引页面中,我还执行函数来构建数据库(不是MySQL,但是基于HashMap
的结构,带有对象的链接),并用基本数据填充它。我的问题是我无法使这个“数据库”全局化,并且无法从站点的每个页面访问此结构。如何将指针/链接传递给所有JSP站点页面?
答案 0 :(得分:1)
编写servlet
,从数据库填充结果(准备一个List),将结果绑定到请求的属性(或会话属性),并通过RequestDispatcher
将其转发到JSP。在JSP中,您可以使用EL
和JSTL
迭代该列表。
答案 1 :(得分:1)
在webapp的启动时将其设置为servlet上下文属性。您可以使用ServletContextListener
。
@WebListener
public class DatabaseConfigurator implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
Map<String, Object> database = new HashMap<String, Object>();
event.getServletContext().setAttribute("database", database);
}
// ...
}
它在所有servlet中都可用,如下所示:
Map<String, Object> database = (Map<String, Object>) getServletContext().getAttribute("database");
// ...
它在所有JSP中都可用,如下所示:
${database}
(地图值由地图键通过常用的EL表示,如${map.key}
中所示)