DWR框架小例子
2019獨角獸企業重金招聘Python工程師標準>>>
[1].什么是DWR框架:
DWR(Direct Web Remoting)是一個用于改善web頁面與Java類交互的遠程服務器端Ajax開源框架,可以幫助開發人員開發包含AJAX技術的網站。
它可以允許在瀏覽器里的代碼使用運行在WEB服務器上的JAVA函數,就像它就在瀏覽器里一樣。
DWR(Direct Web Remoting)是一個用于改善web頁面與Java類交互的遠程服務器端Ajax開源框架,可以幫助開發人員開發包含AJAX技術的網站。
它可以允許在瀏覽器里的代碼使用運行在WEB服務器上的JAVA函數,就像它就在瀏覽器里一樣。
[2].DWR的安裝:
01.導入DWR的JAR包
<dependency>
<groupId>org.directwebremoting</groupId>
<artifactId>dwr</artifactId>
<version>3.0.M1</version>
</dependency>
02.配置web.xml文件
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<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>
03.配置dwr.xml該文件放在WEB-INF目錄中
<?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">
<param name="class" value="com.edu.dwr.MyDwr"/>
</create>
</allow>
</dwr>
將一個Java類共享成一個JS類。
04.在頁面引入相應的javascript
<script type="text/javascript" src="<%=path %>/dwr/engine.js"></script>
<script type="text/javascript" src="<%=path %>/dwr/util.js"></script>
<script type="text/javascript" src="<%=path %>/dwr/interface/MyDwr.js"></script>
package com.edu.dwr;
public class MyDwr {
public String hello(String str){
System.out.println(str);
return str ;
}
ublic User load(){
User user = new User(10,"LIUTAO","123456",new Group(1012,"人事部")) ;
return user ;
}
public List<User> list(){
List<User> users = new ArrayList<User>() ;
users.add(new User(11,"LIUTAO","123456",new Group(1012,"人事部"))) ;
users.add(new User(11,"ZHANGSAN","123456",new Group(1012,"教程部"))) ;
users.add(new User(11,"LIUMENG","123456",new Group(1012,"內務部"))) ;
users.add(new User(11,"WNAGWU","123456",new Group(1012,"財務部"))) ;
return users ;
}
public void add(User user){
System.out.println(user);
}
public void deleteUser(){
throw new UserException("沒有傳ID參數") ;
}
}
JSP頁面中調用方法:
<script type="text/javascript">
function load(){
MyDwr.load(function loadUser(user){
alert(user.id+" ?"+user.group.groupName);
}) ;
}
function list(){
MyDwr.list(function (data){
for(var i=0 ; i<data.length ; i++){
var user = data[i] ;
console.info(user);
}
});
}
var user = {id:15,username:"張三",password:"123456",group:{id:1016,groupName:"信息部"}};
function addUser(){
MyDwr.add(user);
}
function removeUser(){
MyDwr.deleteUser({
callback:function(data){
},
errorHandler : function (msg,exception){
alert(msg);
alert(exception.javaClassName);
// 自帶工具方法打印異常信息
alert(dwr.util.toDescriptiveString(exception,2));
}
}) ;
}
</script>
[3].DWR中的轉換器
<!--轉換Java類-->
<convert match="com.edu.dwr.User" converter="bean"/>
<convert match="com.edu.dwr.Group" converter="bean"/>
<!--轉換異常類-->
<convert match="java.lang.Exception" converter="exception"/>
<convert match="java.lang.StackTraceElement" converter="bean"/>
[4].web.xml中開啟
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
可測試和查看已公布dwr方法:訪問方法 http://172.168.1.48:8888/sypro/dwr/index.html sypro是項目名稱
轉載于:https://my.oschina.net/liu13430/blog/392260
總結
- 上一篇: Java数据结构和算法(二):数组
- 下一篇: 《梦断代码》阅读笔记Ⅱ