1、页面引入prototype-1.5.1_rc2.js
<script language="JavaScript">
function sendText()
{
var url = "http://localhost:8080/test/testservlet?type=send";
var text = "myText:12345";
var request = new Ajax.Request(url, {
method: 'post',
asynchronous: true,
parameters: '',
postBody: text,
onFailure: sendFailed
});
}function sendFailed(request)
{
alert("消息发送失败!");
}
</script>2、TestServlet.java
public class TestServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GBK");
String type = request.getParameter("type");
String text = readRequestContent(request);
System.out.println("type=" + type);
System.out.println("text=" + text);
}
private String readRequestContent(HttpServletRequest request) {
StringBuffer sb = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while((line = reader.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
}
return sb.toString();
}}
结果打印:
type=send
text=为什么没有取到postBody的内容呢??
分不够再加!
<script language="JavaScript">
function sendText()
{
var url = "http://localhost:8080/test/testservlet?type=send";
var text = "myText:12345";
var request = new Ajax.Request(url, {
method: 'post',
asynchronous: true,
parameters: '',
postBody: text,
onFailure: sendFailed
});
}function sendFailed(request)
{
alert("消息发送失败!");
}
</script>2、TestServlet.java
public class TestServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GBK");
String type = request.getParameter("type");
String text = readRequestContent(request);
System.out.println("type=" + type);
System.out.println("text=" + text);
}
private String readRequestContent(HttpServletRequest request) {
StringBuffer sb = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while((line = reader.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
}
return sb.toString();
}}
结果打印:
type=send
text=为什么没有取到postBody的内容呢??
分不够再加!
这句错了呗,更多就不知道了.
现在可以确定问题就出在这个prototype.js里面!
var request = new Ajax.Request(url, {
method: 'post',
asynchronous: true,
parameters: '',
postBody: text,
requestHeaders:["Content-type","text/plain;charset=GBK"],
onFailure: sendFailed
});