从JSP页面上的ServletContext获取属性

时间:2014-09-02 10:43:36

标签: java jsp spring-mvc el

如何从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}做什么?

1 个答案:

答案 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代码要好得多

Read more: