java深入探究13-js,ajax

1.js

  1)三种基本类型:

    var num=100;
    var str="哈哈";
    var flag=true;

  2)创建函数的三种方式:

    正常模式:

      function add(num1,num2){
        return num1+num2;
      }

    构造器模式:

      var add=new Function("num1","num2","return num1+num2");

    匿名方式:

      var add=function(num1,num2){return num1=num2;}

  3)js中的对象

    Date;String;Array;Math;自定义对象;window对象;status对象,location对象,history对象 

  <script type="text/javascript">
      //Date
      /* var nowStr=new Date().toLocaleDateString();
      window.alert(nowStr); */

      //String
      /* var str="String";
      var length=str.length;
      window.alert(length); */

      //Array
      /* var array=new Array("语文","数学","英语",true,123);
      for(var i=0;i<array.length;i++){
          document.write(array[i] + "   ");
      } */

      //Math
      /* for(var i=1;i<=10;i++){
          document.write(Math.floor(Math.random()*9)+1 + "<br/>");
      } */

      //自定义对象
      function Person(id,name,sal){
          this.id=id;
          this.name=name;
          this.sal=sal;
      }
      var p =new Person(1,"小平",70000);
      document.write("编号:"+p.id+"<br/>");
      document.write("姓名:"+p.name+"<br/>");
      document.write("薪水:"+p.sal+"<br/>");

      //window对象
      /* var url = "04_images.html";
    window.open(url); */    

      //status对象,将当前时间设置到状态栏
      /* var nowStr = new Date().toLocaleString();
    window.status = nowStr; */

      //location对象,模拟用户在地址栏输入url访问其它页面的情况
      /* var url="04_images.html";
      window.location.href=url; */

      //history
      /* window.history.go(1); */
  </script>

2.ajax

  创建ajax通用函数

function createAJAX(){
            var ajax = null;
            try{
                ajax = new ActiveXObject("microsoft.xmlhttp");
            }catch(e1){
                try{
                    ajax = new XMLHttpRequest();
                }catch(e2){
                    alert("你的浏览器不支持ajax,请更换浏览器");
                }
            }
            return ajax;
        }

  get方式发送数据给servlet

    需要注意点:get方式数据传输是靠url,所有传输中文时,需要转码,encodeURI();,之后到了后台需要将数据转为byte以ISO8859-1方式,再变为utf-8模式字符串

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>基于HTML,以GET或POST方式,检查注册用户名是否在数据库中已存在</title>
  </head>
  <body>

    <form>
        用户名[GET]:<input id="usernameID" type="text" name="username" maxlength="4"/>
        光标移出后,立即检查结果
    </form>
    <hr/>
    <span id="resID"></span>

    <script type="text/javascript">
        //创建AJAX异步对象,即XMLHttpRequest
        function createAJAX(){
            var ajax = null;
            try{
                ajax = new ActiveXObject("microsoft.xmlhttp");
            }catch(e1){
                try{
                    ajax = new XMLHttpRequest();
                }catch(e2){
                    alert("你的浏览器不支持ajax,请更换浏览器");
                }
            }
            return ajax;
        }
    </script>

    <script type="text/javascript">
        //定位文本框,同时提供焦点失去事件
        document.getElementById("usernameID").onblur = function(){
        //获取文本框中输入的值
        var username = this.value;
        //如果用户没有填内容
        if(username.length == 0){
            //提示
            document.getElementById("resID").innerHTML = "用户名必填";
        }else{
            //对汉字进行UTF-8(U8)的编码
            username = encodeURI(username);
            //NO1)
            var ajax = createAJAX();
            //NO2)
            var method = "GET";
            var url = "${pageContext.request.contextPath}/UserServlet?time="+new Date().getTime()+"&username=" + username;
            //alert(url);
            ajax.open(method,url);
            //NO3)
            ajax.send(null);

            //--------------------------------------------------------等待

            //NO4)
            ajax.onreadystatechange = function(){
                if(ajax.readyState == 4){
                    if(ajax.status == 200){
                        //NO5)
                        var tip = ajax.responseText;
                        //NO6)
                        document.getElementById("resID").innerHTML = tip;
                    }
                }
            }
        }
    }
    </script>

  </body>
