锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产亚洲av成人,免费在线观看亚洲,久久久久亚洲精品无码网址http://www.tkk7.com/zhangriwang/whiteskyzh-cnFri, 09 May 2025 12:48:15 GMTFri, 09 May 2025 12:48:15 GMT60springboot jackson鍏ㄥ眬閰嶇疆http://www.tkk7.com/zhangriwang/archive/2021/09/08/435969.htmlwhiteskywhiteskyWed, 08 Sep 2021 05:46:00 GMThttp://www.tkk7.com/zhangriwang/archive/2021/09/08/435969.htmlhttp://www.tkk7.com/zhangriwang/comments/435969.htmlhttp://www.tkk7.com/zhangriwang/archive/2021/09/08/435969.html#Feedback0http://www.tkk7.com/zhangriwang/comments/commentRss/435969.htmlhttp://www.tkk7.com/zhangriwang/services/trackbacks/435969.html
 1 @Configuration
 2 public class JsonConfig {
 3 
 4     @Bean
 5     public NumberFormatCustomizer getNumberFormatCustomizer() {
 6         // 閰嶇疆jackson鍏ㄥ眬嫻偣鏁版牸寮忓寲杈撳嚭
 7         return new NumberFormatCustomizer();
 8     }
 9 
10     static class NumberFormatCustomizer implements Jackson2ObjectMapperBuilderCustomizer {
11 
12         @Override
13         public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
14             // 閰嶇疆json搴忓垪鍖?br />15             // long綾誨瀷杈撳嚭瀛楃涓?br />16             // double鍜孊igDecimal淇濈暀涓や綅灝忔暟鎴柇杈撳嚭瀛楃涓?/span>
17             jacksonObjectMapperBuilder
18                     .serializerByType(Long.classnew StringSerializer())
19                     .serializerByType(Long.TYPE, new StringSerializer())
20                     .serializerByType(Double.classnew NumberSerializer())
21                     .serializerByType(Double.TYPE, new NumberSerializer())
22                     .serializerByType(BigDecimal.classnew NumberSerializer());
23         }
24     }
25 
26     public static class NumberSerializer extends JsonSerializer<Number> {
27 
28         private NumberFormat numberFormat;
29         public NumberSerializer() {
30             this.numberFormat = NumberFormat.getInstance();
31             // 鏈澶氫袱浣嶅皬鏁?/span>
32             this.numberFormat.setMaximumFractionDigits(2);
33             // 鎴柇
34             this.numberFormat.setRoundingMode(RoundingMode.FLOOR);
35         }
36 
37         @Override
38         public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
39             if (value != null) {
40                 gen.writeString(this.numberFormat.format(value));
41             }
42         }
43     }
44 }



whitesky 2021-09-08 13:46 鍙戣〃璇勮
]]>
spring mvc 鏂囦歡嫻?/title><link>http://www.tkk7.com/zhangriwang/archive/2016/11/04/431954.html</link><dc:creator>whitesky</dc:creator><author>whitesky</author><pubDate>Fri, 04 Nov 2016 10:10:00 GMT</pubDate><guid>http://www.tkk7.com/zhangriwang/archive/2016/11/04/431954.html</guid><wfw:comment>http://www.tkk7.com/zhangriwang/comments/431954.html</wfw:comment><comments>http://www.tkk7.com/zhangriwang/archive/2016/11/04/431954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/zhangriwang/comments/commentRss/431954.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zhangriwang/services/trackbacks/431954.html</trackback:ping><description><![CDATA[<a target="_blank" title="闂寮曠敤">闂寮曠敤</a> 浠ュ強 <a target="_blank">https://github.com/davinkevin/Podcast-Server/blob/d927d9b8cb9ea1268af74316cd20b7192ca92da7/src/main/java/lan/dk/podcastserver/utils/multipart/MultipartFileSender.java</a><br /> <br />榪欎袱涓柟娉曞彲浠ヨВ鍐矵5涓?lt;vedio>鍜?lt;audio>寮曠敤鏈湴鏂囦歡闂,浣嗗悓鏃朵篃鍙兘浼氬鑷?br /> <div> <div>ClientAbortException:  java.net.SocketException: Software caused connection abort: socket write error<br /><br />榪欓棶棰樺簲璇ユ槸鐢變簬嫻忚鍣ㄦ湭鑷姩璇嗗埆鍑烘枃浠剁被鍨嬭屽彂鍑虹殑涓涓被浼煎梾鎺㈢殑璇鋒眰,騫朵笖浼氶┈涓婇噸鏂板彂閫佷竴涓柊鐨勮姹傚茍闄勫甫涓婃枃浠剁被鍨?..</div> </div> <a target="_blank" title="闂寮曠敤"> <div></div> </a><img src ="http://www.tkk7.com/zhangriwang/aggbug/431954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zhangriwang/" target="_blank">whitesky</a> 2016-11-04 18:10 <a href="http://www.tkk7.com/zhangriwang/archive/2016/11/04/431954.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>berkeleydbhttp://www.tkk7.com/zhangriwang/archive/2013/03/06/396133.htmlwhiteskywhiteskyWed, 06 Mar 2013 09:58:00 GMThttp://www.tkk7.com/zhangriwang/archive/2013/03/06/396133.htmlhttp://www.tkk7.com/zhangriwang/comments/396133.htmlhttp://www.tkk7.com/zhangriwang/archive/2013/03/06/396133.html#Feedback0http://www.tkk7.com/zhangriwang/comments/commentRss/396133.htmlhttp://www.tkk7.com/zhangriwang/services/trackbacks/396133.html  1 public class BerkeleyDB {  2   3  &nbs...  闃呰鍏ㄦ枃

