JavaWEB开发中用到DWR时的配置、调用、Form提交的方法
2017-10-18 00:00
423 查看
DWR官方网站:
http://getahead.ltd.uk/dwr/
(一)添加DWRjar包:
从官网上下载jar包,放到lib目录下
(二)编辑配置文件
1.编辑配置文件web.xml:
以下几行代码必须被添加到WEN-INF/web.xml文件中。注意,要把<servlet>和其他<servlet>放在一起,<servlet-mapping>要和其他<servlet-mapping>放在一起
2.在web.xml目录下创建dwr.xml文件,内容如: 具体dwr配置详解可以下载:《dwr配置详解》
其中formBean也可用Struts的生成的form,配置文件中写好路径、在类文件中的返回类型修改好,代码如:
类文件修改:
(三)编写类方法:
在src的包中建立类文件,如:
代码:
synchronized (this) {
this.wait(5000);
this.notify();
}
使线程等待5秒,模仿网络延迟效果
formBean类文件:
(四)运行项目,检测方法
运行项目后访问:http://localhost:端口/项目名/dwr,之后会出现之前定义的service的链接,点击进入后可以看到类中定义的方法如:
(五)在页面中加入AJAX:
1.在页面中引入js文件路径:
2.如果是验证单个的数据,如用户名:
回调函数callBackHello(data),data自动传入类方法的返回值进行操作
3.如果是提交表单操作:
http://getahead.ltd.uk/dwr/
(一)添加DWRjar包:
从官网上下载jar包,放到lib目录下
(二)编辑配置文件
1.编辑配置文件web.xml:
以下几行代码必须被添加到WEN-INF/web.xml文件中。注意,要把<servlet>和其他<servlet>放在一起,<servlet-mapping>要和其他<servlet-mapping>放在一起
<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> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
2.在web.xml目录下创建dwr.xml文件,内容如: 具体dwr配置详解可以下载:《dwr配置详解》
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <allow> <!-- 指定绑定的formBean类的路径 --> <convert converter="bean" match="dwr.FormBean"/> <!-- javascript="service" 表示建立的js的方法名 --> <create creator="new" javascript="service"> <!-- 指定类文件的路径 --> <param name="class" value="dwr.Dwr" /> <include method="getFormBean"/> </create> </allow> </dwr>
其中formBean也可用Struts的生成的form,配置文件中写好路径、在类文件中的返回类型修改好,代码如:
<allow> <!-- 指定绑定的formBean类的路径 --> <convert converter="bean" match="thread.form.UserForm"/> <!-- 注意这里如不定义,会在控制台报警示错误,但不影响运行 --> <convert converter="null" match="org.apache.struts.action.ActionServletWrapper"/> <!-- javascript="service" 表示建立的js的方法名 --> <create creator="new" javascript="service"> <!-- 指定类文件的路径 --> <param name="class" value="dwr.Dwr" /> <include method="getFormBean"/> </create> </allow>
类文件修改:
public UserForm getFormBean(Map formMap){ ... UserForm userFomr = new UserForm(); try{ BeanUtils.populate(userFomr, formMap); .... return userFomr; }
(三)编写类方法:
在src的包中建立类文件,如:
package dwr; import java.util.Map; import org.apache.commons.beanutils.BeanUtils; public class Dwr { public boolean checkName(String name) { boolean flag = false; if("wq".equals(name)){ flag = true; } return flag; } public FormBean getFormBean(Map formMap){ try { synchronized (this) { this.wait(5000); this.notify(); } } catch (InterruptedException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } FormBean formBean = new FormBean(); try{ BeanUtils.populate(formBean, formMap); }catch(Exception e){ e.printStackTrace(); } System.out.println("==============客户端传来的信息=============="); System.out.println("FormBean.username:"+formBean.getName()); System.out.println("FormBean.password:"+formBean.getAge()); System.out.println("========================================="); System.out.println("==============客户端传来的信息Map=============="); System.out.println("FormBean.username:"+formMap.get("name")); System.out.println("FormBean.password:"+formBean.getAge()); System.out.println("========================================="); return formBean; } }
代码:
synchronized (this) {
this.wait(5000);
this.notify();
}
使线程等待5秒,模仿网络延迟效果
formBean类文件:
package dwr; public class FormBean { private String name=""; private int age = 0; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
(四)运行项目,检测方法
运行项目后访问:http://localhost:端口/项目名/dwr,之后会出现之前定义的service的链接,点击进入后可以看到类中定义的方法如:
Methods For: service (dwr.Dwr) To use this class in your javascript you will need the following script includes: <script type='text/javascript' src="/test/dwr/interface/service.js" src="test/dwr/interface/service.js"></script> <script type='text/javascript' src="/test/dwr/engine.js" src="test/dwr/engine.js"></script> In addition there is an optional utility script: <script type='text/javascript' src="/test/dwr/util.js" src="test/dwr/util.js"></script> Replies from DWR are shown with a yellow background if they are simple or in an alert box otherwise. The inputs are evaluated as Javascript so strings must be quoted before execution. getFormBean( ); checkName( ); (Warning: checkName() is excluded: Method access is denied by rules in dwr.xml. See below)
(五)在页面中加入AJAX:
1.在页面中引入js文件路径:
<script type='text/javascript' src="/test/dwr/interface/service.js" src="test/dwr/interface/service.js"></script> <script type='text/javascript' src="/test/dwr/engine.js" src="test/dwr/engine.js"></script> <script type='text/javascript' src="/test/dwr/util.js" src="test/dwr/util.js"></script>
2.如果是验证单个的数据,如用户名:
function firstDwr() { service.checkName($("文本框名"), callBackHello); } //回调函数 function callBackHello(data) { alert(data); }
回调函数callBackHello(data),data自动传入类方法的返回值进行操作
3.如果是提交表单操作:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title></title> <script type='text/javascript' src="/test/dwr/interface/service.js" src="test/dwr/interface/service.js"></script> <script type='text/javascript' src="/test/dwr/engine.js" mce_src="test/dwr/engine.js"></script> <script type='text/javascript' src="/test/dwr/util.js" src="test/dwr/util.js"></script> </head> <mce:script type="text/javascript"><!-- function formsubmit() { dwr.util.useLoadingMessage("正在提交..."); var formMap = dwr.util.getValues("chackForm"); service.getFormBean(formMap, result); } function result(data) { alert("从服务端返回的数据:/nuserName:" + data.name + "/npassWord:" + data.age); } // --></mce:script> <body> <form name="chackForm" method="post"> <input name="name" type="text"> <input name="age" type="text"> <input id="sub" type="button" value="提 交" onclick="formsubmit()"> </form> <br /> </body> </html>
相关文章推荐
- JavaWEB开发中用到DWR时的配置、调用、Form提交的方法
- TOMCAT的目录结构 1++ Tomact的一些小配置2++Java Web开发: Tomcat中部署项目的三种方法
- Java Web -- Servlet(5) 开发Servlet的三种方法、配置Servlet具体解释、Servlet的生命周期(2)
- 在Java Web开发中,经常会用到跳转页面的方法,一般有下面两种方法。
- java web 中判断方法是否运行超时以及运行超时后的再次调用(用到了线程相关的知识)
- 【JavaWeb开发】Maven的安装配置方法(eclipse)
- java版的webservice,完全用java的正则表达式对websercice的xml进行解析,可以很快用到web中,只需要调用其中的封装好的方法
- weblogic下开发web项目时修改java文件不用重启的绿色方法,不用修改weblogic的配置文件、不用jar
- JavaWeb开发中避免表单重复提交方法一
- weblogic下开发web项目时修改java文件不用重启的绿色方法,不用修改weblogic的配置文件、不用jar
- Java开发Web程序中修改类文件和配置文件不重启服务器的方法
- java web框架中service层调用本service层方法,方法不自动提交
- java web开发相关配置
- dwr2.1调用有简单参数的java方法之拆分串
- JavaWebStudio 2005开发J2ME方法
- DWR中各种java方法的调用
- dwr例子6调用返回List、Set或者Map的java方法
- linux下通过eclipse开发用java调用c程序的方法
- Coolite服务端方法调用与Web.Config配置
- dwr例子4调用返回JavaBean的java方法