关于ajax与注解详解

Ajax的学习
    不需要任何第三方jar包
    作用:异步刷新页面,也成为局部刷新页面的目的,降低了服务器的压力,将重心放在客户端。




过程:
第一步:获取XmlHttpServlet对象
function getXmlHttpRequest() {
var xmlhttp;


if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
不同的浏览器,可以获取XmlHttpRequest方式不同。


第二步:设置回调函数
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200)
       {
......
  // var msg = xmlhttp.responseText;
           //alert(msg);
       }
};
设置回调函数的目的:将处理服务器中响应。
详解:
1.readyState为该xmlhttp对象的状态:分别表示为0,1,2,3,4
0:表示请求还未初始化
1:与服务器建以建立连接 调用了open()函数
2:服务器在接受请求参数 调用了send()函数
3:服务器在处理请求参数 开始响应
4:处理完毕,响应已完成。
2.status 为响应状态码
就是response想浏览器进行响应的状态码,常见为200,403,302,304
200:响应成功
404:找不到指定资源
302:重定向
304:资源在上次访问后没有任何改变
3.接受响应数据
xmlhttp.responseText 获得字符串形式的响应数据。 
xmlhttp.responseXML 获得 XML 形式的响应数据。 

一般客户机都是获取服务器端返回的json形式的数据:
json形式分为两种:
a.以javascript对象的形式
var json  = {
name:"feng",
age:"21",
show: function() {
alert("nihao");
}
}
b.以数组的形式
var json = ["a", "b", "c"];
常见的组合:var json = {name:'feng', age:'21'};
          var json = [{name:'yang'},{name,'li'}]
为了将字符串转化为json一般在客户端用eval()进行转化
var json = eval(“(”+ json + “)”);


第三步:调用open()函数
open(method,url, asynch) :建立对服务器的调用


open()函数目的像服务端发送请求
method:设置请求方式get/post
url:服务端的url
asynch:表示是否表示异步,一般为true,不写


第四步:调用send()函数
send(content) :向服务器发送请求


注:若为get请求:则send里面写null
   若为post请求:则里面写求情参数 例如xmlhttp.send("username="+username);
   但是:必须得设置RequestHeader请求 让服务器知道是post请求
   xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");






注解Annotation学习:
什么是注解?它有什么用?
    注解:它是由jvm来解析,来描述类如何运行的。
    注解annotation作业之一可以取代传统的配置文件,简化我们在开发中的配置,描述类是如何运行的。


所有的注解都来自java.lang.annotation
1.jdk中自带的三个annotation:
1.@Override   用于描述当前的方法是一个重写的方法
注意:
   jdk1.5:这个版本不能描述接口与类之间的方法重写
   jdk1.6:这个版本能描述接口与类之间的方法重写
2.@Deprecated  用来描述当前的方法是一个过时的方法
   方法过时原因:在当前版本,方法存在安全隐患,或者有更好的方法替换
        3.@SuppressWarnings
   去除程序中的警告信息,例如@SuppressWarnings("all")去除所有警告信息


2.注解本质  
是一个接口,它扩展了java.lang.annotation包下的Annotation类




自定义注解
@interface A {}
public class AnnotationTest {
@A
public static void main(String[] args) {
    
}


}
详解:
1.注解中的成员属性类型可以有哪些:
    字符串(String)
基本类型
Class
Annotation类型
enum类型
   
以上任意类型的一维数组,实质就是抽象方法

2.使用注解:
1.若注解中设置了成员,则必须为成员属性注入值
形式如下:@DataBaseAnno(属性名称=value,...")
2.如注解中的成员是value,则注入时候可以不写属性名称,形式多种多样:
a.类型为是String
@Annotation1("abc");
@Annotation1(value = "abc");
a.类型为是String[]
@Annotation1("abc" );
@Annotation1({"abc" });
@Annotation1(value = "abc");
@Annotation1(value = {"abc" });


3. 元注解:用于修饰注解的注解
@Retention 用于描述当前的Annotation在哪一个阶段有效
它的值是RetentionPolicy类型有:
SOURCE: 代表它在源代码阶段有效果,可以进行安全检查
CLASS:加载到jvm阶段有效果
RUNTIME:在jvm中运行阶段有效


@Target
它主要描述注解在什么位置使用,例如描述在类上使用 ,描述在成员变量使用,描述在方法上使用。
它的值是枚举 ElementType有:
ANNOTATION_TYPE 
注释类型声明 
CONSTRUCTOR 
      构造方法声明 
FIELD 
      字段声明(包括枚举常量) 
LOCAL_VARIABLE 
      局部变量声明 
METHOD 
      方法声明 
PACKAGE 
      包声明 
PARAMETER 
      参数声明 
TYPE 
      类、接口(包括注释类型)或枚举声明 



@Inherited 代表注解具有继承性
@Documented 如果注解被修饰 在可以在doc文档上面显示


4.如何获取注解上面的属性值?
利用反射。
//Method方法中有一方法可以获取方法注解上面的对象
Method.getAnnotation();


//判断当前方法下是否具有指定的注解
Method.isAnnotationPresent(Annotation.class);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值