如何从JSP页面上的ServletContext对象中找到我的属性?
我之前设置了它:
public class MyServletContextListener implements ServletContextListener{
private static final Logger logger = LoggerFactory.getLogger(MyServletContextListener.class);
@Override
public void contextInitialized(ServletContextEvent event) {
logger.info("Init gameEngine in listener");
Engine engine = Engine.getInstance();
event.getServletContext().setAttribute("engine", engine);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
}}
现在想要进入JSP页面。
也许可以用${pageContext.servletContext.attributeNames}
做什么?
答案 0 :(得分:16)
使用jstl可以直接在jsp中获取应用程序对象
${applicationScope['attributeNames']}
通过使用此表达式,您可以直接在jsp中获取应用程序级别对象
或强>
使用scriptlet也可以在jsp中获取应用程序对象 如果你在web_app版本3.0上运行并且有Servlet 3.0 API,你可以直接从HttpServletRequest获取ServletContext对象,如下例所示:
<%
ServletContext sc = request.getServletContext();
sc.getAttribute("attributeName");
%>
但是当你使用scriptlet来获取应用程序对象时,你必须强制转换应用程序对象
JSTL
使用scriptlet代码要好得多