瞧,我们组的Web应用开发方式

我们开发小组5个人,一个组长;
用MVC方式开发WEB应用;
使用WinCVS进行版本控制团队开发;
Ant来实现编译发布;
应用服务器采用Tomcat,使用的时候(Apache和Tomcat整合);
数据库是Sybase和Oracle,采用连接池;
报表使用的是MingReport;
工程开发阶段:需求分析,设计,编码,测试,试运行,正式运行;
一个工程项目差不多50W,6个人,6个月来搞定。
----------------------------------
我们的MVC实现是这样的:

MVC模式:jsp,html充当Vidw(视图);servlet充当controler(控制器);class类充当Module(模块);

jsp通过提交form表单,或者带参数的url请求sevlet;servlet里doPost或者doGet方法根据参数调用Module类里面的方法进行添加、删除、更

新、查询数据的操作,然后用forward方法或者response.sendRedirect返回到jsp页面,这里servlet只控制流程,Class类里面处理业务逻辑;
servlet里面request.setAttribute()保存数据,在jsp页面request.getAttribute()得到数据。

我们的工程中封装了一些基础的工具类比如说(数据库的连接,查询添加删除更新,页面的显示等等),具体的项目也提炼出一些公共的业务

逻辑封装为不同的类。有整理较完善的js库和css样式表。

在我们的开发中,差不多是每个jsp页面对应一个servlet和module,当然在一个jsp页面很多时候实现的添加、删除、更新、查询复合功能。
只有查询数据的时候才用写sql,插入、更新、删除都是不用写sql,只需要绑定form中的字段和表中的字段就可以了,这里我们封装了几个类来实现的。

我想说的是:在我们的工程开发里面没有用到Struts,spring,hibernate,EJB等这些东西,而我很希望在我们开发多一些新的东西或者提高我们的技术含量,但是又不知道该怎么办,迷惑是否我们需要采用一些FrameWork,我们的开发算是一种么?

恳请各位有项目开发经验的大侠给予解惑,不胜感激!!!

还是建议用Structs,和Hibernate. 我觉得使用框架的好处是:第一,一个成熟的框架是高效的;第二,一个成熟的框架包含了前人的最佳实践经验,不用你再去苦苦探索. 使用框架后能够规范你们的工程,不会乱来,你比如持久层,用jdbc直接访问数据库吗?那自己写o/r mapping的工作量是很大的,而且会出问题,还不如用hibernate. 而且structs和hibernate的学习难度都不是很大的,所以我建议这两个还是要用的.

总的来说你门的开发方式还比较原始,而且mvc方式在某些web server上无法运行。
但话又说回来,应用太多的框架也不好,因为框架的规矩较多,反而不够灵活。hibernate很好,但我也顶多用他的单类映射方式,没有用其它太多的关系映射,曾经试验用过,发现作为框架的最大弱点:灵活性差就暴露出来了。
我现在用turbine框架,虽然都说turbine是如何如何的好,花了好大功夫搞定了,发现真正用起来作为框架的弱点就暴露出来了。就象用hibernate一样,每个框架都有它非常优秀的地方,就只要使用这个优点就好了,尽量使用自己的开发组件,主要是方便控制。

总的来说你门的开发方式还比较原始,而且mvc方式在某些web server上无法运行。
但话又说回来,应用太多的框架也不好,因为框架的规矩较多,反而不够灵活。hibernate很好,但我也顶多用他的单类映射方式,没有用其它太多的关系映射,曾经试验用过,发现作为框架的最大弱点:灵活性差就暴露出来了。
我现在用turbine框架,虽然都说turbine是如何如何的好,花了好大功夫搞定了,发现真正用起来作为框架的弱点就暴露出来了。就象用hibernate一样,每个框架都有它非常优秀的地方,就只要使用这个优点就好了,尽量使用自己的开发组件,主要是方便控制。

对于Struts我个人摸索一些,总感觉如果用了在controle做的太复杂而且美工也不是太容易,所以没有选用。

而且我们的系统有个毛病就是太慢,我们在sql方面做了一些优化,连接池方面,Tomcat和数据库放在不同的Server上面可是速度却没有大的起色,我们并发用户一般不超过5个,每个servlet都实现SingleThreadModel。

请问用了hibernate能否有效的解决速度慢的问题么?

总的来说,我认为你们这个项目管理设计和开发还是有一定的水平的,很多使用Jsp/JavaBeans结构开发的系统方式很原始,至少在设计思想上没有MVC或明显的分层概念。

其实,无论使用什么框架和结构,只要自己系统能够做到层次控制严格分明,类之间达到一定程度的解耦,这样的系统就具有不错的可扩展性和重
用性。使用那些框架是初始目的也是为了强化(强制)或方便初学者来达到分层的目的。

我从你的表述中已经发现:
>只有查询数据的时候才用写sql,插入、更新、删除都是不用写sql,只需>要绑定form中的字段和表中的字段就可以了,这里我们封装了几个类来实现的。

其中“插入、更新、删除不用写sql”,不知你具体使用什么技术完成的?这项技术是否影响到性能问题?

查询读取时建议使用缓存可提高性能。


再补充一下:
你们有这样良好的基础,我认为使用Struts、EJB、Spring或Hibernate等流行框架升级你们系统就容易多,因为他们的目的是一致的,而且升级的好处会很多,特别是维护性方面要通用多,因为大家都比较了解这些流行的框架,所以大家都能够来维护扩充你的系统。

banq老大,人家就这么一个系统,你不会也推荐他们上EJB吧?

我觉得以上方式基本上已经不错了。用框架的原因就是因为这些框架在使用模式上有它的优点。使用框架之后,可以较好地扩充。根据我的理解,struct框架其实是以一种优雅的方式实现MVC模式,当然还用到了其它模式。但我就不喜欢里面用到的大量的标签库。我认为,只要自己很好地做到了分层,没有必要一定要用什么框架。

多谢各位的帮助,尤其Banq,thank you!

我们的系统已经进行了些优化,目前速度问题基本已可以忍受了。下一个系统打算用struts来实现,积极技术准备中。

并发5个还慢,问题不是出在Web上面,应该是OLAP的应用吧?

优化你的SQL查询比什么都重要,SQL语句少兜几个循环,什么都来了.

重要的地方多用SP吧.

定义的清楚,开发的速度

另外,我非常赞同使用JSP+JavaBean+Hibernate+DAO/JDBC,JSP只用来打印和传递数据.

JavaBean用一般的测试,速度飞快的,又容易Debug/Test也非常容易,做UT非常Simple,当然要用点Mock Object模拟一下.

Hibernate省得你先SQL然后用getter/setter去做了,都是体力活,大家是程序员不是机器人都不容易的.

你要有信心,项目成功了,技术上=成功了.

我前面已经说了,选择什么架构在这个地步已经不重要了,无论什么架构都要面临单机系统的性能提升(对于EJB集群也是),因此,建议他们对这个Web系统实现性能优化,多使用一些Pool和Cache等等。


说得不错啊,我初涉J2EE,以后还要请你多多帮忙啊!!

mingreport免费吗?

mingreport好用吗.我正在寻找一个报表工具