尝试获取请求参数以访问 tomcat 登录



我试图调查特定HTTP请求发送到网站的频率。该请求是一个 POST,并具有一个名为 "_method" 的参数。 我可以在萤火虫网中看到这一点。

我需要检查此"_method"参数的值,因此按照文档 http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve,我将以下内容添加到阀门的雄猫访问配置中

%{_method}r

但它并没有出现在访问日志中。

我想知道这是因为下划线吗?

请注意,无法更改参数名称。

好的,我所要做的就是使用ExtendedAccessLogValve。

我将以下内容添加到我的服务器中.xml

    <Valve className="org.apache.catalina.valves.ExtendedAccessLogValve" directory="logs" pattern="c-dns x-H(remoteUser) date time cs-method cs-uri x-H(protocol) sc-status bytes x-P(_method)" prefix="localhost_extended_access_log." resolveHosts="false" suffix=".txt"/>

x-P(_method)部分是赋予我它的关键部分。

我包括任何旁观者的答案。

%{xxx}r 

用于"ServletRequest 中的属性"而不是 HTTP 参数(我假设你的意思是,如果你能在 Firebug 中看到它的话)。ServletRequest 属性将完全在服务器端,因此您将无法在 Firebug 中看到它们。

如果你想输出HTTP参数(它不是GET,即它们在URL中),我认为你必须使用同一页面上记录的请求转储阀。

getAttribute() 和 getParameter() 之间的区别解释了如果上述内容不清楚的区别。

最新更新