</html>

  post方式发送数据给servlet

    需要注意点:因为ajax传数据到后台默认是get方式,一般会访问完url就就结束,所以为了能将content数据通过send发过去,需要给ajax设置请求头ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>基于HTML,以GET或POST方式,检查注册用户名是否在数据库中已存在</title>
  </head>
  <body>

    <form>
        用户名[POST]:<input id="usernameID" type="text" name="username" maxlength="4"/>
        光标移出后,立即检查结果
    </form>
    <hr/>
    <span id="resID"></span>

    <script type="text/javascript">
        //创建AJAX异步对象,即XMLHttpRequest
        function createAJAX(){
            var ajax = null;
            try{
                ajax = new ActiveXObject("microsoft.xmlhttp");
            }catch(e1){
                try{
                    ajax = new XMLHttpRequest();
                }catch(e2){
                    alert("你的浏览器不支持ajax,请更换浏览器");
                }
            }
            return ajax;
        }
    </script>

    <script type="text/javascript">
        //定位文本框,同时提供焦点失去事件
        document.getElementById("usernameID").onblur = function(){
            //获取文本框中输入的值
            var username = this.value;
            //如果用户没有填内容
            if(username.length == 0){
                //提示
                document.getElementById("resID").innerHTML = "用户名必填";
            }else{
                var ajax = createAJAX();
                var method = "POST";
                var url = "${pageContext.request.contextPath}/UserServlet";
                //alert(url);
                ajax.open(method,url);

                //需要设置ajax请求头,因为这是ajax模式是get方式请求,访问完uri后就不访问,且会自动将请求体重汉字自动转换为UTF-8
                ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")
                var content="username="username;
                //NO3)
                ajax.send(content);

                //--------------------------------------------------------等待

                //NO4)
                ajax.onreadystatechange = function(){
                    if(ajax.readyState == 4){
                        if(ajax.status == 200){
                            //NO5)
                            var tip = ajax.responseText;
                            //NO6)
                            document.getElementById("resID").innerHTML = tip;
                        }
                    }
                }
            }
        }
    </script>

  </body>
</html>

时间: 2024-12-21 22:39:16

java深入探究13-js,ajax的相关文章

Stripes视图框架Java对象属性验证和prototype.js Ajax的测试

Stripes视图框架Java对象属性验证,它允许对字段设置是否必须填写,对数字大小进行限制等.我用prototype.js Ajax 将验证后的数据及时地展示出来,下面来看程序. 1.编写User实体类 此用户共三个属性: name.email.age. package com.boonya.stripes.entity;      public class User {              private String name;              private String

Atitit.&#160;数据约束&#160;校验&#160;原理理论与&#160;架构设计&#160;理念模式java&#160;php&#160;c#.net&#160;js&#160;javascript&#160;mysql&#160;oracle

Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3. 检查约束 (Check Counstraint) 对该列数据的范围.格式的限制(如:年龄.性别等)2 4. 默认约束 (Default Counstraint) 该数据的默认值2 5. trigger2 6. 外键机制  参照完整性:2 7. 断言约束:不必与特定的列绑定,可以理解为能应用于多个表的

JavaScript学习总结【12】、JS AJAX应用

1.AJAX 简介 AJAX(音译为:阿贾克斯) = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术,也就是在无需重新加载整个网页的情况下,能够更新部分网页的技术.AJAX 不是新的编程语言,而是一种使用现有标准的新方法,是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,传统的

js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)

