StatusExposingServletResponse.java 1.05 KB
package com.cjs.cms.util.web;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

/**
 * HttpServletResponse状态包装器,用于解决HttpServletResponse无法获取响应 Http Status的问题。
 * <br /><b>由于接口的原因,只能获取到请求失败时的状态</b>
 * 
 * @author tongyufu
 */
public class StatusExposingServletResponse extends HttpServletResponseWrapper {

    private int httpStatus;

    public StatusExposingServletResponse(HttpServletResponse response) {
        super(response);
    }

    @Override
    public void sendError(int sc, String msg) throws IOException {
        this.httpStatus = sc;
        super.sendError(sc, msg);
    }

    @Override
    public void sendError(int sc) throws IOException {
        this.httpStatus = sc;
        super.sendError(sc);
    }

    @Override
    public void setStatus(int sc) {
        this.httpStatus = sc;
        super.setStatus(sc);
    }

    public int getHttpStatus() {
        return httpStatus;
    }

}