Ajax當中中文處理的方法
中文處理:
馬克- to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203。
例 2.1
<html>
<head>
<title></title>
<script language="JavaScript">
var xmlrequest;
function createXMLHttpRequest() {
if(window.ActiveXObject){//ie
alert("we are using microsoft ActiveXObject");
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlrequest = new XMLHttpRequest();
}
}
createXMLHttpRequest();
function postSend(value) {
var uri = "servlet21";
xmlrequest.open("POST", uri, true);
/*馬克-to-win:through experiment, we find that we must use the
following statement, otherwise post can not work.
form-urlencoded是Ajax第一次編碼,公認的Ajax是用的UTF-8編
碼的,所以第二次編碼是用的UTF-8編的碼。*/
xmlrequest.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlrequest.onreadystatechange = processResponse;
xmlrequest.send("test=" + value);
}
function getSend(value) {
var uri = "servlet21?test="+value ;
/*見上面POST所示,Ajax發(fā)送數(shù)據(jù)時,是經過兩次編碼的,
所以這里我也要兩次編碼。 */
uri=encodeURI(uri);
uri=encodeURI(uri);
xmlrequest.open("GET", uri, true);
xmlrequest.onreadystatechange = processResponse;
xmlrequest.send(null);
}
function processResponse() {
if (xmlrequest.readyState == 4 && (xmlrequest.status == 200)) {
var tex = xmlrequest.responseText;
// alert(tex);
document.getElementById("results").innerHTML = tex;
return;
}
}
</script>
</head>
<body>
<br />
<br /> form1:
<input id="test" name="test" type="text" size="90"> <br>
<input type="button" value="GET發(fā)送"
onclick='getSend(document.getElementById("test").value)'> <input
type="button" value="POST發(fā)送"
onclick='postSend(document.getElementById("test").value)'>
<div id="results"></div>
</body>
</html>
package helloWorld;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class servlet21 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String test=request.getParameter("test");
test=java.net.URLDecoder.decode(test,"UTF-8");
System.out.println("test is "+test);
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println(test);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String test=request.getParameter("test");
System.out.println("test is "+test);
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println(request.getParameter("test"));
}
}