1,jsp表單提交到servlet默認爲get提交; html
2,get表單提交亂碼處理最多見的是在tomcat服務器下把server.xml裏面的8080端口後面加上URIEncoding="UTF-8",第二種方法是在後臺獲得get提交的參數後使用ajax
String param=new String(request.getParameter("參數名").getBytes("iso-8859-1"),"UTF-8");sql
3,post表單提交亂碼處理則爲在後臺使用方法request.setCharacterEncoding("UTF-8");便可。tomcat
4。超連接爲GET提交,超連接提交出現亂碼沒有表單提交處理亂碼哪麼簡單,要處理超連接提交,首先在server.xml裏面增長UTIEnding="UTF-8"是必須的,而後若超連接中傳遞的參數爲偶數箇中文漢字,剛不須再處理亂碼,若爲奇數則用方法encodeURI('site.action?name=中文亂碼');可是這樣處理亂碼有點麻煩爲了解決無論參數的奇偶性也能處理亂碼個 能夠採用C標籤:服務器
<c:url value="login/login!login.action" var="url">
<c:param name="name" value="中文亂碼s"></c:param>
</c:url>
<a href="${url}">提交</a>app
5,jsp表單提交到action默認爲post提交;POST提交不須再處理亂碼由於struts已經在過濾器裏面幫你把亂碼處理了 jsp
6,ajax POST和GET提交亂碼處理ide
在AJAX提交中要把參數和URL分離開來處理post
var xmlHttp;
//自動加載國家
function country() {
var text = "sql=SELECT co_name FROM COUNTRY order by nvl(length(trim(co_name)),0) asc,co_name";
var url = "ajax/ajax!selectName.action";
createXmlhttp();
if (xmlHttp) {
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Cache-Control", "no-cache");
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
parseMessage('country');
}
}
xmlHttp.send(text);
}
}url
其中 xmlHttp.setRequestHeader("Cache-Control", "no-cache");
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");這個要加上
action中:HttpServletResponse response= ServletActionContext.getResponse(); response.setContentType("html/xml;charset=gb2312"); response.setCharacterEncoding("UTF-8");