package org.jboss.resteasy.plugins.providers.html; import org.jboss.resteasy.util.HttpHeaderNames; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response.Status; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class Redirect implements Renderable { private URI path; public Redirect(URI path) { this.path = path; } /** * @param path * must be a valid URI */ public Redirect(String path) { try { this.path = new URI(path); } catch (URISyntaxException ex) { throw new RuntimeException(ex); } } public URI getPath() { return this.path; } public void render(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, WebApplicationException { response.setStatus(Status.SEE_OTHER.getStatusCode()); response.setHeader(HttpHeaderNames.LOCATION, this.path.toString()); } }