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

apeeds0o  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(119)

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

s5a0g9ez

s5a0g9ez1#

在Web应用程序启动时将其设置为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}
  • (Map值可通过Map键通过常用的EL方式获得,如${map.key})*
wbgh16ku

wbgh16ku2#

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

相关问题