锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品乱码久久久久久V ,久久精品亚洲中文字幕无码麻豆,亚洲日韩精品一区二区三区无码http://www.tkk7.com/zhangriwang/whiteskyzh-cnFri, 09 May 2025 12:53:41 GMTFri, 09 May 2025 12:53:41 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 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 黄网站色视频免费观看45分钟| 亚洲最大福利视频| 国产VA免费精品高清在线| 日韩免费三级电影| 亚洲色大成网站www永久网站| 成年免费大片黄在线观看岛国| 亚洲狠狠ady亚洲精品大秀| 无码日韩精品一区二区三区免费 | 亚洲一区二区视频在线观看| 综合一区自拍亚洲综合图区| 亚洲国产高清精品线久久| eeuss影院免费直达入口| 国产亚洲精品美女久久久| 日韩精品在线免费观看| 7777久久亚洲中文字幕蜜桃| 日本片免费观看一区二区| 国产色在线|亚洲| 国产一级特黄高清免费大片| 一区二区三区在线免费| 亚洲AV永久无码区成人网站| 91九色视频无限观看免费| 国产亚洲精品VA片在线播放| 国产资源免费观看| 中国性猛交xxxxx免费看| 久久亚洲日韩看片无码| 精品久久久久久久免费加勒比| 一级毛片免费不卡| 亚洲人成在线电影| 在线免费观看毛片网站| 在线播放国产不卡免费视频| 亚洲国产成人久久综合一| 香蕉视频在线观看免费国产婷婷| 四虎一区二区成人免费影院网址 | 成全动漫视频在线观看免费高清版下载| 亚洲AV人人澡人人爽人人夜夜 | 国产无遮挡吃胸膜奶免费看| 国产免费牲交视频免费播放 | 亚洲精品国产精品乱码不卞| 日韩午夜理论免费TV影院| 久久亚洲中文字幕无码| 亚洲大片在线观看|