bug筆記 - Servlet&JSP --- 前端頁面亂碼問題

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">

一定要加”/” !!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章