Ajax是一种新的编程标准,不是一门编程语言,最大的优点是允许网页
部分加载加载。
今天想写一下用ajax调用servlet,调了半天的bug,直接贴代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试XMLHttpRequest对象</title>
<script type="text/javascript">
function test(){
// alert();
var test=document.getElementById("test");
var str=test.value;
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var str1=xmlhttp.responseText;
test.value=str1;
}
}
xmlhttp.open("GET","/solveTest?str="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
请输入数据<input id="test"><button id="btn" onclick="test()">提交</button>
</body>
</html>
window.XMLHttpRequest我把window的w小写写成大写,我tm就调了
半天bug,F12看了一些控制台,说什么ActiveXObject not define ,一下子
蒙蔽了,这不是ie5 ,6才有的吗,火狐不用这个的。
所以啊,前端这些不能识别语法错误的是真的坑。
下面是servlet
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Created by Administrator on 2018/10/4.
*/
@WebServlet(name = "/solveTest",urlPatterns = "/solveTest")
public class solveTest extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("dopost");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doget");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String str=request.getParameter("str");
PrintWriter out=response.getWriter();
out.println("你写的是"+str);
out.flush();
}
}
运行结果:
完美。。。以后在项目里不用费劲加载整个页面了,js也能调用servlet