首先声明我是新手说的不对不要见笑啊
当时刚接触java的时候,只知道开发一个web应用程序最好的解决方式就是javabean+jsp+servlet,但是经过一段时间的学习,发现该种方法在界面的交互性方面效果不是很好(以前小弟专门从事c/s的开发,对程序界面的交互性比较重视)。所以在网上寻找好的解决方法,后来发现了ajax技术,如获至宝,开始重点研究。等我基本掌握了ajax开发技巧后,我在ajax的基础上,结合以下几种技术来开发有良好交互性的web应用程序:ajax+css+html+javascrip+java+servlet+sqlserver。具体的方式为,
1、用html+css+javascrip开发出web界面,
2、当界面上需要提取sqlserver数据库中的数据时,就采用ajax调用servlet中相应的方法,并且采用xml解决两者之间的通信问题。当从servlet中返回数据后就由javascript将数据返回到界面上。
3、servlet是通过调用由java业务层中的相应方法,完成相应的工作,真正与sqlserver的数据库操作都封装在java的业务层,业务层和servlet之间的只传递封装好的数据对象(相当于bean)。
以上就是我目前采用的开发方式,概括来说就是使用java完成数据层、业务层以及servlet的开发,使用javascript+html+css完成web界面的开发,使用ajax+xml完成界面与数据之间的传递与接收。
目前我困惑的是,采用这种方式开发,我程序中需要大量的使用javascript来进行界面的控制以及ajax数据的处理,并且已经不需要采用<jsp:useBean id="×××" scope="page" class="×××.×××" >以及set/getAttribute等方法来对javabean进行处理,因为所有的数据传输都已经通过xml完成,已经不需要javabean了。而且也不需要把网页定义为jsp文件(虽然我目前的项目中仍然定义为jsp),因为在网页中已经不存在任何jsp元素。
目前这种方法虽然我经过测试可以开发出交互性良好的web应用程序,但是我到网上查找后,根本没有发现有和我相类似的开发方式,而且开发方式中除了业务层和数据层是使用java完成外,其他跟java已无关系,不知道这种开发方式还能不能算jsp,不知道这种开发方式算哪种范畴,也不知道这种开发方式是否存在严重的弊端,请各位大侠帮我鉴定鉴定,帮我看看这样的开发方式是否合理?有哪些需要改进?
不知道能力有限的小弟有没有把问题说清楚,欢迎讨论!
小弟在此谢过!!!

