ajax与dwr

本文介绍了AJAX的基础知识,包括其工作原理、如何在不同浏览器中创建XMLHttpRequest对象,并实现页面的部分刷新。同时深入探讨了DWR框架,这是一种利用Java封装AJAX的技术,能够使JavaScript直接调用服务器端的Java代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*一、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}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值