jsp無法解析,直接在瀏覽器輸出html原始碼問題
阿新 • • 發佈:2019-02-13
今天在用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等路徑)。