黑马程序员----使用DWR框架来实现ajax

---------------------- android培训java培训、期待与您交流! --------------------

ajax的思想真的很不错,可以在用户不知道的情况下,已经把他输入的内容进行了验证与处理。同时

这个所谓的新技术都是用原来的javascript和java程序实现,可谓是充分挖掘原有技术的潜力,真的让人佩服!!!

另外插一句话:自从学习java开始,总有很多震撼,第一次震撼是java的网络开发,我一直在想:客户的请求很复杂的怎么处理?

原来浏览器给你搞定了:把你的请求封装为一个对象request,服务器把对你的响应也封装为一个对象response!接下来的操作就是

针对这两个对象进行,简洁的让人击节叫好!

而那些发明了浏览器的人真的了不起,而制定这些规范的人更是伟大!

闲话不说,言归正传!

对于DWR,他的核心思想就是把一个java类当做一个javascript,然后就可以在你的网页头部直接调用这个javascript了

真的很简单,很强大,下面是使用DWR的5个步骤:

1.因为dwr针对的是web应用,所以你要建立一个web项目,随便建一个类不妨就叫做LoginAction.java,假设其中有一个isUserExist(String userName)方法

2.导入dwr.jar,现在有更新的版本,我用的是dwr3.0.jar

3.开始编写dwr.xml文件(可以在dwr.jar中找到,用RAR打开jar包,然后搜索dwr.xml,找到之后把它复制到webroot的web-inf下面,就是和web.xml在同一级目录),

在dwr.xml中填上

<allow>
    <create creator="new" javascript="这里你可以随便起个名字,但是记得这个名字是后面页面中要用到的这里不妨就叫做loginJS吧" scope="application">

<param name="class" value="这里是类路径比如com.csdn.LoginAction"/>

如果使用spring容器,那么这里这样写<param name="beanName" value="login"/>,要记着这里的login是你在spring中配置bean的id

          </create>

  </allow>

4.编写web.xml文件,相当于DWR在web容器中进行注册,采取的方式是把DWR当做一个servlet,注册的方式和普通的servlet一样

<!-- xml中的配置 整合DWR的内容,红色的是核心内容 -->
 <servlet>
  <servlet-name>dwrServlet</servlet-name>
  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

 <!-- 初始化配置,可以让我们在页面跳水javascript代码,这是最让我流汗的地方(js挑错真的很要命),上午我就中招了,在οnsubmit="return : check();"多写了个冒号,结果程序死活不走check()!!!!  -->

 <init-param>
   <param-name>debug</param-name>
   <param-value>true</param-value>
  </init-param>
 </servlet>
 
 <servlet-mapping>
  <servlet-name>dwrServlet</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
 </servlet-mapping>

5.最后一步,在你的html或者jsp页面中,就可以使用这个js脚本了,但是使用之前,要像java一样,先导包,java默认的java.lang.*已经导入了

这里也有相似的一步<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/loginJS.js这就是你在dwr中配置的那个类,现在被DWR当做一个javascript了"></script>

下面我们就可以使用它了

function isUser(){

var userName=$("userName").value;//这里取到用户输入的用户名,注意$()里面的参数是id,不能传错了
loginJS.isUserExist( userName,这里是个回调函数接收返回的信息不妨叫做backInfo吧)//和java中调用自己的方法一样,这里没有自动提示,要小心,不能写错

}

function backInfo(data){

对返回的信息data进行处理

}

写完了,但是感觉写的很罗嗦!!!

没办法,都是新手惹的祸,尴尬

补充一点:如果你的java类中有很多方法,有的不想被当做js调用,那么可以使用

<include method="方法名"/>表示你希望被dwr调用的方法

<exclude method=”方法名"/>表示你不想被dwr调用的方法,是不是很方面?

这个功能可以让你想把那个类当做javascript就把那个当做javasc,爽吧!!!

 

----------------------- android培训java培训、期待与您交流! --------

--------------详细请查看:http://edu.csdn.net/heima

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值