import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.catalina.Container;
import org.apache.catalina.ContainerServlet;
import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.Lifecycle;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.Wrapper;public class TomcatManagerServlet extends HttpServlet implements ContainerServlet { private static final long serialVersionUID = 1L; private Wrapper wrapper = null;
private Context context = null;// 當前應用上下文 // private Host host = null;// 當前主機
// private Engine engine = null;// 當前引擎 public Wrapper getWrapper() {
return this.wrapper;
} public void setWrapper(Wrapper wrapper) {
if (wrapper != null) {
this.wrapper = wrapper;
this.context = (Context) this.wrapper.getParent();
// this.host = (Host) this.context.getParent();
// this.engine = (Engine) this.host.getParent();
}
} public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String command = request.getParameter("command");
if (command != null) {
if ("stop".equals(command)) {
this.stop();

}
if ("reload".equals(command)) {
this.reload();

}

if ("add".equals(command)) {
this.getServletContext().setAttribute("a", "im init");
}
}
} private void stop() {
try {
((Lifecycle) this.context).stop();
} catch (LifecycleException e) {
e.printStackTrace();
}
} private void reload() {
this.context.reload();
}}