dwr与ssh框架整合教程
(1)dwr与ssh框架整合教程dwr框架介绍。
DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开
发人员开发包含AJAX技术的网站.它可以允许 在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。它包含两个主要的部
分:允许JavaScript从WEB服务器上一 个遵循了AJAX原则的Servlet中获取数据.另外一方面一个JavaScript库可以帮助网站
开发人员轻松地利用获取的数据来动态改变网页的内 容.DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样
WEB开发人员就可以在JavaScript里使 用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端
而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.
这个从JAVA到JavaScript的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但
是不需要浏览器插件的好处.DWR不认为浏览器/WEB服务器协议是重要的,而更乐于保证编程界面的简单自然.对此最大的挑战就是把AJAX的异步特性和
正常JAVA方法调用 的同步特性相结合.在异步模式下,结果数据在开始调用之后的一段时间之后才可以被异步访问获取到.DWR允许WEB开发人员传递一
个回调函数,来异步处理 Java函数调用过程.
(2)引入dwr包,本例采用的版本是dwr2.0.5。将dwr.jar包引入到项目的WEB-INF/lib目录下。
如图,引入成功后,查看
可以了解相关信息。
(3)在web.xml中配置dwr的相关信息。如下所示
注:相关的参数说明在图中已经给出解释。
(4)在web.xml同目录下新建dwr.xml文件。
其初始配置如下
配置部分已经完成,下面使用一个例子说明dwr的具体配置,例子采用的是ssh的程序,并将用户登陆部分改成以dwr技术实现。
(5)后台业务逻辑。首先编写业务处理的action方法
方法名为showHello(String name,String passpword),通过传入的name和password来添加新用户,如果成功返回success否则返回fail.具体实现
如下:
方法名为showAdd(User u),通过传入的User对象添加新用户,如果成功返回success否则返回fail.具体实现 如下:
方法名为showList(),通过调用Service层的getUsers方法返回用户List<User>集合.具体实现 如下:
具体方法实现如下:
(6)配置dwr.xml文件。将showHello、showAdd、showList方法配置到dwr.xml中,使其可以访问。 具体的配置以及解释如下:
(7)配置dwr框架的调试功能,使其可以进行可视化调试。具体方法是设置web.xml中dwr配置下的debug为true.
设置成功后重新部署项目,启动服务器。在浏览器中输入localhost:端口名称/项目名称/dwr即可打开dwr的调试页面,比如我的项目名称是
ssh,端口号是80,则网址为:http://127.0.0.1:8080/combine/dwr/index.html,打开后出现如下页面:
如果看到如上页面,说明你的dwr已经配置成功,下面就是测试方法是否能正常运行。点击Hello方法将打开如下页面(部分截图):
上图包含三部分,第一部分是:
它指明了后台方法的js实现的js文件位置和dwr引擎的位置,这两个js文件为必须按项目,必须包含在页面文件上才能正常调用dwr框架。第二部分为可选内容,建议也包含在页面文件上。
第三部分为声明的方法,下面列出了全部的方法,但是有红色警告的不能使用,因为返回值不是基本的数据类型,而且在配置dwr信息时没有声明其访问权限。只有
没有任何警告信息表明其可以正常访问。
(8)调试页面测试方法能否正常运行。找到showHello方法
,在两个参数中输入我们的用户名和密码(rush 123456),如下所示:
,点击Execute执行该方法,如出现如下结果,则表明执行成功:
。说明:调试页面是为了方便调试用的,在实际发布后请关闭其调试功能。
(9)编写前台实现代码。
test_hello.html用来测试showHello方法test_add.html用来测试showAdd方法test_list.html用来测试showList方法下面先讲test_hello.html建立test_hello.html
在 页面中引入刚刚提到的三个js提交按钮添加onclick效果,执行的方法为OnSave()下面引入js
说明:username 和password分别获取网页上控件的用户名和密码值,两个if判断其值是否为空,如果为空,提示用户并且终止提交,从而实现
登陆验证。User.showHello:Hello是后台dwr配置中的js名称,showHello是后台业务逻辑实现函数,此函数有三个
参 数,username和password是入参,CallBackMsg是一个回调函数,系统将返回值放在回调函数里面显示。
(10)代码工作完成,现在进行实际测试。重新部署项目,启动服务器。在浏览器中打开网页:
首先填写口令及姓名都为222,提交数据后显示:
下面查看一下数据库是否存在该数据:
数据显示正常。下 面我们再回到页面,重复提交一遍数据。
提示fail。说明用户禁止重复提交数据,showHello()功能完成。(11)如test_hello.html的操作方法,我们创建
test_add.html及test_list.html首先是test_add.html因为它与test_Hello.html功能相似都是提交数
据功能。而唯一与test_hello.html不同的是接受的数据不同。Test_add对应函数是
它需要接收一个User对象,所以这时一定要设置dwr.xml中的convert对象
该程序会自动将数据转换成User对象。该页的html代码与test_Hello.html相同,只是js不同,js如下:
下面赶紧测试一下:http://127.0.0.1:8080/combine/test_add.html如果效果相同,则证明功能完成。
(11)test_list.html测试showList()方法两点需要注意:第一showList()为无参方法,所以只需要传入回调函数即可。第二返回的数据为对象数组,使用for语句进行数据读取。Html代码如下:
下面测试功能:http://127.0.0.1:8080/combine/test_list.html
没错就是一个按钮:点击按钮后页面显示如下:
Ok,全部完成。
参考文档:http://www.cnblogs.com/a7345678/archive/2008/10/23/1317982.html
http://www.cnblogs.com/rushoooooo/archive/2011/04/28/2032325.html
转:http://blog.csdn.net/e421083458/article/details/8806252
dwr与ssh框架整合教程的更多相关文章
- J2EE SSH框架整合教程
本文仅作为学习和研究的参考,与实际项目使用技术有所不同,由于作者水平有限,错误疏漏在所难免,请各位看官批评指教. 项目的源代码放在:https://github.com/Frank-Pei/SSHIn ...
- SSH框架整合
SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...
- ssh框架整合之登录以及增删改查
1.首先阐述一下我用得开发工具,myeclipse2017+oracle,所以我的基本配置步骤可能不一样,下面我用几张图来详解我的开发步骤. ---1先配置structs (Target 选择apac ...
- Spring+Hibernate+Struts(SSH)框架整合
SSH框架整合 前言:有人说,现在还是流行主流框架,SSM都出来很久了,更不要说SSH.我不以为然.现在许多公司所用的老项目还是ssh,如果改成流行框架,需要成本.比如金融IT这一块,数据库dao层还 ...
- J2EE进阶(十)SSH框架整合常见问题汇总(一)
SSH框架整合常见问题汇总(一) 前言 以下所列问题具有针对性,但是遇到同类型问题时均可按照此思路进行解决. HTTP Status 404 - No result defined for actio ...
- MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
MVC+Spring.NET+NHibernate .NET SSH框架整合 在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...
- SSH框架整合的其它方式
--------------------siwuxie095 SSH 框架整合的其它方式 1.主要是整合 Spring 框架和 Hibernate 框架时,可以不写 Hibernate 核心配置文件: ...
- SSH框架整合过程总结
---------------------siwuxie095 SSH 框架整合过程总结 (一)导入相关 jar 包(共 ...
- SSH框架整合思想
--------------------siwuxie095 SSH 框架整合思想 1.SSH 框架,即 Struts2 ...
随机推荐
- cent os下面的基本配置操作
二,修改Linux分辨率命令行 在root用户模式下,输入$ vi /boot/grub/grub.conf(路径可能会不一样,也可以是 /etc/grub.conf),打开grub.conf文件 我 ...
- Metro 应用无法打开解决办法
1.恢复默认UAC设置: 2.恢复自带防火墙服务启动类型为自动: 3.设置IE为默认浏览器(搜索和应用中): 4.如有可能使用Microsoft帐户,而不是本地帐户(仅使用有限的几个Metro应用): ...
- 【原】C# decimal字符串转成整数
第一种方法: string na="1000.53"; int a=int.Parse(na.Substring(0,na.IndexOf('.')));//返回值a=1000 第 ...
- Redis数据库?-Redis的Virtual Memory介绍(转)
众所周知,Redis是一个内存数据库,和Memcached类似,所有数据存在内存中,当然,Redis有rdb和appendonlyfile两个落地文件,可以对断电停机等故障下的数据恢复做一些保证.但是 ...
- Linux客户端、服务器、窗口管理器的关系
嵌入式linux中文站发现很多LINUX初学者在学习linux图形方面的知识时会遇到一些概念,如:X.X11.Xfree86.WM.KDE.GNOME.QT.QT/E.Qtopia.DirectFB. ...
- storm的作业单元:Topology
Storm系统的数据处理应用单元,是被打包的被称为Topology的作业. 它是由多个数据处理阶段组合而成的,而每个处理阶段在构造时被称为组件(Component),在运行时被称为任务. 那么,组件根 ...
- PLSQL_Oracle分区表和相应的分区索引管理和使用(案例)
2014-08-22 Created By BaoXinjian
- linux命令(5)文件操作:ls命令、显示文件总个数
一:ls命令是最常用的linux命令了:下面是ls --help里面的用法 在提示符下输入ls --help ,屏幕会显示该命令的使用格式及参数信息: 先介绍一下ls命令的主要参数: -a 列出目录下 ...
- HDFS的运行原理(转)
简介 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Go ...
- Python语言快速入门
Python的主提示符(>>>):是解释器告诉你它正在等待你输入的下一个语句 Python的次提示符(...):告诉你解释器正在等待你输入当前语句的其他部分 [简介] Python( ...