1. 程式人生 > >jsp無法解析,直接在瀏覽器輸出html原始碼問題

jsp無法解析,直接在瀏覽器輸出html原始碼問題

今天在用springmvc+tomcat做一個小的測試程式時,訪問jsp頁面出現無法解析,直接在瀏覽器輸出html原始碼:

於是各種檢查:

1.web.xml已設定了編碼過濾器:


2.jsp檔案儲存編碼為UTF-8


3.專案各種編碼都設定為了UTF-8:

4.jsp頭也已經設定了編碼:

問題到底出現在哪?!

最後經過多次除錯,發現只要將springmvc主過濾器路徑匹配規則設定為“/”,問題就可以解決:




在網上找到如下相應的解釋:

部落格地址:https://blog.csdn.net/jinghuashuiyue2/article/details/78589655?locationNum=7&fps=1

在配置為“/”時,將會覆蓋Tomcat中的conf/web.xml中的預設Servlet,即DefaultServlet,因為 DefaultServlet主要處理的是靜態資源,這個Servlet處理規則是其它Servlet不能匹配的請求將由它進行處理。 而在Tomcat中的DefalutServlet(預設Servlet、預設Servlet)的路徑配置恰巧是 "/",覆蓋後html靜態資源將無法解析,



因此需要在springmvc配置檔案中配置如下預設servlet靜態資源處理:


"/"與"/*區別"

其實/和/*都可以匹配所有的請求資源,但其匹配的優先順序是不同的。/在所有的匹配路徑中,優先順序最低,即當別的路徑都無法匹配時,/所匹配的預設Servlet才會進行相應的請求資源處理。而 /星號 匹配的優先順序是高於/路徑和星號.字尾的路徑的(如星號.action,星號.jsp等路徑)。