<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-17  評論-6  文章-1  trackbacks-0


    ??? public void doFilter(ServletRequest request, ServletResponse response,
    ??????????? FilterChain chain) throws IOException, ServletException {

    ??????? HttpServletRequest req = (HttpServletRequest) request;

    ??????? int length = req.getContentLength();
    ??????? if (length > 0) {
    ??????????? BufferedRequestWrapper bufferedRequest = new BufferedRequestWrapper(req,length);

    ??????????? InputStream is = bufferedRequest.getInputStream();
    ??????????? byte[] content = new byte[length];
    ???????????
    ??????????? int pad = 0;
    ??????????? while(pad < length){
    ??????????????? pad += is.read(content, pad, length);
    ??????????? }

    ????????????request = bufferedRequest;
    ??????? }
    ??????? chain.doFilter(request, response);??????
    ??? }


    BufferedRequestWrapper .java

    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;

    import javax.servlet.ServletInputStream;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletRequestWrapper;

    public class BufferedRequestWrapper extends HttpServletRequestWrapper {

    ??? ByteArrayInputStream bais;

    ??? BufferedServletInputStream bsis;

    ??? byte[] buffer;

    ??? public BufferedRequestWrapper(HttpServletRequest req,int length) throws IOException {
    ??????? super(req);
    ??????? // Read InputStream and store its content in a buffer.
    ??????? InputStream is = req.getInputStream();
    ??????? buffer = new byte[length];

    ??????? int pad = 0;
    ??????? while(pad < length){
    ??????????? pad += is.read(buffer, pad, length);
    ??????? }
    ??? }

    ??? public ServletInputStream getInputStream() {
    ??????? try {
    ??????????? // Generate a new InputStream by stored buffer
    ??????????? bais = new ByteArrayInputStream(buffer);
    ??????????? // Istantiate a subclass of ServletInputStream
    ??????????? // (Only ServletInputStream or subclasses of it are accepted by the
    ??????????? // servlet engine!)
    ??????????? bsis = new BufferedServletInputStream(bais);
    ??????? } catch (Exception ex) {
    ??????????? ex.printStackTrace();
    ??????? } finally {
    ??????? }
    ??????? return bsis;
    ??? }

    }




    BufferedServletInputStream .java

    import java.io.*;
    import javax.servlet.ServletInputStream;

    /*
    ?Subclass of ServletInputStream needed by the servlet engine.
    ?All inputStream methods are wrapped and are delegated to
    ?the ByteArrayInputStream (obtained as constructor parameter)!
    ?*/
    public class BufferedServletInputStream extends ServletInputStream {

    ??? ByteArrayInputStream bais;

    ??? public BufferedServletInputStream(ByteArrayInputStream bais) {
    ??????? this.bais = bais;
    ??? }

    ??? public int available() {
    ??????? return bais.available();
    ??? }

    ??? public int read() {
    ??????? return bais.read();
    ??? }

    ??? public int read(byte[] buf, int off, int len) {
    ??????? return bais.read(buf, off, len);
    ??? }

    }

    posted on 2006-10-25 17:01 小鐵匠 閱讀(2739) 評論(1)  編輯  收藏 所屬分類: java

    評論:
    # re: filter得到request的body/content[未登錄] 2015-04-13 17:55 |
    額  回復  更多評論
      
    主站蜘蛛池模板: a成人毛片免费观看| 亚洲日本视频在线观看| 亚洲成av人片在线观看天堂无码| 麻豆国产人免费人成免费视频| 亚洲一区二区免费视频| 四虎在线免费视频| 四虎最新永久免费视频| 亚洲欧洲免费无码| 成人免费无码大片A毛片抽搐色欲 成人免费无码大片a毛片 | 中文字幕亚洲免费无线观看日本| 大地影院MV在线观看视频免费 | 亚洲夂夂婷婷色拍WW47 | 久久精品国产亚洲7777| 国产成人精品久久亚洲| 久久精品国产亚洲5555| 亚洲va久久久噜噜噜久久男同| 亚洲va在线va天堂va不卡下载 | 免费观看日本污污ww网站一区| 国产免费啪嗒啪嗒视频看看| 亚洲第一区在线观看| 亚洲一本大道无码av天堂| 亚洲午夜国产精品无码老牛影视| 亚洲国产精品乱码一区二区| 1区1区3区4区产品亚洲| 亚洲午夜一区二区电影院| 亚洲精品美女久久7777777| 精品一区二区三区无码免费直播 | 亚洲字幕AV一区二区三区四区| 亚洲精品国产av成拍色拍| 羞羞漫画小舞被黄漫免费| 亚洲精品偷拍视频免费观看| 日韩在线不卡免费视频一区| 一级毛片免费不卡在线| 猫咪免费人成网站在线观看| 女人18毛片水真多免费看| 免费萌白酱国产一区二区| 在线亚洲午夜理论AV大片| 亚洲永久中文字幕在线| 亚洲AV日韩AV无码污污网站| 久久九九久精品国产免费直播| 91精品国产免费入口|