## org.mortbay.jetty.handler
Class RewriteHandler

    java.lang.Object
      org.mortbay.component.AbstractLifeCycle
          org.mortbay.jetty.handler.AbstractHandler
              org.mortbay.jetty.handler.AbstractHandlerContainer
                  org.mortbay.jetty.handler.HandlerWrapper
                      org.mortbay.jetty.handler.RewriteHandler

All Implemented Interfaces:
  LifeCycle, Handler, HandlerContainer

    public class RewriteHandler

extends HandlerWrapper

Path Rewrite Handler

This path uses the pattern matching of `PathMap` to rewrite URI's of received requests. A typical jetty.xml configuration would be:

         <Set name="handler">
           <New id="Handlers" class="org.mortbay.jetty.handler.RewriteHandler">
             <Set name="rewriteRequestURI">false</Set>
             <Set name="rewritePathInfo">false</Set>
             <Set name="originalPathAttribute">requestedPath</Set>
             <Call name="addRewriteRule"><Arg>/other/*</Arg><Arg>/test</Arg></Call>
             <Call name="addRewriteRule"><Arg>/test/*</Arg><Arg></Arg></Call>
             <Call name="addRewriteRule"><Arg>/*</Arg><Arg>/test</Arg></Call>
             <Set name="handler">
               <New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
                 <Set name="handlers">
                  <Array type="org.mortbay.jetty.Handler">
                    <Item>
                      <New id="Contexts" class="org.mortbay.jetty.handler.ContextHandlerCollection"/>
                    </Item>
                    <Item>
                      <New id="DefaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/>
                    </Item>
                    <Item>
                      <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
                    </Item>
                  </Array>
                 </Set>
               </New>
             </Set>
           </New>
         </Set>

Field Summary

Fields inherited from class org.mortbay.jetty.handler.AbstractHandler
`_string`

Fields inherited from interface org.mortbay.jetty.Handler
`ALL, DEFAULT, ERROR, FORWARD, INCLUDE, REQUEST`

Constructor Summary
`RewriteHandler()`

Method Summary
`void` `addRewriteRule(String pattern, String prefix)` Add a path rewriting rule
`String` `getOriginalPathAttribute()`
`PathMap` `getRewrite()`
`void` `handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch)` Handle a request.
`boolean` `isRewritePathInfo()`
`boolean` `isRewriteRequestURI()`
`void` `setOriginalPathAttribute(String originalPathAttribte)`
`void` `setRewrite(PathMap rewrite)`
`void` `setRewritePathInfo(boolean rewritePathInfo)`
`void` `setRewriteRequestURI(boolean rewriteRequestURI)`

Methods inherited from class org.mortbay.jetty.handler.HandlerWrapper
`addHandler, doStart, doStop, expandChildren, getHandler, setHandler, setServer`

Methods inherited from class org.mortbay.jetty.handler.AbstractHandlerContainer
`expandHandler, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass`

Methods inherited from class org.mortbay.jetty.handler.AbstractHandler
`destroy, getServer, toString`

Methods inherited from class org.mortbay.component.AbstractLifeCycle
`isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, start, stop`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.mortbay.component.LifeCycle
`isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, start, stop`

Constructor Detail

### RewriteHandler

    public RewriteHandler()

Method Detail

### isRewriteRequestURI

    public boolean isRewriteRequestURI()

  Returns:
    the rewriteRequestURI If true, this handler will rewrite the value returned by `HttpServletRequest.getRequestURI()`.

### setRewriteRequestURI

    public void setRewriteRequestURI(boolean rewriteRequestURI)

  Parameters:
    `rewriteRequestURI` - true if this handler will rewrite the value returned by `HttpServletRequest.getRequestURI()`.

### isRewritePathInfo

    public boolean isRewritePathInfo()

  Returns:
    true if this handler will rewrite the value returned by `HttpServletRequest.getPathInfo()`.

### setRewritePathInfo

    public void setRewritePathInfo(boolean rewritePathInfo)

  Parameters:
    `rewritePathInfo` - true if this handler will rewrite the value returned by `HttpServletRequest.getPathInfo()`.

### getOriginalPathAttribute

    public String getOriginalPathAttribute()

  Returns:
    the originalPathAttribte. If non null, this string will be used as the attribute name to store the original request path.

### setOriginalPathAttribute

    public void setOriginalPathAttribute(String originalPathAttribte)

  Parameters:
    `originalPathAttribte` - If non null, this string will be used as the attribute name to store the original request path.

### getRewrite

    public PathMap getRewrite()

  Returns:
    A `PathMap` of the rewriting rules.

### setRewrite

    public void setRewrite(PathMap rewrite)

  Parameters:
    `rewrite` - A `PathMap` of the rewriting rules. Only prefix paths should be included.

### addRewriteRule

    public void addRewriteRule(String pattern,
                               String prefix)

  Add a path rewriting rule

  Parameters:
    `pattern` - The path pattern to match. The pattern must start with / and may use a trailing /* as a wildcard.
    `prefix` - The path prefix which will replace the matching part of the path.

### handle

    public void handle(String target,
                       HttpServletRequest request,
                       HttpServletResponse response,
                       int dispatch)
                throws IOException,
                       ServletException

  Description copied from interface: `Handler`
  Handle a request.

  Specified by:
    `handle` in interface `Handler`
  Overrides:
    `handle` in class `HandlerWrapper`
  Parameters:
    `target` - The target of the request - either a URI or a name.
    `request` - The request either as the `Request` object or a wrapper of that request. The `HttpConnection.getCurrentConnection()` method can be used access the Request object if required.
    `response` - The response as the `Response` object or a wrapper of that request. The `HttpConnection.getCurrentConnection()` method can be used access the Response object if required.
    `dispatch` - The dispatch mode: `Handler.REQUEST`, `Handler.FORWARD`, `Handler.INCLUDE`, `Handler.ERROR`
  Throws:
    `IOException`
    `ServletException`

Copyright © 2007 Mort Bay Consulting. All Rights Reserved.