解决方案 »

  1.   

    你所说的有我所没接触的东西,所以不敢胡乱评论,不过对于产品开发而言,我觉得无所谓哪种方式开发,我们应该注重的是开发周期长短,开发效率快慢,以及如此开发一个产品的可靠性和日后的可维护性。java开发系统,xml+javascript应该是很常用的,标准的mvc就应该表示层不带有 <%%>代码,像asp.net。其他更多的就不清楚了,我也仅是入门而已。
      

  2.   

    xml和ajax接触的还很少  不过感觉你前面说的都挺对的  我也是新手   刚刚接触  我感觉你的方法挺合理的 
      

  3.   

    客户端:jsp 最终也要变成html返回客户端的浏览器,所以对于用户来说,无所谓。
    服务器端:jsp也要先转化为servlet才能运行,所以可以说jsp == servlet
    对于纯ajax来说,你调用jsp 或 servlet 没有区别另:支持1楼的。 无论哪种方法,快速满足客户需求是最重要的。
    建议:不要太过分的使用ajax,否则。。嘿嘿,你会死的很惨(怎么惨?自己想吧)。按需使用才是明智的。
      

  4.   

    谢谢大家的回复,我对java写web应用程序也是刚起步,有很多基础的东西还没彻底搞清楚。
    java2000_net ,我就是怕出现你说的这种情况,能不能说说太过分使用ajax的话,会死成什么样子
    还有,我前面提到的目前这种方式中已经不再用到javabean,但是我在网上查了相关的资料后,发现不管struts,hibernate等框架,好像都要用到javabean的概念,所以我很困惑。
      

  5.   

    就像lihui157 说的,如果开发方式的好坏用产品的可靠性和日后的可维护性来衡量的话,我觉得从维护性来说,经过测试,这种开发方式相对来说维护起来还是比较清晰,方便的,因为它每一层都分得还算清晰;而产品的可靠性我真的不敢担保,就像上面说的就怕出现死的很惨的状况,到时真的自己怎么死都不知道
      

  6.   

    struts使用javaBean是为分层,取值可用getter 赋值可用setter,页面不是有<jsp:useBean>吗展现也方便,、
    hibernate主要是持久技术,它的xml配置文件相当强,与javaBean类相关联起来,起到持久(session)的功能
      

  7.   

    我是小菜,我觉得新手还是打好基础,javabean+jsp+servlet要是能熟练最好,对于struts是要求比较高的,一般是项目经理用的,所以我还是觉得基础最重要,学好java,JSP才是最重要的,呵呵,你就别学的太杂了啊
      

  8.   

    楼上的说的确实是我目前的情况,我确实觉的我学的太杂了。
    但是javabean+jsp+servlet这种传统的方式,应该对界面的交互性没有很好的支持吧,每次都要提交页面后,才能更新数据,正因为这样我才去学习ajax的啊
      

  9.   

    对于我的话,还是比较习惯用javabean+jsp+servlet,对于它的好处,说老实话,还真不知道该怎么去体会。有时候觉得我用ASP速度还快些,只是程序性能没那么可靠。
      

  10.   

    //还有,我前面提到的目前这种方式中已经不再用到javabean,但是我在网上查了相关的资料后,发现不管struts,hibernate等框架,好像都要用到javabean的概念,所以我很困惑。Bean 是一种结构,采用规范的get/set进行属性设置,无论你采用什么技术,你都要尽可能的把数据层,逻辑层分开,而其中数据的传输用Bean是最简单有效的,至少在java之间,采用xml传输,看上去你好象不用了,其实,解析xml比bean 要浪费太多的时间,而且解析xml的类,也是采用bean的。你有类,就有属性,就要对属性操作,所以Bean只是一种结构,最简单的,可能就是大家常说的POJO了。
    除了属性和对应的get/set方法,不再有任何其他东西的Bean.也许你习惯了jsp里面的<jsp:useBean 了, 这东西我很少用,我都是自己new MyBean()的,呵呵!
    每个人的变成习惯不同,达到目的才是最重要的。某些老掉牙的程序,结构一团混乱,但是它能用,而且速度不慢,所以会一直用下去,因为它满足需求。
      

  11.   

    说到bean的话,目前这个方式中,确实也存在bean,数据层都是采用bean完成的,数据层中的类都是get/set方法,每一个类中的属性都对应于一张表的字段,只是这个bean在我的这种开发方式中只存在与java中,即业务层(即逻辑层)和servlet中。
    但是如果不采用ajax方式,而采用javabean+jsp+servlet的模式,有没有其他更好的方法解决应用程序性的交互性呢?即点击一个按钮后,需要立即在界面上显示用户所需要看到的东西,而不是通过action=×××.serlvet刷新页面来完成呢?
      

  12.   

    Iframe , 在没有Ajax大量使用之前,都是用这个的!
      

  13.   


    用到javabean实现代码逻辑,实用性好,可维护,多重用
      

  14.   

    呵呵,我用的是hibernate+struts+spring+jsp+javascript+oracle目前正在开发证券交易系统,楼主的开发 模式我也用过,其缺点也就是代码的可重用性不高,占用大量的空间,每个都有每个的好,只要能完成业务需求,优化代码的重用性,可移植性,安全性,无非就这些,用什么都一样,目的只要能在最短的时间完成公司发的项目就行了
      

  15.   

    即点击一个按钮后,需要立即在界面上显示用户所需要看到的东西,而不是通过action=×××.serlvet刷新页面来完成呢?
    --------------------------------------
    这个可以采用asp.net的方式解决,编写按钮事件,点击按钮后,运行一个自定义方法,在想显示结果的地方显示出来,给每个html元素设定一个唯一的ID用来联系,数据使用xml做为缓存事先保存,要不然,你仍让要刷新获取结果。这方法临时想出来的,我不保证能用,呵呵。
      

  16.   

    我以前就用过你这样的一个后台,我们自己写的。
    但是我们用的java类一点也不少呀:
    与db交互的公共bean,生成符合pojo的bean,与excel交互的bean,上传下载bean,等等吧。不过个人同意二楼的看法,关键是更好的完成任务
      

  17.   

    ajax依赖于JS,所以JS的一些缺点它都继承了.
    比如安全性比较低等等,而且AJAX会重复读取数据(也有解决办法的^^)
    使用BEAN,可以得到一个持久层,常驻内存,而且对返回的数据引用操作比用JS解析xml数据快很多.
    这是考虑速度,如果考虑瘦服务器端的话,AJAX是比较好的选择,而且交互性比较好,这也是AJAX流行的原因
    lz的方法,程序的耦合性小,但是重用性低.
    都有好的地方,具体问题具体使用..
    说了等于白说,不好意思哈
      

  18.   

    ajax依赖于JS,所以JS的一些缺点它都继承了.
    比如安全性比较低等等,而且AJAX会重复读取数据(也有解决办法的^^)
    使用BEAN,可以得到一个持久层,常驻内存,而且对返回的数据引用操作比用JS解析xml数据快很多.
    这是考虑速度,如果考虑瘦服务器端的话,AJAX是比较好的选择,而且交互性比较好,这也是AJAX流行的原因
    lz的方法,程序的耦合性小,但是重用性低.
    都有好的地方,具体问题具体使用..
    说了等于白说,不好意思哈
      

  19.   

    支持3楼,不要太过分的使用ajax
      

  20.   

    谢谢大家对我这个问题的关心,通过大家的讨论我对ajax和bean两种处理方式有了进一步的了解。
    我在网上也针对性地查了下ajax的优缺点,确实正如tangshd 说的那样,ajax依赖于JS,所以JS的一些缺点它都继承了。大量过分的使用ajax会造成肥客户端的情况,在网速慢的情况下,其可能严重影响系统的运行。
    但是通过我自己的体会,ajax的有点也是无法掩盖的,那就是其优越的交互性能力,可以将web应用程序做的和桌面应用程序性一样的效果。
    由于我能力有限,马上放弃这种开发模式,转向新的开发模式,我恐怕心有余而力不足,因此我决定对于手上当前这个项目还是采用当前这种开发模式来完成,因为,目前这个项目只是限于公司内部使用,机器差异性不大,局域网也比较稳定,我想用ajax应该问题不是很大。
    等这个项目结束了,我会去了解其他的开发模式,譬如yanqiaofang所说的那种模式hibernate+struts+spring+jsp+javascript+oracle。由于我刚入门,对hibernate+struts+spring等模式还不清楚,而到网上查找相关资料,觉得看的我一头雾水,摸不着头脑,各位大侠,能否在这里帮我提点提点啊。而这种模式的开发能否达到ajax开发那种良好的交互性呢?(不好意思,小弟我有很重的交互性情节,呵呵)希望大家再给小弟我一点建议啊,我帖子再等到月底关闭,好吗?
      

  21.   

    楼主的疑惑我也有同感
    我们最近做完一个银行系统,当然了是模拟银行的业务流程
    包括存储、转账、外汇、网上银行、一卡通、后台六部分
    用的是jsp+javabean+servlet+sqlserver
    做完了感觉最大的毛病就是用jsp处理业务逻辑很不方便,不清楚,尤其在利率计算方面
    写的文件也很多,很臃肿。
    我觉得做这种系统用ejb+jfs+hibernate比较好,很想尝试一下,欢迎交流!
    我也是初学者,说的不对的地方大家见谅!
      

  22.   

    对于楼主的困惑我个人觉得完全没必要,因为,说到底jsp要编译为servlet运行。我们做开发的注重的是交互性,只要交互性好,而且与付出的努力成正比就行。
    你们所担心的使用ajax造成胖客户端的疑虑是杞人忧天,因为一个.js文件(就我们所写的)不过才几十K,就目前的网速来说简直下载时感觉不出来。
      

  23.   

    server端可重用 bean来实现client端可重用 Ajax有一些框架可以试试 Yahoo UI ,Google GWT,还有一个好像叫Dojo吧,
    他们都趋向封装javascript,让开发者同样实现ajax效果,开发方式却像swing一样,个人感觉调试更舒服
    模块化更强,我也没用过,只是看到过,谁用过,继续
      

  24.   

    我参加过一个项目,业务基本上都是在ORACLE中的PROCEDURE中实现。。就是很机械的写代码,前台js触发,然后调用SERVLET,然后BEAN根据传递的参数调用数据库中的PROCEDURE,
    然后返回数据引用,然后列表显示。完了。
    哭!!!
      

  25.   

    而且也不需要把网页定义为jsp文件(虽然我目前的项目中仍然定义为jsp),因为在网页中已经不存在任何jsp元素。 
    mvc就是要把代码从页面中分离出来.
    前这种方法虽然我经过测试可以开发出交互性良好的web应用程序,但是我到网上查找后,根本没有发现有和我相类似的开发方式,而且开发方式中除了业务层和数据层是使用java完成外,其他跟java已无关系,不知道这种开发方式还能不能算jsp,不知道这种开发方式算哪种范畴
    属于J2EE规范 JAVA技术
      

  26.   

    你可是尝试使用 JSF +Hibernate +Spring 这中框架也挺不错的,其中的Bean只需在xml文件中声明,页面只要调用Bean 就可以。不需要<jsp:useBean   id="×××"   scope="page"   class="×××.×××"   > 
      

  27.   

    谢谢大家对这个帖子的关注,经过大家的讨论,小弟对ajax,javascript的优缺点有了进一步的了解,今天就此结贴!今后小弟有什么问题的还请大家不吝赐教!!!
    在此祝大家新年快乐、万事如意!!!