【问题标题】:Tomcat 404 Handler [duplicate]Tomcat 404 处理程序 [重复]
【发布时间】:2013-11-15 02:28:03
【问题描述】:

我需要向 tomcat 添加一个 404 处理程序 servlet 以捕获 404 异常(未找到)。这很容易。但无论我做什么,我都无法找出首先传递给 tomcat 的 URL 导致 404(URL + 查询字符串,如果有的话)。

有人有这方面的经验吗?

【问题讨论】:

    标签: http-status-code-404 tomcat7 servlets


    【解决方案1】:

    您需要添加一个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>
    

    【讨论】:

    • 您的建议适用于为错误的 URL 创建日志条目。问题是如何获取 404 servlet 中的 URL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2010-10-17
    • 2013-04-26
    • 2021-09-22
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多