whitesky 2013-03-06 17:58 鍙戣〃璇勮
]]>
TOMCAT 鍏ㄥ眬榪囨護http://www.tkk7.com/zhangriwang/archive/2013/03/01/395944.htmlwhiteskywhiteskyFri, 01 Mar 2013 09:33:00 GMThttp://www.tkk7.com/zhangriwang/archive/2013/03/01/395944.htmlhttp://www.tkk7.com/zhangriwang/comments/395944.htmlhttp://www.tkk7.com/zhangriwang/archive/2013/03/01/395944.html#Feedback0http://www.tkk7.com/zhangriwang/comments/commentRss/395944.htmlhttp://www.tkk7.com/zhangriwang/services/trackbacks/395944.htmlimport java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.concurrent.TimeUnit;

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

public class MyHttpRequestWrapper extends HttpServletRequestWrapper {
    byte[] buffer = null;
    private ServletInputStream in = null;
    private BufferedReader reader = null;
    private boolean isMultipart = false;
    private String contentType = null;

    public MyHttpRequestWrapper(HttpServletRequest request) throws IOException {
        super(request);
        contentType = request.getHeader("Content-Type");
        if (contentType != null
                && contentType.startsWith("multipart/form-data")) {
            isMultipart = true;// fileupload
            readInputStream(request);
            // read end and wrapper buffer
            ByteArrayInputStream inputStream = new ByteArrayInputStream(buffer);// real
                                                                                
// servletInputStream
            in = new WrapperServletInputstream(inputStream);
            reader = new BufferedReader(new InputStreamReader(inputStream));
        }
    }

    /**
     * 璇誨彇request嫻佸埌buffer涓?br />      * 
     * 
@param request
     *            HttpServletRequest
     * 
@throws IOException
     *             if throws IOException
     
*/
    private void readInputStream(HttpServletRequest request) throws IOException {
        int contentLength = request.getContentLength();
        ServletInputStream sis = request.getInputStream();
        int maxReadSize = 1024;// buffer size
        buffer = new byte[contentLength];
        int end = 0;
        int len = 0;
        while (end <= contentLength) {
            len = sis.read(buffer, end, maxReadSize);
            if (len == -1) {
                end = contentLength;
                break;
            }
            end += len;
            try {
                TimeUnit.MILLISECONDS.sleep(0);// 杞
            } catch (InterruptedException e) {
                // ignroe
            }
        }
        sis.close();// closed?
    }

    /**
     * if isMultipart return request inputstream to byte[]
     * 
     * 
@return default null
     
*/
    public byte[] getRequestData() {
        return buffer;
    }

    // 閲嶈澆鐖剁被鑾峰彇inputStream鐨勬柟娉?/span>
    @Override
    public ServletInputStream getInputStream() throws IOException {
        return isMultipart ? in : super.getInputStream();
    }

    // 閲嶈澆鐖剁被鑾峰彇reader鐨勬柟娉?/span>
    @Override
    public BufferedReader getReader() throws IOException {
        return isMultipart ? reader : super.getReader();
    }

