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);