天天看點

java 擷取request請求要素

java 擷取request請求要素

/*** 

     * get request query string 

     * @param request 

     * @return   byte[] 

     */  

    public byte[] getrequeststr(httpservletrequest request){  

        int contentlength = request.getcontentlength();  

        byte buffer[] = new byte[contentlength];  

        for (int i = 0; i < contentlength;) {  

            try {  

                int readlen = request.getinputstream().read(buffer, i,  

                        contentlength - i);  

                if (readlen == -1) {  

                    break;  

                }  

                i += readlen;  

            } catch (ioexception ioexception) {  

                ioexception.printstacktrace();  

            } finally {  

                // logger.info("json request:" + requestpacket);  

            }  

        }  

        return buffer;  

    }  

 上述方法傳回的是byte數組。

下面的方法直接傳回字元串:

java 擷取request請求要素

     *  

     * @return 

     * @throws unsupportedencodingexception 

    public string getrequeststr(httpservletrequest request) throws unsupportedencodingexception{  

        byte buffer[]=getrequestbytes(request);  

        string charencoding=request.getcharacterencoding();  

        if(charencoding==null){  

            charencoding="utf-8";  

        return new string(buffer,charencoding);  

應用:上述方法一般用于在filter(javax.servlet.filter)中擷取請求參數,進行轉發