概述
開發(fā)Web項(xiàng)目的過程中,經(jīng)常遇到瀏覽器中顯示的內(nèi)容亂碼,或者服務(wù)器獲取瀏覽器請求參數(shù)時亂碼的問題,很多同學(xué)基本都是在遇到亂碼的時候去網(wǎng)上一頓搜索,然后看哪篇文章比較靠譜就照著上面的內(nèi)容去配后亂碼成功消失了,然后就沒然后了...
最后基本只是停留在知道怎么樣設(shè)置能避免常見的亂碼問題,而不知道具體的原理,一旦遇到了網(wǎng)上查不到的亂碼場景就不知道如何解決了~
本文會深入的讓你了解針對于HTTP請求時,這一去一回(Request,Response)之間,到底做了怎樣的事情,讓你徹底告別Web項(xiàng)目中的亂碼煩惱。本文的內(nèi)容是基于Tomcat 8.0.23版本的,其他容器也可以參考本文的內(nèi)容,畢竟理論都是通的~
Response亂碼
當(dāng)你在瀏覽器中看到響應(yīng)的內(nèi)容是亂碼的時候,第一反應(yīng)就是,是不是我程序的問題,是不是我程序吐出的內(nèi)容就是個亂碼,所以才導(dǎo)致了瀏覽器里面看到了亂碼。那么接下來我將帶你過一遍Response的過程,以及對剛才的猜測進(jìn)行驗(yàn)證~
首先,我建了一個非常簡單的Web項(xiàng)目,里面只有一個Servlet,作用是直接返回我要響應(yīng)的內(nèi)容~
項(xiàng)目結(jié)構(gòu)如下:
Servlet內(nèi)容如下:
web.xml內(nèi)容如下:
接下來我們在瀏覽器中訪問:http://localhost:8080
首先在Firefox中訪問,結(jié)果如下: