【发布时间】:2013-11-15 02:28:03
【问题描述】:
我需要向 tomcat 添加一个 404 处理程序 servlet 以捕获 404 异常(未找到)。这很容易。但无论我做什么,我都无法找出首先传递给 tomcat 的 URL 导致 404(URL + 查询字符串,如果有的话)。
有人有这方面的经验吗?
【问题讨论】:
标签: http-status-code-404 tomcat7 servlets
我需要向 tomcat 添加一个 404 处理程序 servlet 以捕获 404 异常(未找到)。这很容易。但无论我做什么,我都无法找出首先传递给 tomcat 的 URL 导致 404(URL + 查询字符串,如果有的话)。
有人有这方面的经验吗?
【问题讨论】:
标签: http-status-code-404 tomcat7 servlets
您需要添加一个valve 来记录对该特定主机的请求。
有几种方法可以做到这一点,具体取决于您是否有虚拟主机,或者您是否喜欢在$CATALINA_BASE/conf/[engine_name]/[host_name] 下或直接在server.xml 中添加特定配置。
对于大多数 GNU/Linux 发行版,假设 tomcat7,默认(即使用 Catalina 引擎和 localhost 主机)是 /etc/tomcat7/Catalina/localhost。使其适应您的 tomcat 版本、引擎和虚拟主机(以及操作系统,您没有指定一个,所以我假设是 GNU/Linux):
<Host name="localhost" ...>
...
<Valve className="org.apache.catalina.valves.AccessLogValve"
prefix="localhost_access." suffix=".log"
pattern="common"/>
...
</Host>
【讨论】: