2014-09-02 20 views
6

Özniteliğimi JSP sayfasında ServletContext nesnesinden nasıl bulabilirim? JSP sayfasında ServletContext özniteliği alın

Ben daha önce ayarlayın:

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) { 

}} 

ve şimdi JSP sayfasında almak istiyorum. Belki ${pageContext.servletContext.attributeNames} ile ilginizi çekebilir mi?

cevap

14

kullanarak JSTL doğrudan size

VEYA

da scriptlet olabilir kullanarak jsp doğrudan uygulama seviyesi nesneyi elde edebilirsiniz bu ifadeyi kullanarak jsp

${applicationScope['attributeNames']} 

uygulama nesnesi alabilirsiniz web_app sürüm 3.0 üzerinde çalışıyorsanız ve Servlet 3.0 API'sine sahipseniz, jsp ve uygulama nesnesini edinin ve doğrudan ServletContext nesne formunu HttpServletReq alabilirsiniz. Örneğin aşağıda gösterildiği gibi UEST:

<% 

    ServletContext sc = request.getServletContext(); 
    sc.getAttribute("attributeName"); 

%> 

ancak uygulama nesnesini almak için scriptlet kullandığınızda uygulama nesnesi döküm zorunda JSTL sonra scriptlet kodu

Read more:

+2

Teşekkür kullanmak çok daha iyidir cevap için. Ben $ {applicationScope.engine.rooms} kullanılır ve benim için çalışır!) –

+0

hiçbir request.getServletContext() yöntemi yoktur; neden? – shareef

+0

'request.getSession(). getServletContext()' yerine kullanın. – DFB