response.setContentType與 request.setCharacterEncoding 的區別
以下是轉載內容:
1、request.setCharacterEncoding()是設定從request中取得的值或從資料庫中取出的值
指定後可以通過getParameter()則直接獲得正確的字串,如果不指定,則預設使用iso8859-1編碼。值得注意的是在執行setCharacterEncoding()之前,不能執行任何getParameter()。而且,該指定只對POST方法有效,對GET方法無效。分析原因,應該是在執行第一個getParameter()的時候,java將會按照編碼分析所有的提交內容,而後續的getParameter()不再進行分析,所以setCharacterEncoding()無效。而對於GET方法提交表單是,提交的內容在URL中,一開始就已經按照編碼分析提交內容,setCharacterEncoding()自然就無效。
get需在Tomcat的server.xml中的:
URIEncoding="GBK" />) 加入URIEncoding="GBK",解決get請求亂碼問題
2、response.setContentType("text/xml;charset=GBK")是設定頁面中為中文編碼
前者是設定動態文字(引數,資料庫),後者設定頁面靜態文字
response.setContentType指定 HTTP 響應的編碼,同時指定了瀏覽器顯示的編碼.
response.setCharacterEncoding設定HTTP 響應的編碼,如果之前使用response.setContentType設定了編碼格式,則使用response.setCharacterEncoding指定的編碼格式覆蓋之前的設定.
與response.setContentType相同的是,呼叫此方法,必須在getWriter執行之前或者response被提交之前
補充:
問題1 :從Jsp頁面頁面傳遞引數到Servlet顯示中文亂碼
解決辦法:
如果是post 方法提交 則加入以下程式碼:
request.setCharacterEncoding("GBK");//注意首先保證編碼一至,jsp頁面用什麼編碼在此就用什麼編碼(GBK/GB2312等),此程式碼只對post提交方式有效
response.setContentType("text/xml;charset=GBK")是設定頁面中為中文編碼
備註:以上兩行程式碼必須放在PrintWriterout=response.getWriter(); 之前
get 方法提交
如變數name 用
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"GBK");
問題2:解決get方式提交亂碼問題:
修改tomcat server.xml 檔案,加上紅色部分程式碼
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK"/>
備註:以上字元編碼格式根據自己需要設定,只要保持一致即可
本文轉自https://blog.csdn.net/joywy/article/details/8006645
相關推薦
response.setContentType與 request.setCharacterEncoding 區別
http://blog.csdn.net/joywy/article/details/8006645 ps1:最初的版本只有response.setContentType,後來被request.setCharacterEncoding替代了。 ps2:request只對p
response.setContentType與 request.setCharacterEncoding 的區別
以下是轉載內容:1、request.setCharacterEncoding()是設定從request中取得的值或從資料庫中取出的值 指定後可以通過getParameter()則直接獲得正確的字串,如果不指定,則預設使用iso8859-1編碼。值得注意的是在執行s
response.sendRedirect()與request.getRequestDispatcher().forward()的區別
JSP中response.sendRedirect()與request.getRequestDispatcher().forward(request,response)這兩個物件都可以使頁面跳轉,但是二者是有很大的區別的,分條來說,有以下幾點: ①respons
JSP學習筆記——response.sendRedirect()與request.getRequestDispatcher().forward()區別
一、response.sendRedirect(url)-伺服器將新url傳送給瀏覽器,瀏覽器再根據新url請求 Request.getRequestDispatcher(url).forward(request,response);請求轉發到指定url(伺服器內部跳轉
response.sendRedirect()與request.getRequestDispatcher("/index.jsp").forward(request, response)兩者辨析
com getname 傳遞 .get action 必須 caption dispatch 存在 知識點輪廓 一 辨析response.sendRedirect()與request.getRequestDispatcher("/index.jsp").forwar
response.sendRedirect(url)與request.getRequestDispatcher(url).forward(request,response)的區別
get 地址 參數 bsp for 頁面 內部 .get 運用 response.sendRedirect(url)跳轉到指定的URL地址,產生一個新的request,所以要傳遞參數只有在url後加參數,如: url?id=1。request.getRequestDispa
javaweb中重定向和請求轉發(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的區別
客戶端 不起作用 這也 方法 cnblogs rect() 獲取url rec alt 先來兩張圖,方便理解: 可以看出,重定向時,是服務器向遊覽器重新發送了一個response命令,讓遊覽器再次向url2發送請求,以獲取url2的資源 而請求轉發時,類似於是服務器自己
response與request回顧學習
你會 獲取數據 war javaweb throw 成功 資源 exce forward 一、response response是servlet.service方法的一個參數,它的類型是javax.servlet.http.HttpServletResponse,在客戶
response.sendRedirect()和request.getRequestDispatcher().forward(request,response)的區別
解決 新的 rain nbsp 響應 服務 war 站點 不知道 轉發方式:request.getRequestDispatcher().forward(); 重定向方式:response.sendRedirect(); 下面是HttpServletResponse.s
教你寫Android網路框架之Request Response類與請求佇列
我正在參加部落格之星,點選這裡投我一票吧,謝謝~ 前言在教你寫Android網路框架之基本架構一文中我們已經介紹了SimpleNet網路框架的基本結構,今天我們就開始從程式碼的角度來開始切入該網路框架的實現,在剖析的同時我們會分析設計思路,以及為什麼要這樣做,這樣做的好處是
JSP中out.println()與response.getWriter().println()輸出的區別
首先說明兩者的主要區別(加*為重點) *1.兩者的類不同,out的類是JspWriter,response.getWriter()的類是PrintWriter。 *2.out是JSP的內建物件,直接就可以呼叫裡面的方法,而PrintWriter呼叫之前需要response.getWrit
JSP中頁面跳轉response.sendRedirect()和request.getRequestDispatcher()的區別
Java Web開發中,採用MVC模式的時候,在控制器完成模型的呼叫之後會選擇介面對使用者響應,用常有2種方式 1,通過response物件的sendRedirect方法重定向: response.
request.getParameterValues與request.getParameter的區別
一、 簡單的對比 request.getParameter用的比較多,相對熟悉 request.getParameterValues(String name)是獲得如checkbox類(名字相同,但值有多個)的資料。 接收陣列變數 ,如checkobx型別
重定向(response)與轉發(request)
重定向 1.狀態碼:302 2.響應頭:‘location’代表重定向的地址 例: response.setatus(302); response.setHeader("location","/web/servlet2"); 釋:進入“servlet1”,他會自動跳轉到
Extjs form.submit()提交與Ext.Ajax.request的區別
之前總是封不起Extjs中form.submit()提交與Ext.Ajax.request()的區別,現在仍是分不清,但是知道怎麼用不會出錯了。 方案1: java action中的程式碼 Java程式碼 String datastring = "
.NET Request.Params與Request.QueryString等的區別
Request.Form:獲取以POST方式提交的資料(接收Form提交來的資料); Request.QueryString:獲取位址列引數(以GET方式提交的資料) Request:包含以上兩種方式(優先獲取GET方式提交的資料),它會在QueryString、Fo
socket與http的區別
單獨 計算機 是否 tcp協議 操作 end 不定 請求 釋放 1、TCP連接 手機能夠使用聯網功能是因為手機底層實現了TCP/IP協議,可以使手機終端通過無線網絡建立TCP連接。TCP協議可以對上層網絡提供接口,使上層網絡數據的傳輸建立在“無差別”的網絡之上。 建立起
getRequestURI()與getRequestURL()的區別
roo pub ava size header oot apach print connect 引於: http://hi.baidu.com/cloudxpc request.getRequestURI() 返回值類似:/xuejava/requestdemo.jspre
java == 與 equals的區別
rgs str test ring sys gte sta stat oid 兩者都是比較值的 equals更深層 返回的都是TRUE或者是FALSEpublic class StringTest{ public static void main(String[] a
IA64與x64的區別
體系 處理 兼容性 不能 什麽 推出 而後 位操作 指令集 說到IA-64與x86-64可能很多人會比較陌生。不知道你在下載系統的時候有沒有註意過,有的地方標註了x86/64/ia-64全版本等字樣。那x86/x64/ia-64都是什麽東西的版本呢?答案就是CPU。 系 統