在tomcat下开发的一个webapp,要求可以通过web页面的按钮重新启动自己这个servlet
方案如下:
1.修改tomcat内conf/context.xml文件
<Context privileged="true">
2.在servlet中实现 ContainerServlet接口,并引入库tomcat内lib/catalina.jar
public class RootServlet extends HttpServlet implements ContainerServlet
{
private static final long serialVersionUID = 1L;
private Wrapper wrapper = null;
private Context context = null;
public Wrapper getWrapper()
{
return this.wrapper;
}
public void setWrapper(Wrapper wrapper)
{
if (wrapper != null)
{
this.wrapper = wrapper;
this.context = (Context) this.wrapper.getParent();
}
}
private void stop()
{
try
{
((Lifecycle) this.context).stop();
}
catch (LifecycleException e)
{
e.printStackTrace();
}
}
private void reload()
{
this.context.reload();
}
private void stop() {
try {
((Lifecycle) this.context).stop();
} catch (LifecycleException e) {
e.printStackTrace();
}
}
private void reload() {
this.context.reload();
}
。。。
}
3.在doGet或doPost中实现对stop和reload的调用即可