1. bug描述
今天在合前端和後臺的代碼的時候出現了讓人頭大的問題, 前端頁面亂碼, 並且css/js格式不能顯示出來.
前端頁面是大壯寫好的HTML頁面, 我合後臺代碼的時候直接將後綴改爲了.jsp, 就出現了亂碼.
2. bug原因
首先前端頁面出現亂碼可以分爲兩種情況, HTML和JSP.
(1) HTML亂碼解決
HTML亂碼的原因是網頁源代碼的編碼與網頁中的中文編碼不同導致, 這樣就會導致瀏覽器無法對網頁中的中文進行正確解析, 所以一般要在HTML頁面的頭部加上下面的代碼來設置編碼:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
(2) JSP亂碼解決
如果你是正正經經地創建一個JSP頁面, 並且在頭部加了上面HTML中設置編碼的代碼之後, 一般就不會出現什麼問題. 但是我今天就是在JSP中已經加了上面的代碼, 但是亂碼問題還是沒有得到解決.
原因是!!! 我並沒有正正經經地創建一個JSP, 而是直接將大壯寫好的HTML的後綴更改爲了.jsp, 雖然大壯的HTML源代碼中也設置了UTF-8編碼, 但是還是出現亂碼.
解決辦法: 在JSP文件的開頭加上以下代碼用以設置JSP的編碼:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
也就是說, 在寫JSP的時候, 我們不但要設置HTML的編碼, 還要通過聲明來設置JSP的編碼!!!! 但是爲什麼說如果你正正經經的創建JSP就不會出現問題呢? 因爲你每新建一個JSP頁面, 它就會自動爲你加上這句聲明, 這樣你就無需擔心JSP的編碼問題了.
3. 另外一個小問題: css/js鏈接不到?
emmmm, 仍然是萬年不變的路徑問題! 使用Spring+Maven框架之後關於web的目錄層級如下:
也就是說, 如果我在一個JSP中要引用css/main/index.css的時候, 應該這樣寫:
<link href="/css/main/index.css" rel="stylesheet">
一定要加”/” !!!!