在新手學習web網站學習的時候常常會遇到?????這種亂碼,對於剛起步的菜鳥來講真的很頭痛,很容易打擊繼續學的信心
固然了對於菜鳥的我最近也遇到過亂碼問題,沉浸其中不能自拔,愛的深啊!!!!!
我所遇到的亂碼問題能夠有如下幾個:
1.頁面亂碼-->沒有對頁面進行編碼格式的修改,pageEncoding="utf-8"<<我用的是jsp頁面>>其餘頁面:asp,html都是同樣的要對頁面編碼
格式進行設定,否則就不會給你想要的會出現不少"????????"
2.服務器亂碼(servlet)-->服務器亂碼通常就是request編碼沒有設置,req.setCharsetEncoding("utf-8")有這麼個方法(記得是這個方法,嘻嘻)
若是設置了也沒有用,還有亂碼的話,就要對參數進行轉碼了。有轉碼確定就有解碼,我所用的轉碼和解碼的類分別是URLDecoder中的兩個方法,也能夠利用字符串的轉碼
來進行亂碼的處理。好比bigType=new String(articleBigType.getBytes("ISO-8859-1"), "UTF-8");
固然你也可能上述的方法都用了,可是從頁面傳過來的參數仍是亂碼,那就只有一種可能了就是你的服務器接受參數的時候沒有設定編碼格式
在Tomcat中的service.xml配置文件中有個<Connector></Connector>的配置其中有兩個參數是用來處理編碼的1.URIEncoding 2.useBodyEncodingForURI
固然它還有其餘的參數列出以下:
1.allowTrace 若是須要服務器可以處理用戶的HAED/TRACE請求,這個值應該設置爲true,默認值是false;
2.emptySessionPath 若是設置爲true,全部session,cookie的path將會被設置爲/,這種設置一般是在portlet中比較有用,默認值是false;
3.enableLookups 若是須要在調用request.getRemoteHost()方法時獲取到客戶端的機器名,則須要配置爲true,若是配置爲false,將會跳過DNS查詢直接返回客戶端機器的IP地址,一般爲了提升性能,將此值設置爲false,默認值是true;
4.maxPostSize POST方法可以提交的數據的最大大小,若是沒有聲明或者設置爲小於等於0,則表示POST提交的數據大小是不限制的,默認值是2Megabytes.
5.protocol 設置處理請求的協議,默認是HTTP/1.1,即org.apache.coyote.http11.Http11Protocol,此外還 支持的協議有:org.apache.coyote.http11.Http11NioProtocol(經過NIO處理用戶請求,能夠提升系統性能), org.apache.coyote.http11.HttpAprProtocol。
6.proxyName/proxyPort 若是Web服務器使用了代理服務器,配置此參數意味着在調用request.getServerName的時候將會獲取代理服務器的名稱,getServerPort()將會返回proxyPort。
7.redirectPort 若是Connector的配置是支持非SSL的請求,當一個SSL請求到來時,服務器會自動的將請求重定位到redirectPort。
8.URIEncoding URI字節轉化成String的時候的編碼方式,默認爲ISO-8859-1,若是頁面須要支持中文,通常能夠將其設置爲UTF-8或者GBK,GB2312。
9.useBodyEncodingForURI 若是設置爲true,則會根據頁面的編碼決定URI的編碼方式,默認是false。
Http/1.1 Connector提供的配置項:
10.acceptCount 等待隊列的長度,默認值是100。
11.address 若是Tomcat所在的主機有多個IP,這個值聲明瞭用於監聽HTTP請求的IP地址。
12.bufferSize Connector建立的輸入流的大小,默認值是2048 bytes,提升這個值能夠提高性能,增長內存消耗。
13.compressableMimeType 使用HTTP壓縮的MIME類型,使用逗號分割,默認值是 text/html,text/xml,text/plain。
14.compression 爲了節省帶寬,能夠將這個值設置爲on,從而啓用HTTP/1.1 GZIP壓縮。off關閉壓縮,forces強制使用壓縮,默認值是off。
15.connectionTimeout Connector接受一個鏈接後等待的時間(milliseconds),默認值是60000。
16.executor 在Service節點下,Connector節點前能夠配置一個Executor節點用於管理線程,這個屬性的值是配置的Executor的名稱,若是應用了此屬性且executor存在,那麼任何其餘的關於thread的配置將會被忽略。
17.keepAliveTimeout 在Connector關閉鏈接前,Connector爲另一個請求Keep Alive所等待的微妙數,默認值和 connectionTimeout 同樣。
18.maxHttpHeaderSize HTTP請求、響應頭信息的最大大小,默認是8192bytes。
19.maxKeepAliveRequests HTTP/1.0 Keep Alive 和HTTP/1.1 Keep Alive / Pipeline的最大請求數目,
若是設置爲1,將會禁用掉Keep Alive和Pipeline,若是設置爲小於0的數,Keep Alive的最大請求數將沒有限制。
默認爲100。
20.maxThreads 用於處理用戶請求的最大線程數,默認值是20。
21.noCompressionUserAgents: 設置不使用HTTP GZIP壓縮的客戶端,使用逗號分隔,
在某些瀏覽器不支持壓縮的時候可使用此屬性。
22.port Connector監聽的端口。
23.restrictedUserAgents 設置不使用Keep Alive的客戶端代理名稱,使用逗號分割,默認值是空字符串。
24.server 覆蓋HTTP響應的serve頭信息,若是不設置的話,默認值是 Apache-Coyote/1.1。通常狀況下
不須要關注此屬性。
25.socketBuffer Socket輸出流緩衝區的大小,默認是9000bytes,若是設置爲小於0的值,則表示不使用此緩衝區。
26.tcpNoDelay 默認值是true,設置爲true能夠提升系統性能。
27.threadPriority 請求處理線程的優先級,默認的優先級是NORMAL。html
新手學習階段,老司機勿噴!謝謝。web