⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requestdumpervalve.java

📁 valvae的方法实现类,有效处理较严
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
          bReader = ((HttpServletRequest) hrequest).getReader();          smp = getSourceMessageProcessor();          Enumeration enumeration = ((HttpServletRequest) hrequest).                                    getHeaderNames();          requestMap = new LinkedHashMap();          while (enumeration.hasMoreElements()) {              String name = (String) enumeration.nextElement();              String value = ((HttpServletRequest) hrequest).getHeader(name);              requestMap.put(name, value);          }          requestSM.setMessageHeader(requestMap);          requestSM.setCreateTime(TimeZoneUtil.getDefaultDate());          /**          ByteArrayOutputStream baos = new ByteArrayOutputStream();          int i = -1;          System.out.println("bReader.markSupported():"+bReader.markSupported());          bReader.mark(1024*1024);          while ((i = bReader.read()) != -1) {              baos.write(i);          }          bReader.reset();          System.out.println("request deal befor.");          smp.dealSourceMessage(map, null,1,0);           System.out.println("request deal after.");          baos.close();**/      }catch(Exception ex){          ex.printStackTrace();          log("RequestDumperValve invokeECS Exception, the message is "+ex);      }finally{          if(bReader!=null){              bReader.reset();          }      }       // Perform the request       context.invokeNext(request, response);      try{          String[] enumeration_res = hresponse.getHeaderNames();          Map map = new LinkedHashMap();          for (int i=0;i<enumeration_res.length;i++) {              String name = enumeration_res[i];              String value = hresponse.getHeader(name);              map.put(name, value);          }          String message=hresponse.getMessage();          smp = getSourceMessageProcessor();          SourceMessage responseSM=new SourceMessage();          responseSM.setMessageHeader(map);          responseSM.setCreateTime(TimeZoneUtil.getDefaultDate());           if(message!=null){                responseSM.setContent(message.getBytes());                smp.dealSourceMessage(requestSM,responseSM, hresponse.getStatus());           }           smp.dealSourceMessage(requestSM,responseSM, hresponse.getStatus());      }catch(Exception ex){          ex.printStackTrace();          log("RequestDumperValve invokeECS Exception, the message is "+ex);      }    }    /**     * Log the interesting request parameters, invoke the next Valve in the     * sequence, and log the interesting response parameters.     *     * @param request The servlet request to be processed     * @param response The servlet response to be created     * @param context The valve context used to invoke the next valve     *  in the current processing pipeline     *     * @exception IOException if an input/output error occurs     * @exception ServletException if a servlet error occurs     */    public void invoke(Request request, Response response,                       ValveContext context)        throws IOException, ServletException {        // Skip logging for non-HTTP requests and responses        if (!(request instanceof HttpRequest) ||            !(response instanceof HttpResponse)) {            context.invokeNext(request, response);            return;        }        HttpRequest hrequest = (HttpRequest) request;        HttpResponse hresponse = (HttpResponse) response;        HttpServletRequest hreq =            (HttpServletRequest) hrequest.getRequest();        HttpServletResponse hres =            (HttpServletResponse) hresponse.getResponse();        // Log pre-service information        if("/ECSWeb".equalsIgnoreCase(hreq.getContextPath())){            if(this.isSourceMessageRecord()){                invokeECS(request,response,context);                return ;            }        }        log("REQUEST URI       =" + hreq.getRequestURI());        log("          authType=" + hreq.getAuthType());        log(" characterEncoding=" + hreq.getCharacterEncoding());        log("     contentLength=" + hreq.getContentLength());        log("       contentType=" + hreq.getContentType());        log("       contextPath=" + hreq.getContextPath());        Cookie cookies[] = hreq.getCookies();        if (cookies != null) {            for (int i = 0; i < cookies.length; i++)                log("            cookie=" + cookies[i].getName() + "=" +                    cookies[i].getValue());        }        Enumeration hnames = hreq.getHeaderNames();        while (hnames.hasMoreElements()) {            String hname = (String) hnames.nextElement();            Enumeration hvalues = hreq.getHeaders(hname);            while (hvalues.hasMoreElements()) {                String hvalue = (String) hvalues.nextElement();                log("            header=" + hname + "=" + hvalue);            }        }        log("            locale=" + hreq.getLocale());        log("            method=" + hreq.getMethod());        Enumeration pnames = hreq.getParameterNames();        while (pnames.hasMoreElements()) {            String pname = (String) pnames.nextElement();            String pvalues[] = hreq.getParameterValues(pname);            StringBuffer result = new StringBuffer(pname);            result.append('=');            for (int i = 0; i < pvalues.length; i++) {                if (i > 0)                    result.append(", ");                result.append(pvalues[i]);            }            log("         parameter=" + result.toString());        }        log("          pathInfo=" + hreq.getPathInfo());        log("          protocol=" + hreq.getProtocol());        log("       queryString=" + hreq.getQueryString());        log("        remoteAddr=" + hreq.getRemoteAddr());        log("        remoteHost=" + hreq.getRemoteHost());        log("        remoteUser=" + hreq.getRemoteUser());        log("requestedSessionId=" + hreq.getRequestedSessionId());        log("            scheme=" + hreq.getScheme());        log("        serverName=" + hreq.getServerName());        log("        serverPort=" + hreq.getServerPort());        log("       servletPath=" + hreq.getServletPath());        log("          isSecure=" + hreq.isSecure());        log("---------------------------------------------------------------");        // Perform the request        context.invokeNext(request, response);        // Log post-service information        log("---------------------------------------------------------------");        log("          authType=" + hreq.getAuthType());        log("     contentLength=" + hresponse.getContentLength());        log("       contentType=" + hresponse.getContentType());        Cookie rcookies[] = hresponse.getCookies();        for (int i = 0; i < rcookies.length; i++) {            log("            cookie=" + rcookies[i].getName() + "=" +                rcookies[i].getValue() + "; domain=" +                rcookies[i].getDomain() + "; path=" + rcookies[i].getPath());        }        String rhnames[] = hresponse.getHeaderNames();        for (int i = 0; i < rhnames.length; i++) {            String rhvalues[] = hresponse.getHeaderValues(rhnames[i]);            for (int j = 0; j < rhvalues.length; j++)                log("            header=" + rhnames[i] + "=" + rhvalues[j]);        }        log("           message=" + hresponse.getMessage());        log("        remoteUser=" + hreq.getRemoteUser());        log("            status=" + hresponse.getStatus());        log("===============================================================");    }    /**     * Return a String rendering of this object.     */    public String toString() {        StringBuffer sb = new StringBuffer("RequestDumperValve[");        if (container != null)            sb.append(container.getName());        sb.append("]");        return (sb.toString());    }    // ------------------------------------------------------ Protected Methods    /**     * Log a message on the Logger associated with our Container (if any).     *     * @param message Message to be logged     */    protected void log(String message) {        Logger logger = container.getLogger();        if (logger != null)            logger.log(this.toString() + ": " + message);        else            System.out.println(this.toString() + ": " + message);    }    /**     * Log a message on the Logger associated with our Container (if any).     *     * @param message Message to be logged     * @param throwable Associated exception     */    protected void log(String message, Throwable throwable) {        Logger logger = container.getLogger();        if (logger != null)            logger.log(this.toString() + ": " + message, throwable);        else {            System.out.println(this.toString() + ": " + message);            throwable.printStackTrace(System.out);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -