天天看點

Tomcat全局自定義配置400、404、500頁面

文章目錄

        • 方式1:僅Tomcat8+才支援 - server.xml
        • 方式2:Tomcat8不支援全局配置400 - web.xml

方式1:僅Tomcat8+才支援 - server.xml

Tomcat9及以上的ErrorReportValve類代碼 - 自行反編譯Tomcat8、Tomcat9此類差別

Tomcat全局自定義配置400、404、500頁面
此方法隻能在Tomcat9及以上才生效,因為Tomat8及以下在org.apache.catalina.valves.ErrorReportValve類内沒有setProperty代碼,故不能通過此類自定義頁面
Tomcat全局自定義配置400、404、500頁面

Tomcat目錄/conf/server.xml == 下面兩者皆可

<!--共同點
1. ErrorReportValve 中的errorCode配置僅支援Tomcat8+版本

2. 400頁面不進入webapps具體的項目目錄、這很重要,即使你位址中有項目檔案夾的名字,如下面400連結
        http://127.0.0.1:8080/docs/config/xxx?fol=c:\\iu

3. 500、404如果比對到wenapps裡面的項目目錄,會進入到裡面,故可以使用errorCode.404="/404.html",開頭斜杠表示webapps下具體裡面項目目錄,如下面的404連結
      http://127.0.0.1:8080/docs/a  開頭斜杠表示 Tomcat目錄/webapps/docs目錄
      http://127.0.0.1:8080/test 沒有找到 開頭斜杠則預設使用/webapps/ROOT目錄

4. 不加斜杠表示:Tomcat目錄
-->


<!--第一個  404頁面需在每個webapps各項目裡面添加404.html【放多份】-->
<!--<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" errorCode.400="webapps/404.html" errorCode.404="/404.html">
		</Valve>		-->
        
<!--第二個  404頁面僅需在webapps下放個404.html頁面即可【放一份】-->        
        <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" errorCode.400="webapps/400.html" errorCode.404="webapps/404.html">
		</Valve>
           
Tomcat全局自定義配置400、404、500頁面

方式2:Tomcat8不支援全局配置400 - web.xml

Tomcat全局自定義配置400、404、500頁面

Tomcat目錄/conf/web.xml

<error-page>
		<error-code>404</error-code> <!--錯誤碼-->
		<location>/404.html</location> <!--相對webapps/xx目錄-->
	</error-page>
    
<!--
1. http://127.0.0.1:8080/examples/a  404頁面
404通路路徑:webapps/examples/404.html


2. http://127.0.0.1:8080/test  404頁面
無webapps/test目錄則通路
webapps/ROOT/404.html
-->    
           
Tomcat全局自定義配置400、404、500頁面