转载自:https://blog.csdn.net/qq_30121245/article/details/52861935

1) 在项目中加入相应的包和类,加载那里无所谓,只要web.xml配置正确即可

package filters;

import java.io.IOException
import java.util.Enumeration;

import javax.servlet.*;

public final class PostDataDumperFilter implements Filter {

private FilterConfig filterConfig = null;

public void destroy() { 
this.filterConfig = null; 
}

public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOExceptionServletException { 
if (filterConfig == null) 
return;

Enumeration names = request.getParameterNames(); 
StringBuffer output=new StringBuffer(); 
while (names.hasMoreElements()) { 
String name = (String) names.nextElement(); 
output.append(name+"="); 
String values[] = request.getParameterValues(name); 
for (int i = 0; i < values.length; i++) { 
if (i > 0) output.append("' "); 
output.append(values[i]); 

if(names.hasMoreElements()) output.append("&"); 

request.setAttribute("post", output); 
chain.doFilter(request, response); 
}

public void init(FilterConfig filterConfig) throws ServletException { 
this.filterConfig = filterConfig; 

}

2) 配置web.xm,一般在路径 main/webapps/WEB-INF/web.xml: 
<filter> 
<filter-name>post-data-dumper-filter</filter-name> 
<filter-class>filters.PostDataDumperFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>post-data-dumper-filter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping>

3) now you have the attribute postdata for each request and you can easily log it in access valve, for example:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
                prefix="localhost_access_log." suffix=".txt" 
                pattern='%h %p %H %l %u %t "%r" params={%{post}r} %s %bbytes %Dms' resolveHosts="false"/>

转发:tomcat的acess_log打印post请求参数,分析日志的更多相关文章

  1. tomcat源码---->request的请求参数分析

    当contentType为application/json的时候,在servlet中通过request.getParameter得到的数据为空.今天我们就java的请求,分析一下request得到参数 ...

  2. 关于Tomcat服务器接收到的请求参数乱码的问题

    我们在编写的Controller 等服务器端的代码时,接受到的请求参数经常会乱码. 解决:在Tomcat 的安装目录下找到conf 文件夹下的server.xml文件用记事本打开. 找到 <Co ...

  3. web基础---->request的请求参数分析

    当contentType为application/json的时候,在servlet中通过request.getParameter得到的数据为空.今天我们就java的请求,分析一下request得到参数 ...

  4. nginx 日志打印post请求参数

    在日志格式后面加上 $request_body 配置信息 log_format main '$remote_addr - $remote_user [$time_local] "$reque ...

  5. tomcat与jetty接收请求参数的区别

    [场景] 服务端点对点通知.A服务发起请求B服务,B同步返回接收成功:然后B开始处理逻辑:B处理完成后异步通知给A:A接收请求并处理,同步回写响应给B:完成. [先上代码] 服务端(接收端)代码: i ...

  6. ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段

      ServletRequest 基本概念 JavaWeb中的 "Request"对象  实际为   HttpServletRequest  或者  ServletRequest, ...

  7. Servlet、Tomcat访问(access)日志配置、记录Post请求参数

    一.运行环境: Maven:3.5.2(点击下载) ,下载页 Tomcat:8.5.29(点击下载) ,下载页 JDK:jdk1.7.0_80(点击下载) ,下载页 MavenDependency: ...

  8. tomcat访问(access)日志配置、记录Post请求参数(转)

    一.配置与说明 tomcat访问日志格式配置,在config/server.xml里Host标签下加上 <Valve className="org.apache.catalina.va ...

  9. tomcat访问(access)日志配置、记录Post请求参数

    tomcat访问(access)日志配置.记录Post请求参数 一.配置与说明 tomcat访问日志格式配置,在config/server.xml里Host标签下加上 <Valve classN ...

随机推荐

  1. PICE(4):MongoDBStreaming - gRPC Protobuf conversion

    前两篇我们介绍了JDBC和Cassandra的gRPC streaming实现.相对MongoDB来说,JDBC和Cassandra支持字符类型的query语句SQL,CQL,所以把query指令转换 ...

  2. docker:(2)通过Dockerfile构建镜像并发布web项目

    上一篇讲解了docker的基本使用 http://www.cnblogs.com/xiaochangwei/p/8204511.html 虽然通过修改获取到的镜像可以达到使用目的,但是多操作几次就会发 ...

  3. web自动化测试---xpath方式定位页面元素

    在实际应用中,如果存在多个相同元素,包括属性相同时,一般会选用这种方式,当然如果定位属性唯一的话,也是可以使用的,不过这种方式没有像id,tag,name等容易理解,下面讲下xpath定位元素的方法 ...

  4. String,StringBuffer与StringBuilder的理解

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简 要的说, String 类型和 StringBuffer 类型的主要性 ...

  5. 关于JS的一些东西

    1.声明Js代码域    1.在head标签中使用script声明js代码域    <head>        ....        <!--声明js代码域-->       ...

  6. 如何在IDEA里给大数据项目导入该项目的相关源码(博主推荐)(类似eclipse里同一个workspace下单个子项目存在)(图文详解)

    不多说,直接上干货! 如果在一个界面里,可以是单个项目 注意:本文是以gradle项目的方式来做的! 如何在IDEA里正确导入从Github上下载的Gradle项目(含相关源码)(博主推荐)(图文详解 ...

  7. IE不支持 Promise 解决办法

    引入 <script src = "https://cdn.polyfill.io/v2/polyfill.min.js"></script> 或 < ...

  8. UML介绍--用例图

    用例图定义:由参与者(Actor).用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图称为用例图. 用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模 ...

  9. Shell脚本 | 性能测试之CPU占有率

    Android 是一个基于 Linux 内核的移动操作系统,Linux 的 CPU 占有率的计算方式也可以应用到 Android App 上. 今天分享的这个脚本的功能,是在多核情况下计算进程的 CP ...

  10. 采用完成端口(IOCP)实现高性能网络服务器(Windows c++版)

    前言 TCP\IP已成为业界通讯标准.现在越来越多的程序需要联网.网络系统分为服务端和客户端,也就是c\s模式(client \ server).client一般有一个或少数几个连接:server则需 ...