1 // 2 // ======================================================================== 3 // Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd. 4 // ------------------------------------------------------------------------ 5 // All rights reserved. This program and the accompanying materials 6 // are made available under the terms of the Eclipse Public License v1.0 7 // and Apache License v2.0 which accompanies this distribution. 8 // 9 // The Eclipse Public License is available at 10 // http://www.eclipse.org/legal/epl-v10.html 11 // 12 // The Apache License v2.0 is available at 13 // http://www.opensource.org/licenses/apache2.0.php 14 // 15 // You may elect to redistribute this code under either of these licenses. 16 // ======================================================================== 17 // 18 19 package org.eclipse.jetty.rewrite.handler; 20 21 import java.io.IOException; 22 23 import javax.servlet.http.HttpServletRequest; 24 import javax.servlet.http.HttpServletResponse; 25 26 /** 27 * Redirects the response whenever the rule finds a match. 28 */ 29 public class RedirectPatternRule extends PatternRule 30 { 31 private String _location; 32 33 /* ------------------------------------------------------------ */ 34 public RedirectPatternRule() 35 { 36 _handling = true; 37 _terminating = true; 38 } 39 40 /* ------------------------------------------------------------ */ 41 /** 42 * Sets the redirect location. 43 * 44 * @param value the location to redirect. 45 */ 46 public void setLocation(String value) 47 { 48 _location = value; 49 } 50 51 /* ------------------------------------------------------------ */ 52 /* 53 * (non-Javadoc) 54 * @see org.eclipse.jetty.server.server.handler.rules.RuleBase#apply(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) 55 */ 56 @Override 57 public String apply(String target, HttpServletRequest request, HttpServletResponse response) throws IOException 58 { 59 response.sendRedirect(response.encodeRedirectURL(_location)); 60 return target; 61 } 62 63 /* ------------------------------------------------------------ */ 64 /** 65 * Returns the redirect location. 66 */ 67 @Override 68 public String toString() 69 { 70 return super.toString()+"["+_location+"]"; 71 } 72 }