Struts1提供PlugIn接口,可以动态增减ActionServlet的功能。如果需要在应用启动或关闭时完成某些操作,可以创建自己的PlugIn类。


Java代码:

package com.struts1.plugin;

import javax.servlet.ServletException;

import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;

public class HelloWorldPlugIn implements PlugIn {
	
	private String filename;

	@Override
	public void destroy() {
		System.out.println("HelloWorldPlugIn.destroy");
	}

	@Override
	public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {
		System.out.println("HelloWorldPlugIn.init");
		System.out.println("filename = " + filename);
	}

	public String getFilename() {
		return filename;
	}

	public void setFilename(String filename) {
		this.filename = filename;
	}

}



struts-config.xml:

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

	<form-beans>
	</form-beans>

	<global-exceptions>
	</global-exceptions>

	<global-forwards>
	</global-forwards>

	<action-mappings>
	</action-mappings>

	<plug-in className="com.struts1.plugin.HelloWorldPlugIn">
		<set-property property="filename" value="/WEB-INF/struts-config.xml" />
	</plug-in>

</struts-config>



启动服务器,输出:

HelloWorldPlugIn.init
filename = /WEB-INF/struts-config.xml