`
bluky999
  • 浏览: 719777 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在基于servlet的小型应用中使用ajax与DWR

    博客分类:
  • Java
阅读更多

在实际的项目开发过程中,经常会有这样的需求: 需要一个小型的web站点,只有几个页面用于一个会议或者一次主题活动等等,或者是配合宣传某产品或服务,甚至是组织内部的某种表单数据收集等!  

 

一 特点

这种小型应用,在实际业务领域中普遍存在,频繁出现;也许你曾想流水线生产,可是至今也没有人做出像样的来。。。

简单分析一下其特点:

1 前台页面:10个左右(经常是10个以内)的页面,需要以xhtml+css的webstandard为实现技术,以能全部通过w3c验证为标准;

2 只有一个或者两个表单数据需要提交,例如会议注册等;后台需要查询和统计这些数据;

3 只有一个或者两个查询数据的case (实际上大多时候都是不需要查询的,直接罗列)。

 

策略

假如model层你可以自由选择,oracle,mysql,....,derby,SQLite....xml.....plain text.... ;总之把该保存的保存下来即可!

 

那么,我们比较推荐的策略是:

1 Model 层:如上

2 control :还需要control么? 是的,需要;但是就像1+1=2这么简单;

3 view: 就那么几个页面

4 business logic:

   (1 把用户通过页面表单提交的数据保存好;

   (2 根据用户选择查询相关的数据并显示到页面。

 

技术策略:

1 我们忽略对数据源的访问吧,假定你知道怎么做;

2 表单提交或者数据查询时的action: servlet ;

3 业务处理: java bean

4 其实,我们不需要servlet来做太多url方面的事情;仅仅需要它帮我们接受参数并把结果返回即可。

 

三 实例

场景假设:一次会议;客户需要在页面注册;客户需要查询会议演讲者信息;其他静态信息。

 

1 比如我们使用两个表:customer ; speaker

2 DAO: custumerDAO [add,search]

            speakerDAO [add,search]

   Servlet: RegisterServlet ; GetCustomerListServlet(ADMIN)

                GetSpeakerServlet ; AddSpeakerServlet(ADMIN)

   每个servlet都有一个相应的业务方法,以将业务处理隔离。

 

如果还有其他数据源无关的业务需要处理,建议直接使用DWR !

 

 

3 两个表单: 提交注册信息;查询演讲者信息

 

4页面:

index.html :首页

register.html:注册

speaker.html:演讲者查询

其他需要的页面

 

case流程模拟:

1 注册表单:

   客户在register.html填写注册信息,点击提交按钮时,我们不需要提交表单,而是把表单的数据经过验证和包装后,采用XmlHttpRequest发送到 RegisterServlet,RegisterServlet调用注册的业务方法,完成数据添加的任务;然后更新页面以通知客户注册成功或者失败);

 

2 演讲者查询:

    与1类似,把查询参数使用ajax发送到GetSpeakerServlet,该servlet调用查询演讲者的业务方法,然后在页面使用返回的信息更新页面。

 

 

四 总结 优点

 

本文针对基于servlet的小型web应用,提出了采用ajax+DWR的策略来降低开发复杂度,提高开发效率!

 

此策略的优点是:对于java程序员,只要懂得如何使用javabean+servlet即可,至于ajax和DWR ,学习代价相对很低;甚至于你只要通过你的第一个小项目即可熟练。

 

后记:

 

之所以写这篇小文,是因为我不是PHP程序员,虽然我也写python web。因为不管是理论还是实践中,PHP是最好的解决本文所说类型需求的方式!

 

本文提到的策略,比较适合于java web开发人员;你知道,在这个web2.0的时代,人们有很多很多的选择。

作为java程序员,如果遇到上述类型的问题,个人以为采用本文提到的策略是相对比较明智的选择!

可能我们已经不喜欢在这种小应用中使用jsp了,而且我们希望页面的响应速度更快,不想在jsp中放那么多的html 。。。

 

最后顺祝本文提到的“会议”圆满成功!

分享到:
评论
1 楼 bluky999 2008-10-31  
需要补充的一点是:
个人建议在返回数据时能采用JSON格式;这样,你的应用其实可以采用任何一种可行的技术来作为action ;你的后台业务处理可以换作你想要的任何技术类型。

比如,表单数据你可以提交到 register.py 

相关推荐

    OA项目(Hibernate+Struts+Ajax+DWR)

    【OA项目】是一个基于Java技术栈的企业级应用,采用了经典的`Hibernate+Struts+Ajax+DWR`架构。这个架构在21世纪初至中期非常流行,尤其在B/S(Browser/Server)模式的系统开发中,是实现企业级Web应用的首选方案。 ...

    dwr在线交流即时通讯系统

    这个小型的在线交流系统就是基于DWR构建的,利用了Ajax技术来提升用户体验,实现网页上的即时通讯功能。 1. **DWR框架详解** DWR的核心功能是提供了一种安全、高效的机制,使得JavaScript可以直接调用服务器端的...

    dwr实例 - dwr入门 本人开发的:小游戏 大家一起来赚钱

    1. **配置DWR**:首先,你需要在项目中集成DWR,这通常包括在`web.xml`中配置DWR的Servlet,以及在项目的类路径下创建`dwr.xml`配置文件,用于声明暴露给JavaScript的Java类和方法。 2. **生成JavaScript接口**:...

    dwr消息推送聊天

    DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行双向通信,从而实现Web应用中的实时交互。在这个“DWR消息推送聊天”项目中,你将找到一个小型的示例,展示了如何利用DWR技术构建...

    Dwr最简单小例子

    Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现动态Web应用的功能。DWR简化了Ajax(Asynchronous JavaScript and XML)开发,使得前端开发者可以更...

    java dwr实现的投票小功能

    Java DWR(Direct Web Remoting)是一种开源技术,用于在Web应用程序中实现实时的、双向的JavaScript到Java通信。这个“java dwr实现的投票小功能”项目显然是利用DWR来创建一个简单的投票系统,使得用户可以在前端...

    基于web的超市管理系统的设计与实现.docx

    在实际应用中,DWR(Direct Web Remoting)和JSON(JavaScript Object Notation)常被用作Ajax的实现方式。 - DWR允许JavaScript直接与服务器端的Java方法进行交互,提供异步数据交换。 - JSON是一种轻量级的数据...

    GlassFish_Enterprise_WP.rar_wp

    在Web应用程序开发中,DWR是一个关键工具,它使得JavaScript可以直接调用服务器端的Java方法,实现了浏览器与服务器的实时通信。DWR通过Ajax技术,极大地提高了用户体验,用户无需刷新页面就能获取或更新数据。例如...

    SSH + AJAX + TOMCAT + MYSQL + 新手上路 + 详细图文 LIB 2

    - AJAX允许Web应用在不刷新整个页面的情况下与服务器进行异步数据交换,提升了用户体验,减少了网络流量。 - 使用XMLHttpRequest对象作为基础,通过JavaScript进行通信,并利用DOM操作更新页面部分。 3. **Tomcat...

    J2EE开发学习文档描述总纲目.doc

    - **J2EE介绍**:J2EE平台包含一组服务、APIs和协议,用于开发可部署在多层架构中的分布式应用程序,特别适合大型企业级应用。 - **JSP(JavaServer Pages)**:JSP是动态网页生成技术,允许开发者将HTML与Java...

    Java框架学习笔记.pdf

    Ajax通过JavaScript和AJAX引擎来实现,比如DWR(Direct Web Remoting)就是一种流行的Java/Ajax桥技术,它允许服务器端的Java方法直接在客户端的JavaScript中被调用。在学习笔记中提到的“*.do,/action/*,*.action”...

    纯JSP+DWR实现三级联动下拉选择菜单实现技巧

    在本文中,我们将探讨如何使用纯JSP和Direct Web Remoting (DWR) 实现一个三级联动下拉选择菜单的示例。这个技术通常用于在Web应用中创建动态交互的用户体验,例如根据用户在一个下拉菜单中的选择更新其他下拉菜单的...

    JAVA项目描述 (2).docx

    3. **Direct Web Remoting (DWR)**: DWR允许JavaScript在浏览器端与Java后端进行实时交互,创建类似AJAX的应用。DWR 2.0提供了安全、异步的远程调用,使前端页面可以动态更新服务器数据,提升用户体验。 4. **操作...

    高级Java软件架构师培训课程体系介绍.doc

    - **AJAX与XML**:使用DOJO、DWR进行AJAX开发,了解XML在Web编程中的应用。 5. **项目实战**: - **中期项目**:如工业监视界面动态显示、绘图软件开发,通过实践巩固Java SE编程技能。 - **高级项目**:例如...

    计算机技术简历模板.pdf

    7. 网络技术和通信协议:简历提及了“XML”,“json”,和“xmlHttpRequest”,这些都是网络开发中使用的重要技术。XML是一种标记语言,用于存储和传输数据;json是一种轻量级的数据交换格式;xmlHttpRequest是用于...

    高级Java软件架构师学习计划

    - **学习目标**:深入了解Struts框架在JavaEE程序开发中的应用。 - **具体内容**:进一步研究Struts框架的特点和优势,以及如何将Struts应用于JavaEE程序中。 - **预期成果**:能够熟练使用Struts框架开发复杂的...

    Java有工作经历个人简历.doc

    - **项目描述**:基于B/S技术的办公信息管理系统,针对中小型公司办公使用。 - **项目技术**: - 使用Struts、Hibernate、Spring、Ajax等技术。 - 采用六层架构设计:view(表示)层、control(控制转发)层、models...

    海联讯科技Java面试题.doc

    - DWR允许JavaScript与Java服务器端进行实时交互,实现AJAX功能。 20. **JSP基础配置** - JSP页面需要引入Servlet API、JSP API等相关jar包。 21. **Hibernate ID生成策略** - Hibernate提供了多种ID生成策略,...

    IBM JAVA培训计划

    1. **项目实践一**:重点在于培养学员的基础编程能力和实际操作能力,通过完成小型项目来加强理解和应用。 2. **项目实践二**:进一步深入到WEB开发领域,引入更多现代WEB技术和框架,提高学员对于复杂系统的理解和...

Global site tag (gtag.js) - Google Analytics