TcHandlerpublic abstract class TcHandler extends Object The lowest level component of Jk ( and hopefully Coyote ).
Try to keep it minimal and flexible - add only if you _have_ to add.
It is similar in concept and can implement/wrap tomcat3.3 Interceptor, tomcat4.0 Valve,
axis Handler, tomcat3.3 Handler, apache2 Hooks etc.
Both iterative (Interceptor, Hook ) and recursive ( Valve ) behavior are supported.
Named TcHandler because Handler name is too overloaded.
The interface allows both stateless and statefull implementations ( like Servlet ). |
Fields Summary |
---|
public static final int | OK | public static final int | LAST | public static final int | ERROR | protected Hashtable | attributes | protected TcHandler | next | protected String | name | protected int | id |
Methods Summary |
---|
public void | destroy()Clean up and stop the handler. Override if needed.
| public java.lang.Object | getAttribute(java.lang.String name)Get an attribute. Override to allow runtime query ( attribute can be
anything, including statistics, etc )
return attributes.get(name) ;
| public int | getId()
return id;
| public java.lang.String | getName()
return name;
| public void | init()Should register the request types it can handle,
same style as apache2.
| public abstract int | invoke(TcHandlerCtx tcCtx)The 'hook' method. If a 'next' was set, invoke should call it ( recursive behavior,
similar with valve ).
The application using the handler can also iterate, using the same semantics with
Interceptor or APR hooks.
| public void | setAttribute(java.lang.String name, java.lang.Object value)Base implementation will just save all attributes.
It is higly desirable to override this and allow runtime reconfiguration.
XXX Should I make it abstract and force everyone to override ?
attributes.put( name, value );
| public void | setId(int id)Set the id of the worker. It can be used for faster dispatch.
Must be unique, managed by whoever creates the handlers.
this.id=id;
| public void | setName(java.lang.String s)Set the name of the handler. Will allways be called by
worker env after creating the worker.
// -------------------- Configuration --------------------
name=s;
| public void | setNext(org.apache.tomcat.util.handler.TcHandler h)Catalina-style "recursive" invocation. A handler is required to call
the next handler if set.
next=h;
| public void | start()
| public void | stop()
|
|