web-dev-qa-db-ja.com

JSPページのServletContextから属性を取得します

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}でできるのでしょうか?

7
Turlife_07

jstlを使用すると、jspでアプリケーションオブジェクトを直接取得できます。

${applicationScope['attributeNames']}

この式を使用すると、アプリケーションレベルのオブジェクトをjspで直接取得できます。

[〜#〜]または[〜#〜]

スクリプトレットを使用すると、jspでアプリケーションオブジェクトを取得することもできます。web_appバージョン3.0で実行していて、Servlet 3.0 APIを使用している場合は、以下の例に示すように、HttpServletRequestからServletContextオブジェクトを直接取得できます。

<%

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

%>

ただし、スクリプトレットを使用してアプリケーションオブジェクトを取得する場合は、アプリケーションオブジェクトをキャストする必要があるため、スクリプトレットコードよりもJSTLを使用する方がはるかに優れています。

続きを読む:

16
Nirav Prajapati