最近公司項目提了個很正常的需求,爲何說是很正常的需求呢,保守點說,大多數的項目都會默認有這樣的功能,那就是tomcat指定404頁面,具體狀況請聽我再囉嗦囉嗦。有這麼一場景,有人想攻擊一家的項目,可是攻擊前須要瞭解該公司項目的具體組成部分才能夠進行真正的攻擊吧,可是我也不知道該項目都有哪些目錄?目錄下有哪些文件?能夠用笨方法就是去試,用一個大概經常使用的路徑去訪問該項目地址,好比ip/項目名/xxx,不存在的路徑會看到默認的404頁面會顯示tomcat的版本和其它的一些信息,敏感信息會暴露,有點危險,因此我公司不想讓別人看到這些,那就須要指定一個頁面,找不到的路徑都要轉發這個頁面。javascript
修改的文件路徑以下,只要放在tomcat下的都走這個配置html
/*/*/tomcat/conf/web.xml
在web.xml文件最後添加內容以下,error-code是瀏覽器狀態碼爲404就轉發404.jsp頁面,這裏須要注意一下,我就載在了這裏,location是當前運行項目的下的路徑,通俗點講就是,一個項目名爲songo,那麼404.jsp頁面就要放在songo項目下,對應的路徑就是/songo/404.jsp,其實我也不知道爲何是這樣設置,可是就是這樣好使了java
<error-page> <error-code>404</error-code> <location>/404.jsp</location> </error-page> </web-app>
這樣的話就有個問題,若是tomcat下有多個項目,那每一個項目根下都要放一個相同的404.jsp頁面,若是您有什麼更好的辦法歡迎留言git
404.jsp須要添加2行內容,以下github
<%@ page language="java" contentType="text/html; charset=gbk" pageEncoding="gbk" isErrorPage="true"%> <%response.setStatus(HttpServletResponse.SC_OK);%>
這2行主要是告訴瀏覽器訪問服務器不存在的資源跳轉的錯誤處理頁面,可是返回正常的狀態碼,而且正常顯示頁面內容
另外,具體頁面請到 github 自行下載web
說在最後,若是有哪裏有問題或寫的不對的,請留言,我會盡可能在第一時間給您答覆