解決客戶端瀏覽器和伺服器互動的編碼問題詳解

2021-08-08 08:16:47 字數 1444 閱讀 7713

一:針對於練習仿mvc的jsp+servlet+jsp的模式程式設計的一些編碼問題?

1:瀏覽器使用編碼utf-8+post請求伺服器時,在伺服器的servlet被訪問類中,需要伺服器內建物件request配置request.setcharacterencoding("utf-8"),如果是其他的編碼格式如gbk+post那麼在伺服器中就配置request.setcharacterencoding("gbk"),意思是告訴伺服器使用gbk編碼進行解碼

2:瀏覽器使用編碼utf-8+get請求伺服器時,如果像設定post請求,也會是亂碼,因為伺服器預設使用,"iso-8859-1"編碼,那麼我們是這樣解決的,拿到原始資料的二進位制資料,在進行

utf-8重新編碼,如具體操作,string name = request.getparameter("name"); byte b = name.getbytes("iso-8859-1");string name = new string(b,"utf-8");這樣就可以得到瀏覽器資料需要的utf-8格式資料,如果是gbk+get 也是一樣的方式進行操作.

3:伺服器響應瀏覽器,資料不亂碼,伺服器的response物件需進行2個動作,先告訴伺服器使用utf-8進行編碼response.setcharacterencoding("utf-8"),然後在告訴瀏覽器需要用utf-8來解析,response.setheader("content-type","text/html,charset=utf-8");這樣就伺服器和瀏覽器都使用utf-8編碼

4:伺服器響應客戶端的2個動作簡化設定,response.setcontenttype("text/html,charset=utf-8");

5:一般的程式設計中我會進行2個設定:request.setcharacterencoding("utf-8"),,response.setcontenttype("text/html,charset=utf-8").只是針對post

二:針對於web層mvc框架的開發解決編碼的問題,這裡說的是全域性的配置

1:如果是get請求產生中文的亂碼那麼我們可以在伺服器的servers中server.xml配置編碼具體的配置如下

首先找到我們的檔案位置servers/springmvc at localhost-config/server.xml

配置前:中新增uriencoding="utf-8",那麼就可以解決get請求編碼

配置後:

2:如果是post的編碼,需要在web.xml中配置全域性編碼過濾器,過濾所有的post請求的編碼問題具體配置如下

characterencoding

ore.springframewor.web.filter.characterencodingfilter

encoding

utf-8

characterencoding

/*3:一般在開發中我會將以上個2步驟先完成.

客戶端和伺服器資料互動

客戶端一次把資料取出,還是分多次來取?有的人說把資料一次從資料庫取到客戶端然後在客戶端任意處理效率會高。有的人說把一次性把所有資料取到客戶端很耗時且資料大多沒有用處最好分次處理。其實這兩個說法並不矛盾,只是他們實用的方面是不同的。如果資料最不大,但是可能會和伺服器發生多次互動,最好一次把資料取出到客...

Redis客戶端和伺服器

一 redis客戶端 redisserver結構中儲存了所有客戶端的狀態資訊。struct redisserver 命令client list可以列出目前所有連線到伺服器的客戶端。命令client setname name 可以給客戶端設定乙個名字。偽客戶端 由於伺服器必須接收來自客戶端的命令以執行...

Redis 客戶端和伺服器

客戶端的資料結構 typedef struct redisclient redisclient 名字 name 標誌值 flags 指向客戶端正在使用的資料庫的指標,以及該資料庫的號碼 當前要執行的命令 命令的引數 命令的個數,以及指向命令實現函式的指標 輸入緩衝區 querybuf 輸出緩衝區 複...