    /**
     * 鍒ゆ柇姝ゆ璇鋒眰鏄惁鏄笂浼犳枃浠?br />      * 
     * 
@return
     
*/
    public boolean isMultipart() {
        return isMultipart;
    }

    public String getRequestInfo() {
        Enumeration parameterNames = getParameterNames();
        StringBuilder parameterInfo = new StringBuilder();
        while (parameterNames.hasMoreElements()) {
            String name = parameterNames.nextElement().toString();
            String[] parameters = getParameterValues(name);
            parameterInfo.append(name).append(":[");
            for (String str : parameters) {
                parameterInfo.append(str).append(",");
            }
            if (parameters.length > 0) {
                parameterInfo.deleteCharAt(parameterInfo.length() - 1);
            }
            parameterInfo.append("]\n");
        }
        Enumeration headerNames = getHeaderNames();
        StringBuilder headerInfo = new StringBuilder();
        while (headerNames.hasMoreElements()) {
            String name = headerNames.nextElement().toString();
            Enumeration headers = getHeaders(name);
            headerInfo.append(name).append(":");
            while (headers.hasMoreElements()) {
                headerInfo.append(headers.nextElement()).append(" ");
            }
            headerInfo.append("\n");
        }
        StringBuilder cookies = new StringBuilder();
        // for (int i = 0;i<getCookies().length;i++) {
        
// Cookie cookie = getCookies()[i];
        
// if(cookie==null){
        
// continue;
        
// }
        
// cookies.append(cookie.getName()).append(":").append(
        
// cookie.getValue()).append("\n");
        
// }
        StringBuilder requestInfo = new StringBuilder().append(parameterInfo)
                .append(headerInfo).append(cookies);
        return requestInfo.toString();
    }

    class WrapperServletInputstream extends ServletInputStream {
        private InputStream in = null;

        public WrapperServletInputstream(InputStream in) throws IOException {
            this.in = in;
        }

        @Override
        public int read() throws IOException {
            int read = in.read();
            return read;
        }

        @Override
        public synchronized void reset() throws IOException {
            in.reset();
            super.reset();
        }
    }

}import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

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

public class MyHttpResponseWrapper extends HttpServletResponseWrapper {
    private ByteArrayOutputStream buffer = null;
    private ServletOutputStream out = null;
    private PrintWriter writer = null;
    private boolean usingStream = false;
    private boolean usingWriter = false;

    public MyHttpResponseWrapper(HttpServletResponse resp) throws IOException {
        super(resp);
        buffer = new ByteArrayOutputStream();// 鐪熸瀛樺偍鏁版嵁鐨勬祦
        out = new WapperedOutputStream(buffer);
        writer = new PrintWriter(new OutputStreamWriter(buffer, "UTF-8"));
    }
    // 閲嶈澆鐖剁被鑾峰彇outputstream鐨勬柟娉?/span>
    @Override
    public ServletOutputStream getOutputStream() throws IOException {
        usingStream = true;
        return out;
    }
    // 閲嶈澆鐖剁被鑾峰彇writer鐨勬柟娉?/span>
    @Override
    public PrintWriter getWriter() throws UnsupportedEncodingException {
        usingWriter = true
        return writer;
    }
    // 閲嶈澆鐖剁被鑾峰彇flushBuffer鐨勬柟娉?/span>
    @Override
    public void flushBuffer() throws IOException {
        if (out != null) {
            out.flush();
        }
        if (writer != null) {
            writer.flush();
        }
    }
    @Override
    public void reset() {
        buffer.reset();
    }
    public byte[] getResponseData() throws IOException {
        // 灝唎ut銆亀riter涓殑鏁版嵁寮哄埗杈撳嚭鍒癢apperedResponse鐨刡uffer閲岄潰錛屽惁鍒欏彇涓嶅埌鏁版嵁
        flushBuffer();
        return buffer.toByteArray();
    }

    // 鍐呴儴綾伙紝瀵筍ervletOutputStream榪涜鍖呰
    private class WapperedOutputStream extends ServletOutputStream {
        private ByteArrayOutputStream bos = null;
        public WapperedOutputStream(ByteArrayOutputStream stream)
                throws IOException {
            bos = stream;
        }
        @Override
        public void write(int b) throws IOException {
            bos.write(b);
        }
    }

