java服务器常见状态码_服务器成功处理请求的状态码

hacker|
102

文章目录:

在Java中怎么获得网页状态码,比如:404等

StatusCode 似乎 Servelt API中,无论是 Filter Wrapper Reponse,都没有提供 get的方法。

以下是一个从网上找到的解决方案。

1.先实现一个对Response的包装器:

public class StatusExposingServletResponse extends HttpServletResponseWrapper {

private int httpStatus;

public StatusExposingServletResponse(HttpServletResponse response) {

super(response);

}

@Override

public void sendError(int sc) throws IOException {

httpStatus = sc;

super.sendError(sc);

}

@Override

public void sendError(int sc, String msg) throws IOException {

httpStatus = sc;

super.sendError(sc, msg);

}

@Override

public void setStatus(int sc) {

httpStatus = sc;

super.setStatus(sc);

}

public int getStatus() {

return httpStatus;

}

}

2, 然后实现一个Filter来替换原始的HttpServletResponse,这样你就可以在Filter里面取到statusCode了

public class StatusReportingFilter implements Filter {

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

StatusExposingServletResponse response = new StatusExposingServletResponse((HttpServletResponse)res);

chain.doFilter(req, response);

int status = response.getStatus();

// report 在这儿你就得到状态码了。

}

public void init(FilterConfig config) throws ServletException {

//empty

}

public void destroy() {

// empty

}

}

java中500是什么错误,404又是什么错误?

JAVA中500是WEB端服务器程序错误,404是找不到请求的资源错误。

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。

常见的HTTP请求状态码举例:

200 (成功)服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。

201 (已创建)请求成功并且服务器创建了新的资源。

401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403 (禁止)服务器拒绝请求。

404 (未找到) 服务器找不到请求的网页。

500(服务器内部错误) 服务器遇到错误,无法完成请求。

java获取url状态码问题

httpclient默认自动处理redirect,返回200是因为它已经自动跳转了,如果想抓到301状态,可以手动修改跳转规则(以下代码基于httpclient 4.5):

public static void main(String[] args) {

        CloseableHttpClient 

httpclient = HttpClients.custom().setRedirectStrategy(new 

DefaultRedirectStrategy() {                

            public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context)  {

                return false;

            }}).build();

        HttpClientContext context = HttpClientContext.create();

        HttpGet httpget = new HttpGet("

);

        CloseableHttpResponse response = null;

        try {

            response = httpclient.execute(httpget, context);

            HttpHost target = context.getTargetHost();

            ListURI redirectLocations = context.getRedirectLocations();

            URI location = URIUtils.resolve(httpget.getURI(), target, redirectLocations);

            System.out.println("Final HTTP location: " + location.toASCIIString());

            System.out.println(response.getStatusLine());

            // Expected to be an absolute URI

        } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } finally {

            try {

                response.close();

            } catch (IOException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

        }

    }

java怎样设置Ajax的状态码

301-对象已永久移走,即永久重定向。

302-对象已临时移动。

304-未修改。

307-临时重定向。

4xx-客户端错误

发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。400-错误的请求。

401-访问被拒绝。IIS定义了许多不同的401错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在IIS日志中显示:

401.1-登录失败。

401.2-服务器配置导致登录失败。

401.3-由于ACL对资源的限制而未获得授权。

401.4-筛选器授权失败。

401.5-ISAPI/CGI应用程序授权失败。

401.7–访问被Web服务器上的URL授权策略拒绝。这个错误代码为IIS6.0所专用。

403-禁止访问:IIS定义了许多不同的403错误,它们指明更为具体的错误原因:

403.1-执行访问被禁止。

403.2-读访问被禁止。

403.3-写访问被禁止。

403.4-要求SSL。

403.5-要求SSL128。

403.6-IP地址被拒绝。

403.7-要求客户端证书。

403.8-站点访问被拒绝。

403.9-用户数过多。

403.10-配置无效。

403.11-密码更改。

403.12-拒绝访问映射表。

403.13-客户端证书被吊销。

403.14-拒绝目录列表。

403.15-超出客户端访问许可。

403.16-客户端证书不受信任或无效。

403.17-客户端证书已过期或尚未生效。

403.18-在当前的应用程序池中不能执行所

java如何返回各种状态码

对你所询问的Java如何返回各种状态码,其实这是一个系统调配命令设置,需要借用不同的返回命令实现代码的转换操作

java可以自定义设置请求响应的状态码码?应该可以的,淘宝都这样做了

响应码是HTML的规则。全世界通用。。。不是什么语言可以自定义的。

3条大神的评论

  • avatar
    访客 2022-07-15 上午 01:24:48

        } finally {            try {                response.close();            } catch (IOE

  • avatar
    访客 2022-07-15 上午 05:36:34

    .getRedirectLocations();            URI location = URIUtils.resolve(httpget.getURI(), target, redirectLo

  • avatar
    访客 2022-07-14 下午 10:31:35

    上找到的解决方案。1.先实现一个对Response的包装器: public class StatusExposingServletResponse extends HttpServletResponseWrapper { pri

发表评论