3.Struts Plugins: Plugin從Struts1.1開始介紹,它定義了一個org.apache.struts.action.Plugin接口,它主要用來分配資源(allocating resources)或者建立數據庫的連結或者JNDI資源。這個接口提供了兩個必須實現的方法:init()和destroy()。如果運用了Plugin技術,那么在容器啟動的時候,會調用Plugin的init()方法。所以將應用系統的初始化信息寫在這里。當容器停止Struts應用系統的時候,會調用destroy()方法,destroy()方法主要是用來收回在init()方法中分配的資源信息。 ◆擴展Plugin類 ① 創建一個實現Plugin接口的類 ② 添加一個空的構造器 ③ 實現init()及destroy()兩個方法 ④ 在struts-config.xml文件中對<plug-in />元素的配置 創建Plugin必須繼承org.apache.struts.action.Plugin接口。并且實現init()及destroy()方法。例子: package wiley;
import java.util.Properties; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletContext; import org.apache.struts.action.PlugIn; import org.apache.struts.config.ModuleConfig; import org.apache.struts.action.ActionServlet;
public class WileyPlugin implements PlugIn {
public static final String PROPERTIES = "PROPERTIES";
public WileyPlugin() {}
public void init(ActionServlet servlet, ModuleConfig config) throws javax.servlet.ServletException { System.err.println("....>The Plugin is starting<...."); Properties properties = new Properties(); String path = "C:\\ApplicationResources"+ ".properties"; try { // Build a file object referening the properties file // to be loaded File file = new File(path); // Create an input stream FileInputStream fis = new FileInputStream(file); // load the properties properties.load(fis); // Get a reference to the ServletContext ServletContext context = servlet.getServletContext(); // Add the loaded properties to the ServletContext // for retrieval throughout the rest of the Application context.setAttribute(PROPERTIES, properties); } catch (FileNotFoundException fnfe) { throw new ServletException(fnfe.getMessage()); } catch (IOException ioe) { throw new ServletException(ioe.getMessage()); } }
public void destroy() { // We don't have anything to clean up, so // just log the fact that the Plugin is shutting down System.err.println("....>The Plugin is stopping<...."); } } ◆配置Plugin: 在struts-config.xml文件中配置<plug-in>元素。如下: <plug-in className=”wiley.WileyPlugin” /> <plug-in />的詳細配置信息見”struts-config.xml配置文件講解”。
|