使用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 阅读(415)
评论(0) 编辑 收藏 所属分类:
struts