【Java开源代码栏目提醒】:网学会员为需要Java开源代码的朋友们搜集整理了AdminServlet.java相关资料,希望对各位网友有所帮助!
// ===========================================================================
// Copyright (c) 1996 Mort Bay Consulting Pty. Ltd. All rights reserved.
// $Id: AdminServlet.java,v 3.8 2000/12/08 10:26:56 gregwilkins Exp $
// ---------------------------------------------------------------------------
package com.mortbay.HTTP;
import com.mortbay.HTML.Break;
import com.mortbay.HTML.Composite;
import com.mortbay.HTML.Heading;
import com.mortbay.HTML.Element;
import com.mortbay.HTML.Block;
import com.mortbay.HTML.Font;
import com.mortbay.HTML.Form;
import com.mortbay.HTML.Input;
import com.mortbay.HTML.Link;
import com.mortbay.HTML.List;
import com.mortbay.HTML.Page;
import com.mortbay.HTML.TableForm;
import com.mortbay.HTML.Target;
import com.mortbay.HTTP.Handler.Servlet.ServletHandler;
import com.mortbay.Util.Code;
import com.mortbay.Util.Log;
import com.mortbay.Util.LogSink;
import com.mortbay.Util.WriterLogSink;
import com.mortbay.Util.LifeCycle;
import com.mortbay.Util.UrlEncoded;
import java.io.IOException;
import java.io.Writer;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.StringTokenizer;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/* ------------------------------------------------------------ */
/** Jetty Administration Servlet.
*
* This is a minimal start to a administration servlet that allows
* start/stop of server components and control of debug parameters.
*
* @version $Id: AdminServlet.java,v 3.8 2000/12/08 10:26:56 gregwilkins Exp $
* @author Greg Wilkins (gregw)
*/
public class AdminServlet extends HttpServlet
{
private java.util.List _servers;
/* ------------------------------------------------------------ */
public void init(ServletConfig config)
throws ServletException
{
super.init(config);
_servers=HttpServer.getHttpServerList();
}
/* ------------------------------------------------------------ */
private String doAction(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
String action=request.getParameter("A");
if ("exit all servers".equalsIgnoreCase(action))
{
new Thread(new Runnable()
{
public void run()
{
try{Thread.sleep(1000);}
catch(Exception e){Code.ignore(e);}
Log.event("Stopping All servers");
for (int s=0;s<_servers.size();s++)
{
HttpServer server=(HttpServer)_servers.get(s);
try{server.stop();}
catch(Exception e){Code.ignore(e);}
}
Log.event("Exiting JVM");
System.exit(1);
}
}).start();
throw new HttpException(HttpResponse.__503_Service_Unavailable);
}
boolean start="start".equalsIgnoreCase(action);
String id=request.getParameter("ID");
StringTokenizer tok=new StringTokenizer(id,":");
int tokens=tok.countTokens();
String target=null;
try{
target=tok.nextToken();
HttpServer server=(HttpServer)
_servers.get(Integer.parseInt(target));
if (tokens==1)
{
// Server stop/start
if (start) server.start();
else server.stop();
}
else if (tokens==3)
{
// Listener stop/start
String l=tok.nextToken()+":"+tok.nextToken();
Collection listeners=server.getListeners();
Iterator i2 = listeners.iterator();
while(i2.hasNext())
{
HttpListener listener = (HttpListener) i2.next();
if (listener.toString().indexOf(l)>=0)
{
if (start) listener.start();
else listener.stop();
}
}
}
else
{
String host=tok.nextToken();
if ("null".equals(host))
host=null;
String contextPath=tok.nextToken();
target+=":"+host+":"+contextPath;
if (contextPath.length()>1)
contextPath+="/*";
int contextIndex=Integer.parseInt(tok.nextToken());
target+=":"+contextIndex;
HandlerContext
context=server.getContext(host,contextPath,contextIndex);
if (tokens==4)
{
// Context stop/start
if (start) context.start();
else context.stop();
}
else if (tokens==5)
{
// Handler stop/start
int handlerIndex=Integer.parseInt(tok.nextToken());
HttpHandler handler=context.getHandler(handlerIndex);
if (start) handler.start();
else handler.stop();
}
}
}
catch(Exception e)
{
Code.warning(e);
}
catch(Error e)
{
Code.warning(e);
}
return target;
}
/* ------------------------------------------------------------ */
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
if (request.getQueryString()!=null &&
request.getQueryString().length()>0)
{
String target=doAction(request,response);
response.sendRedirect(request.getContextPath()+
request.getServletPath()+
(request.getPathInfo()!=null
?request.getPathInfo():"")+
(target!=null?("#"+target):""));
return;
}
Page page= new Page();
page.title(getServletInfo());
page.addHeader("");
page.attribute("text","#000000");
page.attribute(Page.BGCOLOR,"#FFFFFF");
page.attribute("link","#606CC0");
page.attribute("vlink","#606CC0");
page.attribute("alink","#606CC0");
page.add(new Block(Block.Bold).add(new Font(3,true).add(getServletInfo())));
page.add(Break.rule);
Form form=new Form(request.getContextPath()+
request.getServletPath()+
"?A=exit");
form.method("GET");
form.add(new Input(Input.Submit,"A","Exit All Servers"));
page.add(form);
page.add(Break.rule);
page.add(new Heading(3,"Components:"));
List sList=new List(List.Ordered);
page.add(sList);
String id1;
for(int i1=0;i1<_servers.size();i1++)
{
id1=""+i1;
HttpServer server=(HttpServer)_servers.get(i1);
Composite sItem = sList.newItem();
sItem.add("<B>HttpServer ");
sItem.add(lifeCycle(request,id1,server));
sItem.add("</B>");
sItem.add(Break.line);
sItem.add("<B>Listeners:</B>");
List lList=new List(List.Unordered);
sItem.add(lList);
Collection listeners=server.getListeners();
Iterator i2 = listeners.iterator();
while(i2.hasNext())
{
HttpListener listener = (HttpListener) i2.next();
String id2=id1+":"+listener;
lList.a
上一篇:
AdminSelectPasswordAction.java
下一篇:
最新铁路市场营销论文参考文献