在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的調用即可