cachedXSLT
インスタンスをServletContextに追加できます。Web XMLにServletContextListenerを登録する必要があり、 contextInitializedメソッドがコンテナによって1回呼び出されます。したがって、インスタンスをに追加すると、ServletContext
すべてのアプリケーションで利用できるようになります。
これを行うには、 ServletContextListenerを実装するクラスを作成します。
public class YourContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
//This method is called by the container on start up
//Your code should look something like this:
Source xsltSource = new StreamSource(xsltFile);
TransformerFactory transFact = TransformerFactory.newInstance();
Templates cachedXSLT = transFact.newTemplates(xsltSource);
Transformer trans = cachedXSLT.newTransformer();
ServletContext context = sce.getServletContext();
context.setAttribute("cashedXSLT", cachedXSLT);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
あなたのにそれを登録してくださいweb.xml
:
<listener>
<listener-class>your.package.YourContextListener</listener-class>
</listener>
contextInitializedメソッドでは、以下を使用してサーブレットコンテキストを取得し、属性を追加できます。
ServletContext context = sce.getServletContext();
context.setAttribute("cashedXSLT", cachedXSLT);
次に、次を使用できます。
Templates cashedXSLT = (Templates) context.getAttribute("cashedXSLT");
インスタンスを取得しcachedXSLT
ます。アプリケーションでServletContextを取得するかどうかは、使用しているフレームワークによって異なります。