最近做了一个项目,需要用子域名调用主域名下的一个现有的功能,于是想到了用jsonp来解决,在我们平常的项目中不乏有这种需求的朋友,于是记录下来以便以后查阅同时也希望能帮到大家,需要了解的朋友可以参考下 很庆幸,我又见到了末日后新升的太阳,所以我还能在这里写文章,言归正传哈,最近做了一个项目,需要用子域名调用主域名下的一个现有的功能,于是想到了用jsonp来解决,在我们平常的项目中不乏有这种需求的朋友,于是记录下来以便以后查阅同时也希望能帮到大家. 什么是JSONP协议? JSONP即JSON w

js ajax 传送xml dom对象到服务器

客户端代码 1 <script> 2 var isie = true; 3 var xmlhttp = null; 4 function createXMLHTTP() {//创建XMLXMLHttpRequest对象 5 if (xmlhttp == null) { 6 if (window.XMLHttpRequest) { 7 xmlhttp = new XMLHttpRequest(); 8 } 9 else { 10 xmlhttp = new ActiveXObject("

Java程序员之JS(一) 入门

背景:使用了JS做一个 WEB 项目之后,一直有使用JS 的一个功能,突然某一天项目重新规划,开始自己手动写一些原始JS,情况不妙,原来之前一直是用同事搭建好的框架在开发,对 JS 零基础的我一直在 ctrl+c/ctrl+v的重复操作,偶尔写一些局部事件,针对什么是JS/ajax/jQuery/$一概不知. 一. JS/ajax/jQuery/$ 比较,先说一下结论:它们之间没有可比性 开篇之前对JS/ajax/jQuery/$傻傻分不清,直观的用起来感觉都是一个东西,其实他们之后没有可比性:

Atitit.异步编程 java .net php python js 的比较

Atitit.异步编程 java .net php python js 的比较 1. 1.异步任务,异步模式,  APM模式,,  EAP模式, TAP 1 1.1.       APM模式: BeginXXX/EndXXX, IAsyncResult 2 1.2.       EAP模式(基于事件的异步模式) 2 1.3.      TAP(基于任务的异步模式) 2 2. 异步的实现机制::主要是通过线程and线程池实现的... 2 3. 异步编程的开发::当前都是通过api的,将来应该可以使

Atitit.面向接口的web&#160;原理与设计重写&#160;路由启动绑定配置url&#160;router&#160;rewriting&#160;urlpage&#160;&#160;mvc&#160;mvp的&#160;java&#160;c#.net&#160;php&#160;js

Atitit.面向接口的web 原理与设计重写 路由启动绑定配置url router rewriting urlpage  mvc mvp的 java c#.net php js 原理 通过vm带入启动参数    制定ioc配置文件 绑定各项.. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <ifra

atitit.复合变量,也就是类似$$a的变量的原理与实现&#160;java&#160;c#.net&#160;php&#160;js

atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js 1.1. 复合变量,也就是类似$$a的变量,它会进行两次的解释. 1 1.2. 数据库里面的复合变量1 1.3. 为什么只有php实现了符合变量,因为他的美元符号2 1.4. 符合变量的本质其实就是指针了2 2. 使用java实现符合变量2 2.1. invoke2 2.2. 实现2 3. 参考4 1.1. 复合变量,也就是类似$$a的变量,它会进行两次的解释. 这给PHP带来了非常灵活的动态特性.

Atitit.sql&#160;ast&#160;表达式&#160;语法树&#160;语法&#160;解析原理与实现&#160;java&#160;php&#160;c#.net&#160;js&#160;python

Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python 1.1. Sql语法树 ast 如下图锁死1 2. SQL语句解析的思路和过程3 2.1. lexer作为一个工具,完成了对SQL字符串的切割,将语句转化成一个tokens数组.3 2.2. Parser完成了SQL解析的后序部分:使用一个lexer对象作为工具,切出tokens,然后解析语义,绑定相关的系统接口.3 2.3. 关系数据和XML数据库下其抽象语法树分别为: 如图