明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

半翻譯半整理的一些struts的東東,很淺顯的,歡迎指正(二)

[摘要]3.Struts Plugins:Plugin從Struts1.1開始介紹,它定義了一個(gè)org.apache.struts.action.Plugin接口,它主要用來(lái)分配資源(allocating ...
3.Struts Plugins:
Plugin從Struts1.1開始介紹,它定義了一個(gè)org.apache.struts.action.Plugin接口,它主要用來(lái)分配資源(allocating resources)或者建立數(shù)據(jù)庫(kù)的連結(jié)或者JNDI資源。這個(gè)接口提供了兩個(gè)必須實(shí)現(xiàn)的方法:init()和destroy()。如果運(yùn)用了Plugin技術(shù),那么在容器啟動(dòng)的時(shí)候,會(huì)調(diào)用Plugin的init()方法。所以將應(yīng)用系統(tǒng)的初始化信息寫在這里。當(dāng)容器停止Struts應(yīng)用系統(tǒng)的時(shí)候,會(huì)調(diào)用destroy()方法,destroy()方法主要是用來(lái)收回在init()方法中分配的資源信息。
◆擴(kuò)展Plugin類
 ① 創(chuàng)建一個(gè)實(shí)現(xiàn)Plugin接口的類
 ② 添加一個(gè)空的構(gòu)造器
 ③ 實(shí)現(xiàn)init()及destroy()兩個(gè)方法
 ④ 在struts-config.xml文件中對(duì)<plug-in />元素的配置
創(chuàng)建Plugin必須繼承org.apache.struts.action.Plugin接口。并且實(shí)現(xiàn)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 />的詳細(xì)配置信息見(jiàn)”struts-config.xml配置文件講解”。