[JavaEE] DWR框架简介
DWR框架简介
DWR框架是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器的JavaScript代码中调用Web服务器的Java代码,就像Java代码在浏览器中一样。DWR工作原理是通过动态把Java类生成JavaScript,让使用者感觉调用就像发生在浏览器端。
2、DWR的使用场合
当我们的业务需要在页面不提交的情况下访问服务器端并实现页面数据局部刷新时,我们就可以使用DWR。
3、DWR的使用步骤
1、导入dwr的jar包
2、编写一个dwr框架在页面中用JavaScript要调用到的java类。
3、配置web.xml文件,将以下内容配置到web.xml中
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
4、配置dwr.xml
创建一个dwr.xml文件,将它放在web.xml所在的WEB-INF目录下。
该文件在dwr的jar包中可以找到,里面的dtd导入语句可以拷贝过来。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value= "com.entity.DwrClass" />
<include method="sayHello"/>
</create>
<convert converter="bean" match="com.entity.BookType">
<param name="include" value="tname,desc" />
</convert>
</allow>
</dwr>
5、编写jsp页面,用javascript调用后台的java代码
⑴在页面中引入以下javascript脚本
<script type="text/javascript" src="dwr/interface/MyHelloWorld.js" ></script>
<script type="text/javascript" src="dwr/engine.js" ></script>
<script type="text/javascript" src="dwr/util.js" ></script>
其中的第一句是由DWR框架在运行时自动生成的,dwr/是一个虚拟的路径,我们并不能真是的看到这个文件的存在。后面两句中的js文件在dwr的jar包中可以找到,需要把这两个文件复制到WebRoot/dwr文件夹中,这里也可以不取名叫dwr,但为了保持和前面自动生成的虚拟文件夹路径一致,所以我们也给它取名叫dwr。
⑵编写javascript调用后台java代码。如果从后台获取了返回值,还可以通过DOM技术将值表现在页面上,这时页面并不会被全局刷新,只是局部发生改变,可以极大提高用户体验。
最新文章
- java 读写word java 动态写入 模板文件
- 【python】 [基础] 数据类型,字符串和编码
- innodb的表最大限制
- CentOS6.5 安装 tomcat
- 如何开发ecshop支付插件
- PB出现中文乱码
- 为xampp 安装pear db (database) 模块
- 【贪心】【堆】Gym -100956D - Greedy Game
- 关于querySelectorAll的一个坑
- SharePoint Framework 简介
- Dynamics 365权限变化大部署后需要注意什么?
- 面向复杂应用,Node.js中的IoC容器 -- Rockerjs/core
- MyBatis动态创建表
- 自兴人工智能 python特点了解
- Python 19 Django 详解
- vs2017安装cuda9.0编译默认示例失败解决方法
- Vue重载组件....
- Linux中的邮件发送
- uva-10474-枚举-水题
- [翻译] BBCyclingLabel
热门文章
- JAVA面试题基础部分(二)
- 【sqli-labs】 less32 GET- Bypass custom filter adding slashes to dangrous chars (GET型转义了&#39;/";字符的宽字节注入)
- 浅谈Overload和Override的区别
- Jmeter JSON断言和响应断言的区别是什么?
- promise原理及使用方法
- 关于图片和auido预加载
- JavaScript中原生事件
- PAT_A1015#Reversible Primes
- __int128的实现
- python的多版本安装以及常见错误(长期更新)