DWR轻松上手

DWR的搭建

【用途】DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用

【搭建步骤】

  • 新建一个web工程
  • 下载dwr.jar并且放到lib下面
  • 配置web.xml
  • 创建dwrDemo.java和dwrDemo.jsp文件
  • 创建dwr.xml并配置
  • 启动测试、总结

【项目框架图】

项目框架图

【jsp页面图】

jsp页面图
访问地址 http://localhost:8080/MyProject/dwrDemo.jsp

直接上代码

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>MyProject</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
<servlet>
        <display-name>DWR Servlet</display-name>
        <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>
        <init-param>   
            <param-name>crossDomainSessionSecurity</param-name>   
            <param-value>false</param-value>   
         </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
</web-app>

dwrDemo.java

package control;
public class dwrDemo {

    public String getSession(String name,String passwd) {
        String OK=null;
        if(name.equals("admin")&&passwd.equals("123456")) {
            OK="sucess";
            System.out.println("获取token");
        }else {
            OK="error";
        }
        return OK;
    }

    public int getOrder(int number) {
        int order=0;
        if(number==1) {
            order=1;
        }else {
            order=0;
        }
        System.out.println("Order"+number);
        return order;
    }

}

dwrDemo.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isELIgnored="false"%>
<%
    String path = request.getContextPath();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<script type='text/javascript' src='<%=path%>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=path%>/dwr/interface/JDate.js'></script>
<script type='text/javascript' src='<%=path%>/dwr/interface/dwrDemo.js'></script>
<script type='text/javascript' src='<%=path%>/dwr/util.js'></script>
<TITLE>DWR</TITLE>
<script>
    function submitDwr() {
        var name=document.ThisForm.name.value;
        var passwd=document.ThisForm.passwd.value;
        alert("-------login-start-------");
        dwrDemo.getSession(name,passwd,callback);
    }


    function submitOrd() {
        alert("-------order-start-------");
        var number=document.ThisForm.number.value;
        dwrDemo.getOrder(number,callback);
    }

    function callback(data) {
        var sucess="sucess";
        var error="error";
        if(data==sucess){
            alert("登陆成功"+data);
        }
        if(data==error){
            alert("登陆失败"+data);
        }

        if(data==1){
            alert("成功"+data);
        }
        if(data==0){
            alert("失败"+data);
        }

    }
</script>
</HEAD>
<BODY>
<DIV>
    <P class="STYLE1"><STRONG>DWR测试用例</STRONG></P>
   <form name="ThisForm">
   </br>
   <b style="color: green">输入 admin &nbsp;&nbsp;&nbsp;&nbsp;123456</b></br>
   <input type="text" name="name"/>
   <input type="password" name="passwd"/>
   <input type="button" value="LOGIN" onclick="submitDwr()"/>
   </br>   </br>   </br>   </br>
   <b style="color: green">输入 1</b></br>
   <input type="text" name="number"/>
   <input type="button" value="ORDER" onclick="submitOrd()"/>
   </form>
</DIV>
</BODY>
</HTML>

dwr.xml

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://getahead.org/dwr/dwr10.dtd">
<dwr>
  <allow>
    <create creator="new" javascript="JDate">
      <param name="class" value="java.util.Date"/>
    </create>
     <create creator="new" javascript="dwrDemo">
      <param name="class" value="control.dwrDemo"/>
      <!-- 类中不允许执行的方法,如果一个类中有5个方法,这2个不允许执行
         <exclude method="getOrder"/>
         <exclude method="getSession"/>
       -->
      <!--  类中需要执行的方法,其他的方法都不允许执行
         <include method="getOrder"/>
         <include method="getSession"/>
       -->
       <!-- 只允许执行类中的这一个方法
       <include method="getSession"/>
        -->
    </create>
  </allow>
</dwr>

【遇到问题】

1.如何验证是搭建成功
http://localhost:8080/MyProject/dwr/index.html
show1

【可以在此直接测试接口】

show2

2.由于版本的问题,会出现dtd不匹配的问题

show3
修改版本号或者直接删除,不引用dtd文件就好

【dwr.xml详细配置说明】

https://blog.csdn.net/anyoneking/article/details/1859749

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值