當前位置: 首頁>>代碼示例>>Java>>正文


Java HttpServletResponse.SC_MULTIPLE_CHOICES屬性代碼示例

本文整理匯總了Java中javax.servlet.http.HttpServletResponse.SC_MULTIPLE_CHOICES屬性的典型用法代碼示例。如果您正苦於以下問題:Java HttpServletResponse.SC_MULTIPLE_CHOICES屬性的具體用法?Java HttpServletResponse.SC_MULTIPLE_CHOICES怎麽用?Java HttpServletResponse.SC_MULTIPLE_CHOICES使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在javax.servlet.http.HttpServletResponse的用法示例。


在下文中一共展示了HttpServletResponse.SC_MULTIPLE_CHOICES屬性的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: doResponseRedirectOrNotModifiedLogic

protected boolean doResponseRedirectOrNotModifiedLogic(HttpServletRequest servletRequest, HttpServletResponse servletResponse,
        HttpResponse proxyResponse, int statusCode) throws ServletException, IOException {
    // Check if the proxy response is a redirect
    // The following code is adapted from org.tigris.noodle.filters.CheckForRedirect
    if (statusCode >= HttpServletResponse.SC_MULTIPLE_CHOICES /* 300 */
            && statusCode < HttpServletResponse.SC_NOT_MODIFIED /* 304 */) {
        Header locationHeader = proxyResponse.getLastHeader(HttpHeaders.LOCATION);
        if (locationHeader == null) {
            throw new ServletException(
                    "Received status code: " + statusCode + " but no " + HttpHeaders.LOCATION + " header was found in the response");
        }
        // Modify the redirect to go to this proxy servlet rather that the proxied host
        String locStr = rewriteUrlFromResponse(servletRequest, locationHeader.getValue());

        servletResponse.sendRedirect(locStr);
        return true;
    }
    // 304 needs special handling. See:
    // http://www.ics.uci.edu/pub/ietf/http/rfc1945.html#Code304
    // We get a 304 whenever passed an 'If-Modified-Since'
    // header and the data on disk has not changed; server
    // responds w/ a 304 saying I'm not going to send the
    // body because the file has not changed.
    if (statusCode == HttpServletResponse.SC_NOT_MODIFIED) {
        servletResponse.setIntHeader(HttpHeaders.CONTENT_LENGTH, 0);
        servletResponse.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
        return true;
    }
    return false;
}
 
開發者ID:bluecreator,項目名稱:http-agent,代碼行數:30,代碼來源:AgentServlet.java

示例2: sendRedirect

/**
 * Sends a response with one of the 300 series redirection codes.
 * @param code the redirect status code
 * @param location the location to send in <code>Location</code> headers
 * @throws IOException if unable to send the redirect
 */
public void sendRedirect(int code, String location) throws IOException
{
    if ((code < HttpServletResponse.SC_MULTIPLE_CHOICES) || (code >= HttpServletResponse.SC_BAD_REQUEST))
        throw new IllegalArgumentException("Not a 3xx redirect code");
    
    if (isIncluding())
        return;

    if (location == null)
        throw new IllegalArgumentException();

    /*
     *  The new http spec now allows to redirect to relative urls. So we comment
     *  out below section to avoid wrongly prepending http scheme to the url if
     *  GitPlex running with http protocol is exposed to outside as https prococol
     *  via reverse proxy
     */
    
    /*
    if (!URIUtil.hasScheme(location))
    {
        StringBuilder buf = _channel.getRequest().getRootURL();
        if (location.startsWith("/"))
        {
            // absolute in context
            location=URIUtil.canonicalPath(location);
        }
        else
        {
            // relative to request
            String path=_channel.getRequest().getRequestURI();
            String parent=(path.endsWith("/"))?path:URIUtil.parentPath(path);
            location=URIUtil.canonicalPath(URIUtil.addPaths(parent,location));
            if (!location.startsWith("/"))
                buf.append('/');
        }
        
        if(location==null)
            throw new IllegalStateException("path cannot be above root");
        buf.append(location);
        
        location=buf.toString();
    }
    */

    resetBuffer();
    setHeader(HttpHeader.LOCATION, location);
    setStatus(code);
    closeOutput();
}
 
開發者ID:jmfgdev,項目名稱:gitplex-mit,代碼行數:56,代碼來源:Response.java


注:本文中的javax.servlet.http.HttpServletResponse.SC_MULTIPLE_CHOICES屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。