使用ajax技术无刷新页面
2012-12-03 22:53
656 查看
一: 首先看个小例子(通过GET方式进行无刷新获取服务端的响应数据)
<script
type="text/javascript"
language="javascript">
var xmlHttpRequest=null;
function ajaxSubmit()
{ //获取文本输入框的值
var v1=document.getElementById("NUM1").value;
var v2=document.getElementById("NUM2").value;
if(window.ActiveXObject)
// IE浏览器
{
xmlHttpRequest =
new ActiveXObject("Microsoft.XMLHTTP");
}
elseif (window.XMLHttpRequest)
//除IE外的其他浏览器实现
{
xmlHttpRequest=new XMLHttpRequest();
}
if(null != xmlHttpRequest)
{
//GET是提交的方式(注意这边要大写,POST也一样) ajaxServlet是你要关联的无刷新的服务端的servlet,true是设置你是否要进行异步
xmlHttpRequest.open("GET", "ajaxServlet?v1="+v1+"&v2="+v2,true);
//注意这边使用的是GET方式进行提交的时候,我们要传递参数时要写在url后面
//关联好ajax的回调函数
xmlHttpRequest.onreadystatechange=ajaxCallBack;
xmlHttpRequest.send(null);
}
function ajaxCallBack()
{
if(xmlHttpRequest.readyState == 4)
{
if(xmlHttpRequest.status == 200)
{
//获取服务端的数据
var responseText=xmlHttpRequest.responseText;
document.getElementById("div1").innerHTML=responseText;
}
}
}
}
</script>
</head>
<body>
<input
type="button"
value="get content from server"
onclick="ajaxSubmit();"><br>
<input
type="text"
name="num1"
id="NUM1"><br/>
<input
type="text"
name="num2"
id="NUM2"><br/>
<div
id="div1"></div>
</body>
ajaxServlet.java代码
public class ajaxServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
System.out.println("这是doget方式的doget invoke");
String num1=request.getParameter("v1");
System.out.println(num1);
String num2=request.getParameter("v2");
System.out.println(num2);
int number1 = Integer.valueOf(num1);
int number2 = Integer.valueOf(num2);
String sum = String.valueOf(number1 + number2); //将两个文本框的数字进行相加,输出
out.println(sum);
out.flush();
out.close();
}
}
二: 小例子2(ajax通过post方式进行无刷新获取服务端的响应数据)
ajax.jsp代码:
<script
type="text/javascript"
language="javascript">
var xmlHttpRequest=null;
function ajaxSubmit()
{
var v1=document.getElementById("NUM1").value;
var v2=document.getElementById("NUM2").value;
if(window.ActiveXObject)
// IE浏览器
{
xmlHttpRequest =
new ActiveXObject("Microsoft.XMLHTTP");
}
elseif (window.XMLHttpRequest) //除ie外的浏览器
{
xmlHttpRequest=new XMLHttpRequest();
}
if(null != xmlHttpRequest)
{
xmlHttpRequest.open("POST",
"ajaxServlet",true);
//这边用post方式时,我们传的参数不要写在url后面,因为post和get的提交请求的方式是不同的
xmlHttpRequest.onreadystatechange=ajaxCallBack;
// 使用post方式提交,必须要加上如下一行
xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttpRequest.send("v1="+v1+"&v2="+v2);
//使用post方式时,我们要传的参数要写在send方法中
}
function ajaxCallBack()
{
if(xmlHttpRequest.readyState == 4)
{
if(xmlHttpRequest.status == 200)
{
var responseText=xmlHttpRequest.responseText;
document.getElementById("div1").innerHTML=responseText;
}
}
}
}
</script>
</head>
<body>
<input
type="button"
value="get content from server"
onclick="ajaxSubmit();"><br>
<input
type="text"
name="num1"
id="NUM1"><br/>
<input
type="text"
name="num2"
id="NUM2"><br/>
<div
id="div1"></div>
</body>
ajaxServlet.java代码
public class ajaxServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
resp.setContentType("text/html;charset=utf-8");
req.setCharacterEncoding("utf-8");
PrintWriter out = resp.getWriter();
System.out.println("这是dopost方式的dopost invoke");
String num1=req.getParameter("v1");
System.out.println(num1);
String num2=req.getParameter("v2");
System.out.println(num2);
int number1 = Integer.valueOf(num1);
int number2 = Integer.valueOf(num2);
String sum = String.valueOf(number1 + number2);
out.println(sum);
out.flush();
out.close();
}
}
<script
type="text/javascript"
language="javascript">
var xmlHttpRequest=null;
function ajaxSubmit()
{ //获取文本输入框的值
var v1=document.getElementById("NUM1").value;
var v2=document.getElementById("NUM2").value;
if(window.ActiveXObject)
// IE浏览器
{
xmlHttpRequest =
new ActiveXObject("Microsoft.XMLHTTP");
}
elseif (window.XMLHttpRequest)
//除IE外的其他浏览器实现
{
xmlHttpRequest=new XMLHttpRequest();
}
if(null != xmlHttpRequest)
{
//GET是提交的方式(注意这边要大写,POST也一样) ajaxServlet是你要关联的无刷新的服务端的servlet,true是设置你是否要进行异步
xmlHttpRequest.open("GET", "ajaxServlet?v1="+v1+"&v2="+v2,true);
//注意这边使用的是GET方式进行提交的时候,我们要传递参数时要写在url后面
//关联好ajax的回调函数
xmlHttpRequest.onreadystatechange=ajaxCallBack;
xmlHttpRequest.send(null);
}
function ajaxCallBack()
{
if(xmlHttpRequest.readyState == 4)
{
if(xmlHttpRequest.status == 200)
{
//获取服务端的数据
var responseText=xmlHttpRequest.responseText;
document.getElementById("div1").innerHTML=responseText;
}
}
}
}
</script>
</head>
<body>
<input
type="button"
value="get content from server"
onclick="ajaxSubmit();"><br>
<input
type="text"
name="num1"
id="NUM1"><br/>
<input
type="text"
name="num2"
id="NUM2"><br/>
<div
id="div1"></div>
</body>
ajaxServlet.java代码
public class ajaxServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
System.out.println("这是doget方式的doget invoke");
String num1=request.getParameter("v1");
System.out.println(num1);
String num2=request.getParameter("v2");
System.out.println(num2);
int number1 = Integer.valueOf(num1);
int number2 = Integer.valueOf(num2);
String sum = String.valueOf(number1 + number2); //将两个文本框的数字进行相加,输出
out.println(sum);
out.flush();
out.close();
}
}
二: 小例子2(ajax通过post方式进行无刷新获取服务端的响应数据)
ajax.jsp代码:
<script
type="text/javascript"
language="javascript">
var xmlHttpRequest=null;
function ajaxSubmit()
{
var v1=document.getElementById("NUM1").value;
var v2=document.getElementById("NUM2").value;
if(window.ActiveXObject)
// IE浏览器
{
xmlHttpRequest =
new ActiveXObject("Microsoft.XMLHTTP");
}
elseif (window.XMLHttpRequest) //除ie外的浏览器
{
xmlHttpRequest=new XMLHttpRequest();
}
if(null != xmlHttpRequest)
{
xmlHttpRequest.open("POST",
"ajaxServlet",true);
//这边用post方式时,我们传的参数不要写在url后面,因为post和get的提交请求的方式是不同的
xmlHttpRequest.onreadystatechange=ajaxCallBack;
// 使用post方式提交,必须要加上如下一行
xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttpRequest.send("v1="+v1+"&v2="+v2);
//使用post方式时,我们要传的参数要写在send方法中
}
function ajaxCallBack()
{
if(xmlHttpRequest.readyState == 4)
{
if(xmlHttpRequest.status == 200)
{
var responseText=xmlHttpRequest.responseText;
document.getElementById("div1").innerHTML=responseText;
}
}
}
}
</script>
</head>
<body>
<input
type="button"
value="get content from server"
onclick="ajaxSubmit();"><br>
<input
type="text"
name="num1"
id="NUM1"><br/>
<input
type="text"
name="num2"
id="NUM2"><br/>
<div
id="div1"></div>
</body>
ajaxServlet.java代码
public class ajaxServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
resp.setContentType("text/html;charset=utf-8");
req.setCharacterEncoding("utf-8");
PrintWriter out = resp.getWriter();
System.out.println("这是dopost方式的dopost invoke");
String num1=req.getParameter("v1");
System.out.println(num1);
String num2=req.getParameter("v2");
System.out.println(num2);
int number1 = Integer.valueOf(num1);
int number2 = Integer.valueOf(num2);
String sum = String.valueOf(number1 + number2);
out.println(sum);
out.flush();
out.close();
}
}
相关文章推荐
- 使用AJAX技术做一个无页面刷新的会员登录功能--解决中文乱码
- 使用jquery处理ajax返回的XML、无刷新技术
- 用ajax技术实现无闪烁定时刷新页面
- ThinkPHP学习笔记(十五)使用Ajax和Jquery来实现页面无刷新
- 使用Yii整合的pjax(pushstate+ajax)实现无刷新加载页面
- 【原创】Asp中使用Ajax实现无刷新调用页面。
- 使用ajax和js无刷新改变页面内容和地址栏URL
- 一起谈.NET技术,使用WCF实现SOA面向服务编程——使用AJAX+WCF服务页面开发
- 用ajax技术实现无闪烁定时刷新页面
- 静态页面使用ajax刷新页面访问量通过easyui实现
- 使用Jquery的Ajax实现无刷新更新,修改,删除页面
- 使用AJAX技术实现网页无闪自动局部刷新
- struts也可以使用ajax异步调用页面局部刷新
- 我使用AJAX技术制作的动态刷新网页和部分源代码
- rails下项目中ie10+使用ajax完后不会刷新页面的存在原因之代码注释
- 使用ajax实现无刷新改变页面内容和地址栏URL
- 使用Ajax为什么能实现页面无刷新
- 使用AJAX技术打造博客无刷新搜索引擎
- 使用CallBack实现页面无刷新技术
- 使用ajax技术实现txt弹出在页面上的方法