使用Struts的PlugIn進行Web應用的擴展
Struts提供了PlugIn的方式來擴展Struts的功能,這種方式的擴展適合于實現Struts啟動或者
停止時需要執行的某些特殊處理的情況,可以方便地實現Web應用啟動時的系統初始化工作以及在Web
應用卸載時的資源釋放工作,它不能實現針對每個用戶請求的處理功能.
開發一個Struts的PlugIn需要以下兩個步驟:
(1)實現Struts定義的PlugIn接口,其中的init()方法將在應用啟動時被調用,而destory()方法將在服務
終止時被調用.
(2)在Struts的配置文件中配置該PlugIn以及設置的初始化參數.Struts還允許為PlugIn定義一些參數,
在默認的情況下,這些參數必須作為PlugIn屬性的形式出現,并且為每個參數提供符合javabean規范
的setter方法,而這些參數在struts的配置文件中進行.
基本的配置形式如下:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
下面是一個例子.在服務器啟動和停止時輸出系統的時間.
MyPlugIn.java
package dgut.ke.struts.plugIn;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class MyPlugIn implements PlugIn {
private String timePattern;
public String getTimePattern() {
return timePattern;
}
public void setTimePattern(String timePattern) {
this.timePattern = timePattern;
}
public void destroy() {
// TODO 自動生成方法存根
DateFormat df = new SimpleDateFormat(getTimePattern());
Calendar rightNow = Calendar.getInstance();
Date now = rightNow.getTime();
System.out.println("The service shutdown at --> "+df.format(now));
}
public void init(ActionServlet actionServlet, ModuleConfig moduleConfig)
throws ServletException {
DateFormat df = new SimpleDateFormat(getTimePattern());
Calendar rightNow = Calendar.getInstance();
Date now = rightNow.getTime();
System.out.println("The service start at ---> "+df.format(now));
}
}
相關配置
<plug-in className="dgut.ke.struts.plugIn.MyPlugIn">
<set-property property="timePattern" value="yyyy-MM-dd" />
</plug-in>
posted on 2007-08-28 19:18
Ke 閱讀(417)
評論(0) 編輯 收藏 所屬分類:
struts