JSP项目中的全局变量结构(DB)

时间:2012-01-24 04:51:45

标签: jsp servlets

对于我的教育JSP项目(Servlets,Java EE),我必须用Java实现数据库。在索引页面中,我还执行函数来构建数据库(不是MySQL,但是基于HashMap的结构,带有对象的链接),并用基本数据填充它。我的问题是我无法使这个“数据库”全局化,并且无法从站点的每个页面访问此结构。如何将指针/链接传递给所有JSP站点页面?

2 个答案:

答案 0 :(得分:1)

编写servlet,从数据库填充结果(准备一个List),将结果绑定到请求的属性(或会话属性),并通过RequestDispatcher将其转发到JSP。在JSP中,您可以使用ELJSTL迭代该列表。

答案 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}中所示)