AJAX 的小知识点

传统的web编程中 ,服务器响应请求 页面重新加载,服务器每次都会返回一个新的页面,因此传统web应用有可能很慢用户交互不友好。

Ajax就是解决页面重新加载的问题 AJAX可以使 js 通过XMLhttpRequest 对象 直接与服务器进行交互 通过HttpRequest 一个web页面
可以发送一个请求到web服务器并且接受web服务器返回来的信息 ,这个信息叫做响应报文,不用重新加载页面,这样用户感觉页面刷新
但是也看不到 js 后台进行的发送请求和接受响应

开发AJAX
(1)获取AJAX对象
由于浏览器之间的差异性需要考虑 IE浏览器 和非IE浏览器
IE浏览器获取AJAX对象 new ActiveXObject (’ MicroSoft.XMLHttp’);
非IE浏览器获取AJAX对象 new XMLHttpRequest ( );

(2) 获取AJAX核心代码如下
var xhr = null ;
if (window.XMLHttpRequest ){
//非IE浏览器
xhr = new XMLHttpRequest ( );
}else {
xhr = new XMLHttpRequest (’ MicroSoft.XMLHttp’);

   }
 (3)使用AJAX 对象发送请求
      form表单的提交请求有get 和 post 方法
      这两种方式也适用于 AJAX   AJAX对象发送请求的方式是open方法
      open (String  methodName , String url, boolean  isAny );
         
      methodName : 代表使用哪种方式提交数据 ,可选的有get 和post
      url : 代表的提交的服务器的url
      isAny:采用的是同步方式还是异步方式提交数据 true代表异步  false代表同步
  1. GET方式发送请求
    xhr . open (‘get’, 'check_username.do? username=Zs ',true );
    xhr.onreadystatechange = f1;
    xhr.send(null);
    //注意 servlet程序 是配置在服务器中的 所以 servlet的 url 也就叫做 服务器的url 服务器有很多
    因为采用的是get方式提交所以要将 参数放在url地址的后面 ,true 代表异步刷新
    如果采用get方式提交 xhr.send(null);传入的参数必须是null
    f1是从服务器返回数据的 处理回调函数

2.POST请求方式
使用Post请求方式发送请求必须要在open()方法下面发送一个消息请求头 是固定写法 只需要记住照搬就行了
xhr.setRequestHeader( ‘content-type’,‘application/x-www-form-urlencoded’);

使用POST请求代码
xhr . open ('post', 'check_username.do',true );
 xhr.setRequestHeader( 'content-type','application/x-www-form-urlencoded');
//请求参数放在send方法里面
xhr.onreadystatechange = f1;
xhr.send( 'username=Zs' );
使用Post方法可以将请求参数放在send()方法里面  而get 方法是不可以的
  1. 编写服务器端的处理代码只需要返回部分数据
    服务器从客户端获取数据,然后判断数据的正确性 ,并用response返回即可

4,编写事件处理函数(监听器)
AJAX的常用属性
onreadystatechange() 事件处理函数(监听器)该函数用来处理 readystateChange事件 当readyState的值发生了改变 从0 变到1
就会产生该事件
responseText : 获取服务器返回的文本数据。
responseXML : 获取服务器返回的XNL文档
status :获取服务器返回的状态码 只有200返回的是成功的状态码 其余均表示不正常
readyState: 是一个整数值 分别是0, 1, 2, 3, 4,表示AJAX与服务器通信的状态,当值为4时表示AJAX对象已经完整的接受到了服务器返回的数据

  代码如下:
    xhr.onreadystatechange =  function(){
         if(readyState==4) {
              if(xhr.status==200){
                 //从服务器返回的文本
                var txt = xhr.requestText;
              //将文本信息返回到指定节点上
                document.getElementById ('user_msg' ) . innerHTML = txt;      
            }  else{
                   //服务器处理出错
                 document.getElementById ('user_msg').inneHTML = '验证出错';
               
              }
         }

     } ;

有一个用户登录的例子

文本响应类型
JSON响应类型
文本响应类型指的是在服务器中返回的数据 是文本字符串类型 ,对于文本类型在AJAX的回调函数中不需要进行处理,直接显示即可

    如果客户端接收到的是服务器端的某些对象,就要使用JSON,JSON,也是字符串的一种表现形式,不过它的表现类型跟文本类型

有些不一样  格式: {"属性":值} 
  对于JavaScript 来说处理json字符串的格式, 只需要用到eval函数就行 该函数的格式如下:
eval (’(’ + txt+’ )’)

        js跨域问题
           是指js在不同的域之间进行的数据传输或通讯,
           比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。
           只要协议、域名、端口有任何一个不同,都被当作是不同的域。


           在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。
           但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。





   jsp向servlet传值大致有这么几种情况。

第一种超链接,在href=‘servletAction?id=xxx’
  第二种form表单提交,当点击submit时,action=“servletAction” method=‘get/post’
  第三种就是利用ajax,url=‘servletActionz’,当然了,这里也有get和post两种情况,get直接在url后面加问号传参,post会把参数放在实体内容里面。
  最后在servlet那边 用 request.getParameter(“参数名”);就可以拿到了

============================================

Pattern类用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建,但可以通过Pattern.complie(String regex)简单工厂方法创建一个正则表达式,

Pattern pattern = Pattern.compile("[abc]");
compile可以接收一个正则表达式作为参数。

接下来我们创建一个Matcher对象。Matcher的构造方法也是一个private方法,但是我们可以通过Pattern的Matcher方法来返回一个Matcher对象。

Matcher matcher = pattern.matcher(“hello abc”);

2)Java 正则表达式 以a为例
. 任何字符
a ? a一次或一次也没有
a * a零次或多次
a + a一次或多次
a {n}? a恰好 n 次
a {n,}? a至少n次
a {n,m}? a至少n次,但是不超过m次

//范围

\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾

456

var a = $(’#select’).val(); // 结果为 123
var b = $(’#select option:selected’).val(); // 结果为 123
var d = $(’#select option:selected’).attr(‘value’); // 结果为 123
var c = $(’#select option:selected’).text(); // 结果为 456
拿到option中的id
var way= $("#fu option:selected").attr(“id”);

===================================================

导向 是带着某种倾向去分析问题,解决问题
面向
举例:按照梦中情人的标准去找对象就是 具体目标未定但是选择倾向以定 ,而且是对象导向 。
而找到之后再约会,不就是面向对象了吗

面向对象的三大特征:封装,继承、多态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值