*一、ajax*
AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML)。
通过javaScript的xmlHttpRuquest对象,可以模拟http协议的post与get请求;
实现了对整个页面的部分刷新。
不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的。
IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为XMLHttpRequest的JavaScript内建对象。
{code:xml}
function ajaxFunction() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
}
</script>
{code}
要想把请求发送到服务器,我们就需要使用 open() 方法和 send() 方法。
open() 方法需要三个参数。第一个参数定义发送请求所使用的方法(GET 还是 POST)。第二个参数规定服务器端脚本的 URL。第三个方法规定应当对请求进行异步地处理。
send() 方法可将请求送往服务器。
onreadystatechange 属性存有处理服务器响应的函数。
readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被
readyState 属性可能的值
0 请求未初始化(在调用 open() 之前)
1 请求已提出(调用 send() 之前)
2 请求已发送
3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4 请求已完成(可以访问服务器响应并使用它)
*二、dwr*
dwr(direct web Remoting),是一个java框架,用java封装了ajax。
dwr工作原理是通过了动态的把java类生成javaScript,它可以让你在浏览器中的Javascript代码直接调用Web服务器上的Java 代码,Java 代码像是在浏览器中一样。
dwr配置:
首先我们需要下载一个dwr的jar包,
然后在web.xml配置,其实配置跟struts1配置差不多,一个核心的DwrServlet类。
*如下:*
{code:xml}
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
{code}
然后需要一个dwr.xml核心配置文件。
在com.dwr.dome自己写一个Mydwr类随便写个方法。
*比如:*
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="Mydwr">
<param name="class" value="com.dwr.dome.Mydwr"/>
</create>
</allow>
</dwr>
{code}
最后在页面上通过dwr直接调用java里的代码,页面需要导入
<script type='text/javascript' src='/mydwr/dwr/engine.js'></script>
<script type='text/javascript' src='/mydwr/dwr/util.js'></script>
<!-- 自己配置的js,通过dwr自己会生成 -->
<script type='text/javascript' src="/mydwr/dwr/interface/Mydwr.js"></script>
通过Mydwr直接调用它里面的方法,如果有参数需要传参,没有参数就不需要,然后需要一个回调函数得到方法所返回的值。
{code:xml}
function callBack(data){
//赋值到页面
dwr.util.setValue("result", data);
}
function hello() {
//得到页面id中的值
var user = dwr.util.getValue("user");
Mydwr.getDwrName(callBack);
}
{code}
AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML)。
通过javaScript的xmlHttpRuquest对象,可以模拟http协议的post与get请求;
实现了对整个页面的部分刷新。
不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的。
IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为XMLHttpRequest的JavaScript内建对象。
{code:xml}
function ajaxFunction() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
}
</script>
{code}
要想把请求发送到服务器,我们就需要使用 open() 方法和 send() 方法。
open() 方法需要三个参数。第一个参数定义发送请求所使用的方法(GET 还是 POST)。第二个参数规定服务器端脚本的 URL。第三个方法规定应当对请求进行异步地处理。
send() 方法可将请求送往服务器。
onreadystatechange 属性存有处理服务器响应的函数。
readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被
readyState 属性可能的值
0 请求未初始化(在调用 open() 之前)
1 请求已提出(调用 send() 之前)
2 请求已发送
3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4 请求已完成(可以访问服务器响应并使用它)
*二、dwr*
dwr(direct web Remoting),是一个java框架,用java封装了ajax。
dwr工作原理是通过了动态的把java类生成javaScript,它可以让你在浏览器中的Javascript代码直接调用Web服务器上的Java 代码,Java 代码像是在浏览器中一样。
dwr配置:
首先我们需要下载一个dwr的jar包,
然后在web.xml配置,其实配置跟struts1配置差不多,一个核心的DwrServlet类。
*如下:*
{code:xml}
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
{code}
然后需要一个dwr.xml核心配置文件。
在com.dwr.dome自己写一个Mydwr类随便写个方法。
*比如:*
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="Mydwr">
<param name="class" value="com.dwr.dome.Mydwr"/>
</create>
</allow>
</dwr>
{code}
最后在页面上通过dwr直接调用java里的代码,页面需要导入
<script type='text/javascript' src='/mydwr/dwr/engine.js'></script>
<script type='text/javascript' src='/mydwr/dwr/util.js'></script>
<!-- 自己配置的js,通过dwr自己会生成 -->
<script type='text/javascript' src="/mydwr/dwr/interface/Mydwr.js"></script>
通过Mydwr直接调用它里面的方法,如果有参数需要传参,没有参数就不需要,然后需要一个回调函数得到方法所返回的值。
{code:xml}
function callBack(data){
//赋值到页面
dwr.util.setValue("result", data);
}
function hello() {
//得到页面id中的值
var user = dwr.util.getValue("user");
Mydwr.getDwrName(callBack);
}
{code}