    public boolean isUsingStream() {
        return usingStream;
    }
    public boolean isUsingWriter() {
        return usingWriter;
    }

}// --------鑾峰彇璇鋒眰鍐呭------------------
        MyHttpRequestWrapper httpRequestWrapper = new MyHttpRequestWrapper(
                request);// 鑾峰彇request璇鋒眰鍐呭
        MyHttpResponseWrapper httpResponseWrapper = new MyHttpResponseWrapper(
                response);// 瑁呴グHttpServletRequest
        boolean passResponse = true;// 鏄惁閫氳繃鍝嶅簲,榛樿鏄?/span>
        chain.doFilter(httpRequestWrapper, httpResponseWrapper);
        String encode = httpRequestWrapper.getCharacterEncoding();
        encode = encode == null ? Constant.default_charset : encode;
        String request_content = null;
        if (httpRequestWrapper.isMultipart()) {// 鏂囦歡涓婁紶鍐呭涓篵yte[]
            request_content = new String(httpRequestWrapper.getRequestData(),
                    encode);
        } else {// 鏅氫笂浼犲唴瀹?/span>
            request_content = httpRequestWrapper.getRequestInfo();
            // System.out.println("鏅氫笂浼犲唴瀹?"+request_content);
        }
        passRequest = !checkHtml.check_html(fullURL, request_content);
        if (passRequest) {
            System.out.println("passRequest:" + fullURL);
        } else {
            System.out.println("request contain keywords:" + fullURL);
            // sendErrorPage(httpRequestWrapper, response);//涓嶈漿璺?nbsp;璁板綍鏃ュ織鍒版暟鎹簱灝卞彲浠ヤ簡
            popupMessage(httpRequestWrapper, httpResponseWrapper);
            return;
        }
        byte[] response_data = httpResponseWrapper.getResponseData();
        if (httpResponseWrapper.isUsingWriter()) {
            response_data = new String(response_data, "UTF-8")
                    .getBytes(httpResponseWrapper.getCharacterEncoding());
        }
        String response_content = new String(response_data, httpResponseWrapper
                .getCharacterEncoding());
        passResponse = !checkHtml.check_html(fullURL, response_content);
        if (passResponse) {
            System.out.println("passResponse:" + fullURL);
            OutputStream out = response.getOutputStream();// 浜岃繘鍒跺鐞嗘墍鏈夌被鍨?/span>
            out.write(response_data);
            out.close();
        } else {
            System.out.println("can't passResponse:" + fullURL);
            sendErrorPage(httpRequestWrapper,
                    (HttpServletResponse) httpResponseWrapper.getResponse());
        } 
鍦?TOMCAT_HOME/conf/web.xml閰嶇疆涓婇潰鐨刦ilter,瀹屼簡嫻嬭瘯浜嗕笅錛屼笂浼犳枃浠跺鐞嗚秴榪?6M鏂囦歡鏃訛紝鏂板緩buffer鏁扮粍鍙兘浼氭姤outofmemery閿欒



whitesky 2013-03-01 17:33 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 久久免费视频观看| 日韩免费无码一区二区视频| 亚洲精品无码日韩国产不卡?V| 亚洲熟女乱色一区二区三区| 成人女人A级毛片免费软件 | 亚洲网站在线免费观看| 亚洲情A成黄在线观看动漫软件| a拍拍男女免费看全片| 亚洲美女aⅴ久久久91| 99久久免费国产香蕉麻豆| 亚洲另类精品xxxx人妖| 国产免费久久精品99re丫y| 亚洲中文字幕无码av| 永久免费bbbbbb视频| 美女黄频免费网站| 亚洲综合久久夜AV | 国产婷婷成人久久Av免费高清| 亚洲成人在线网站| 一个人免费高清在线观看| 亚洲av无码成人精品国产| 亚洲人成色77777在线观看大| www一区二区www免费| 亚洲一区影音先锋色资源| 免费人成在线视频| 男人j进女人p免费视频| 亚洲A∨无码一区二区三区| 一二三四在线观看免费高清中文在线观看| ASS亚洲熟妇毛茸茸PICS| 青青草无码免费一二三区| 亚洲午夜电影在线观看高清| 日韩免费视频网站| 中文字幕无线码中文字幕免费| 1区1区3区4区产品亚洲| 国产精品嫩草影院免费| 国产免费无码一区二区| 色老板亚洲视频免在线观| 久久久久亚洲av成人无码电影| 亚洲免费中文字幕| 一级毛片免费在线观看网站| 国产乱子伦精品免费女 | 99视频在线观看免费|