⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basiccommandregistry.java

📁 很棒的web服务器源代码
💻 JAVA
字号:
// BasicCommandRegistry.java// $Id: BasicCommandRegistry.java,v 1.4 2000/08/16 21:37:46 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigsaw.ssi.commands ;import java.util.Dictionary;import java.util.Hashtable;import java.io.PrintStream;import org.w3c.www.http.HTTP ;import org.w3c.util.ArrayDictionary;import org.w3c.jigsaw.http.Reply;import org.w3c.jigsaw.http.Request;import org.w3c.jigsaw.ssi.SSIFrame;/** * An implementation of CommandRegistry that uses a hash table * to store the commands. * @author Antonio Ramirez <anto@mit.edu> */public class BasicCommandRegistry extends CommandRegistry{    Hashtable /*<String,Command>*/ commands = null ;    public BasicCommandRegistry()    {	commands = new Hashtable(23) ;    }    public void registerCommand(Command cmd)    {	commands.put( cmd.getName().toLowerCase(),		      SSIFrame.debug		      ? getDebugWrapperCommand (cmd)		      : cmd ) ;    }    protected Command getDebugWrapperCommand(Command cmd) {	if (cmd instanceof ControlCommand)	    return new DebugWrapperControlCommand(cmd);	else	    return new DebugWrapperCommand(cmd);    }    public Command lookupCommand(String name)    {	Command cmd = (Command)	    commands.get(name.toLowerCase()) ;	if(cmd != null) return cmd ;	else return new DefaultCommand(name) ;    }    public Dictionary initVariables(SSIFrame ssiframe,				    Request request,				    Dictionary variables)    {	return variables ;    }}class DefaultCommand implements Command {    private String badCommand ;    /**     * return true if reply can be cached.     * @return a boolean.     */    public boolean acceptCaching() {	return true;    }    DefaultCommand(String badCommand)    {	this.badCommand = badCommand ;    }    public String getName()    {	return null ;    }    public Reply execute(SSIFrame ssiframe,			 Request request,			 ArrayDictionary parameters,			 Dictionary variables)    {	Reply reply =	    ssiframe.createCommandReply(request,HTTP.OK) ;	reply.setContent("[SSIFrame: unknown command \""+badCommand+"\"]");		return reply ;    }    public boolean modifiedSince(long date,				 SSIFrame ssiframe,				 Request request,				 ArrayDictionary parameters,				 Dictionary variables)    {	return false;    }  public String getValue(Dictionary variables, String variable, 			 Request request) {    return "null";  }}class DebugWrapperCommand implements Command {    Command cmd ;    /**     * return true if reply can be cached.     * @return a boolean.     */    public boolean acceptCaching() {	System.out.println("@@@@ command accept caching : "+			   cmd.acceptCaching());	return cmd.acceptCaching();    }    public DebugWrapperCommand(Command cmd)    {	this.cmd = cmd ;	System.out.println("@@@@ Added command: "+cmd.getName()) ;    }    public final Reply execute(SSIFrame ssiframe,			       Request request,			       ArrayDictionary parameters,			       Dictionary variables)    {	System.out.println("@@@@ Executing command: "+cmd.getName()+			   " "+parameters) ;	return cmd.execute(ssiframe,request,parameters,variables) ;    }			     public final String getName()    {	return cmd.getName() ;    }    public String getValue(Dictionary variables, 			   String variable, 			   Request request)     {	String value = cmd.getValue(variables, variable, request) ;	System.out.println("@@@@ Get Value "+cmd.getName()+" : "+value);	return value;    }}class DebugWrapperControlCommand extends DebugWrapperCommand                                  implements ControlCommand {    /**     * register the command position in the structure     * witch store the SSIFrame.     */    public void setPosition(SSIFrame ssiframe,			    Request request,			    CommandRegistry registry,			    ArrayDictionary parameters,			    Dictionary variables,			    int position)    {	System.out.println("@@@@ "+cmd.getName()+			   " SetPosition ["+position+"]");	((ControlCommand)cmd).setPosition(ssiframe, request, registry, 					  parameters, variables, position);    }    /**     * Give the next position in the structure witch     * store the SSIFrame.     * @return An integer     * @exception ControlCommandException if action failed.     */    public int jumpTo(SSIFrame ssiframe,		      Request request,		      CommandRegistry registry,		      ArrayDictionary parameters,		      Dictionary variables)	throws ControlCommandException    {	int pos = ((ControlCommand)cmd).jumpTo(ssiframe, request, 					       registry, parameters, 					       variables);	System.out.println("@@@@ "+cmd.getName()+" Jump to "+pos);	return pos;    }    public DebugWrapperControlCommand(Command cmd) {	super(cmd);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -