对于我的教育JSP项目(Servlet,Java EE),我必须在Java中实现数据库。在索引页面中,我还执行函数来构建数据库(不是MySQL,而是类似于HashMap的结构,带有指向对象的链接),并用基本数据填充它。我的问题是我不能使这个数据库全局化,也不能从网站的每个页面访问这个结构。我如何将指向此结构的指针/链接传递给所有JSP站点页面?
HashMap
s5a0g9ez1#
在Web应用程序启动时将其设置为servlet上下文属性。您可以使用ServletContextListener来执行此操作。
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.key}
wbgh16ku2#
编写一个servlet,从数据库填充结果(准备一个列表),将结果绑定到请求的属性(或会话属性),并通过RequestDispatcher将其转发到JSP。在JSP中,可以使用EL和JSTL迭代该列表。
servlet
RequestDispatcher
EL
JSTL
2条答案
按热度按时间s5a0g9ez1#
在Web应用程序启动时将其设置为servlet上下文属性。您可以使用
ServletContextListener
来执行此操作。它在所有servlet中都可用,如下所示:
它在所有JSP中都可用,如下所示:
${map.key}
)*wbgh16ku2#
编写一个
servlet
,从数据库填充结果(准备一个列表),将结果绑定到请求的属性(或会话属性),并通过RequestDispatcher
将其转发到JSP。在JSP中,可以使用EL
和JSTL
迭代该列表。