您的位置:首页 > Web前端 > JavaScript

javascript原生态Ajax及java注解

2015-02-06 14:46 176 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: