码迷,mamicode.com
首页 > Web开发 > 详细

ajax

时间:2016-12-27 13:40:49      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:set   rpo   错误   按钮   input   send   else   display   没有   

 

技术分享
/**
 * 
 * Ajax: 
 *   核心对象  XMLHttpRequest
 *   
 *   属性:
 *    readyState:  代表服务的响应信息
 *              0:请求没有初始化
 *                经过XMLHttpRequest.open(method,url,asyns) 状态变成1
 *                   method:请求的方式
 *                   url:服务器的地址
 *                   asyns:是否异步! true:异步   false:同步
 *              1:请求初始化     但是并没有访问服务器
 *                 通过XMLHttpRequest.send()建立连接
 *              2:请求已经发送
 *              3:处理请求信息
 *              4:请求完成  
 *              
 *   readyState的变化会触发onreadyStatechange,
 *   如果readyState==4,并且status==200代表请求成功!就可以渲染界面!
 * 
 *   get方式请求服务器的时候
 *   send() send(null)  send()中不能加别的参数!
 *   
 *   post方式请求服务器的时候
 *   send(数据信息)   
 *   而且要在open()之后加入
 *   xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 * 
 */
readMe

javaScript实现ajax

技术分享
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘index.jsp‘ starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  <script type="text/javascript">
     window.onload=function(){ 
     //点击按钮触发的事件
       btn.onclick=function(){
        //01.创建XMLHttpRequest核心对象  是全局对象
       var xhr=null;
       //根据不同的版本创建不同的核心对象
       if(window.XMLHttpRequest){//高版本
       xhr=new XMLHttpRequest;
       }else if(window.ActiveXObject){ //低版本
       xhr=new ActiveXObject("Microsoft.XMLHttp")
       }else{
         alert("拜拜!");
       }
       //02.设置回调函数
       xhr.onreadystatechange=function(){
       //判断状态码
         if(xhr.readyState==4&&xhr.status==200){
         //获取响应的数据
           myAjax.innerHTML+=xhr.responseText;
         }
       }
       //03.配置核心对象的组件 
        xhr.open("get", "hello.txt", true);
        //04.发送请求
        xhr.send();
       }
     }
  </script>

  </head>
  
  <body>
  <input type="button" id="btn"  value="点击加载">
    <div id="myAjax"></div>
    <img src="images/cat.jpg">
  </body>
</html>
index.jsp
技术分享
大家辛苦了!!!!abc
对应的hello.txt文件

 

验证用户名是否存在

技术分享
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘index.jsp‘ starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  <script type="text/javascript">
     window.onload=function(){ 
     //文本框失去焦点的事件
       userName.onblur=function(){
        //01.创建XMLHttpRequest核心对象  是全局对象
       var xhr=null;
       //根据不同的版本创建不同的核心对象
       if(window.XMLHttpRequest){//高版本
       xhr=new XMLHttpRequest;
       }else if(window.ActiveXObject){ //低版本
       xhr=new ActiveXObject("Microsoft.XMLHttp")
       }else{
         alert("拜拜!");
       }
       //根据用户的输入增加提示信息
       if(userName.value==""){
         msg.innerHTML="<div style=‘color:red‘>用户名不能为空</div>";
       }else{
           //02.设置回调函数
       xhr.onreadystatechange=function(){
       //判断状态码
         if(xhr.readyState==4&&xhr.status==200){
         //获取响应的数据 判断是否存在该用户
           if(xhr.responseText.match(/ok/)){
            msg.innerHTML="<div style=‘color:green‘>可以注册!1秒钟跳转到注册页面</div>";
            //设置定时函数
            setTimeout(function(){
              location.href="success.jsp";
            },1000);
           }else if(xhr.responseText.match(/error/)){
            msg.innerHTML="<div style=‘color:red‘>用户名已经存在!</div>";
           }else{
            msg.innerHTML="错误信息"+xhr.statusText;
           }
         }
       }
       /*get请求
        xhr.open("get", "do.jsp?userName="+userName.value, true);
        xhr.send();*/
        
        //post请求
         xhr.open("post", "do.jsp", true);
         xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
         xhr.send("userName="+userName.value);
        
       }
       }
     }
  </script>

  </head>
  
  <body>
  <input type="text" id="userName" name="userName"/>
    <div id="msg"></div>
  </body>
</html>
login.jsp
技术分享
<%
  //获取login界面的userName的值
  String name= request.getParameter("userName");
  //定义一个返回给前台的响应信息
  String  message="";
  if(name.equals("admin")){
    message="error";
  }else{
    message="ok";
  }

 //怎么把响应给前台????
 out.print(message);

%>
do.jsp
技术分享
  <body>
   <h1>注册页面</h1>
  </body>
success.jsp页面

 

ajax

标签:set   rpo   错误   按钮   input   send   else   display   没有   

原文地址:http://www.cnblogs.com/999-/p/6225318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!