怎样构造一个优秀WEB系统(讨论)

jinsanqi 2003-09-25 03:50:02
做了N个WEB应用系统,感觉大同小异,但是因为组织不善的原故,每次一个新项目出来后都会去重新构造一个系统框架,虽然说可重用,但是一直做得不好。现在我把我知道的一些技术列举出来,和大家讨论一下:

1。数据库连接
a. JDBC连接池
b. EJB
c. JDO等

2.日志和异常处理

3.框架模式
a. Struts
b. JSP模式一或二
c. Turbine
d. 其它等

4.资源文件处理

漏了补上.谢谢.

由于每个项目都很紧,所以做的时候常常在这些方面做得很不专业.
我想如果能有一个非常优秀的系统基础框架,把各个技术综合运用起来.那么下次开发一个系统时就可以直接写业务逻辑了,省了不少时间.请大家讨论讨论,谁有一个好的系统基础框架拿出来大家学习学习.我做的那个就免了,实在太差.只是一个模式二的改进版.
总共就这么点分了,全散!
...全文
57 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaraul 2003-10-01
  • 打赏
  • 举报
回复
前端MVC框架,后端使用DAO+VALUE.Spring是Rod Johnson开发的一个J2EE framework,我用着还比较舒服。即使不用它的MVC部分,它提供的infrastructure也可以和其他web framework(例如struts)集成.Web只是对J2EE应用的一个包装而已。一个好的Web应用必定首先是一个好的J2EE应用,这就决定了Struts之类的pure web framework并不能对J2EE应用起到很大的帮助——如果能够把基础设施和体系结构做好,哪怕只用JSP也可以得到非常漂亮的Web应用,毕竟Struts在参数装配方面所做的贡献并不大。
peopleking 2003-09-29
  • 打赏
  • 举报
回复
你的要求可以整个struts 和petstore,这两各架构,来达到目的,struts用来做前端控制,接见petstore中调用EJB,JDBC的方法和
设计模式,至于JDO,我觉得它是一个新事务,等成熟后,再加入,况且JDO和EJB的功效类似,没有必要都用
Schlemiel 2003-09-29
  • 打赏
  • 举报
回复
to jinsanqi(i'm鸟人):

我很少用那种向导式的方便工具,再说我也用不起JBuilder,那玩意对我来说太贵了,而且并不能提供那么多的价值。在我看来,一种O/R mapping机制的简单与否,恐怕不是取决于“开发的速度”的吧?——更何况,还是使用一种特定工具时的开发速度。一种非POJO的O/R mapping方案,不管它用起来有多么轻松,它都是一个臃肿的重量级方案,因为它束缚了应用的可移植性。如果采用entity bean作为O/R方案,你的实体就显式地受缚于EJB,更换persistence layer就成为了不可能。

天才少年Rickard Oberg的作品WebWork也是一个不错的J2EE框架。但Oberg做事情总是三分钟热情,很少能把自己精彩的点子做得很完善的,WebWork也是如此。比较之下,还是Spring的框架比较完善,功能也比较齐备。这里有几篇很好的文章,看看应该就可以了解Spring的用法了:http://www.springframework.org/documentation.html
XRS 2003-09-29
  • 打赏
  • 举报
回复
太好了
jinsanqi 2003-09-29
  • 打赏
  • 举报
回复
嘿嘿!
在楼上几位高人面前,小弟实在有些相形见绌。
刚刚下载了一个spring,虽然还不知道怎么用。
但看它的lib目录下的确集成了好多东东,居然连poi也有,嘻嘻,这个东东刚刚几天前做excel打印的时候用到了。
to Schlemiel:
你说Hibernate比EJB要难用?我以前用JB开发CMP的时候倒觉得很好用,点点几下就可以根据表生成一个CMP了,然后再加一些QL语句就OK了。
但是看了《程序员》杂志,我倒觉得它更难用些?不过现在不能用JB了,所以用这个倒是个好主意?
哦,问一下,像spring这样的J2EE框架其它还有吗?
用spring是否需要一些其它辅助工具?
Schlemiel 2003-09-29
  • 打赏
  • 举报
回复
to dmhorse(dmhorse):
要研究就研究罗,直接看Hibernate的文档,比我的建议要管用得多。
Hibernate并入JBOSS以后,据说后续的版本将兼容JDO 2.0——如果JDO规范修改得足够好的话。对于Hibernate用户来说,这是个大利好,自己的学习投资将得到最大限度的保护。
jinsanqi 2003-09-29
  • 打赏
  • 举报
回复
大家都在杭州,就交个朋友吧。嘿嘿。

to Schlemiel(维特根斯坦的扇子) :

管它什么道,让它变得清净些,少拥挤些才是我们所希望的。
你家是不是很远?我国庆先回去休息两天,然后再回来杭州玩。
听说那时候西湖根本不能去,人山人海。咱还是平时去去算了。
你自己做的基于spring的系统有没有写一些注释,能不能让小弟学习学习。谢谢!

jinsanqi 2003-09-29
  • 打赏
  • 举报
回复
to wkoji:
那就交个朋友吧。

to Schlemiel(维特根斯坦的扇子):
你老家是哪的?一定很远吧,我先回家休息几天,再回杭州逛几天。工作9天班已经快受不了了。
咱们不管它什么大道,只要能把路搞得干净些,不要太拥挤就好。
你做的东东有没有注释什么的,能不能发给我让我学习学习?

Schlemiel 2003-09-29
  • 打赏
  • 举报
回复
蓝图大道这种面子工程肯定能挣不少钱吧?我们手上的项目钱很少,我都有点提不起精神来,所以试着玩一些新鲜玩意。Spring主页上那篇“集成Spring和Tapestry”值得一看,这种用法是很可推荐的,尽管web framework不一定用Tapestry。我现在也只是试着用Spring做一些基础设施,例如配置管理、persistence layer之类的。

这将是我在杭州过的第一个黄金周长假。像这种旅游城市,想来一定很拥挤,真是讨厌。
wkoji 2003-09-29
  • 打赏
  • 举报
回复
我也在杭州哦
jinsanqi 2003-09-29
  • 打赏
  • 举报
回复
to Schlemiel(维特根斯坦的扇子) :
CSDN真是太小了,居然近在咫尺,呵呵!
你有用spring做过一些系统吗?效果怎么样?
我在文三街这边,最近在搞蓝图大道,你知道的吧。
我的MSN:jinsanqi@msn.com
有空聊聊。
Aileenwyh 2003-09-29
  • 打赏
  • 举报
回复
1、数据库
DB2
2、应用服务器:
WebSphere5.0
3、开发模式:
Struts(典型的MVC架构)
4、开发语言:
当然是Java了
Schlemiel 2003-09-29
  • 打赏
  • 举报
回复
to jinsanqi(i'm鸟人):
巧了,我也在杭州。
国内的资料本来就少,再加上J2EE技术发展变化快,自然是难找到。做J2EE的人,还是只能靠自己,直接去吸收第一手的资料。等别人咬碎嚼烂了再来喂给你,怕这东西也就快过时了。
jinsanqi 2003-09-29
  • 打赏
  • 举报
回复
TO Schlemiel(维特根斯坦的扇子):
你真强。知道得这么多啊。
Spring在国内是不是应用比较少?我搜了一下都没找到相关的帖子。
小弟是一个在杭州混的小仔,以后请多多指教。
vcvj 2003-09-29
  • 打赏
  • 举报
回复
精彩
zhaoye2000 2003-09-28
  • 打赏
  • 举报
回复
我靠,要把这些全部封装起来,那tmd就不是微软了吗!
neuhawk 2003-09-28
  • 打赏
  • 举报
回复
说说我现在的项目情况:

1。数据库连接
Hibernate

2.日志和异常处理
lo4j
异常处理:IBM的教程有介绍,我打算做成页面显示异常信息,比如:数据库连接失败,主键重复。

3.框架模式

JSP模式一或二

4.资源文件处理
没什么好说的。
Schlemiel 2003-09-28
  • 打赏
  • 举报
回复
楼主说的4点很有意思:
1.数据库连接
2.日志和异常处理
3.框架模式
4.资源文件处理

这恰好是Spring框架所提供的东西。在Persistence Layer上,Spring提供了一个便利的管理机制,并且扩展性也不错。如果希望采用O/R mapping作为基本的persistence手段,建议采用Hibernate这样的轻量级方案,不提倡随便用entity bean。

日志方面,一般的框架都会用log4j或者J2SE 1.4 logging API,没什么可说的。倒是异常,这是一个有趣的话题。简单说,(1)异常应该分层,异常的层次应该和应用的层次一一对应;(2)系统内的异常传播应该尽量采用un-checked exception。如果你采用entity bean作为persistence机制,由于un-checked exception会导致EJB的崩溃,可能你必须做一些妥协。但在DAO层以上,传播的异常应该全部是un-checked。

web framework在很大程度上是一个缺乏新意的话题。如果不打算采用Tapestry这样的另类框架,MVC模式将是你的首选。需要注意的是,MVC虽然能保证web层的干净,但并不足以保证web层的轻薄,而一个薄web层是应用移植性的重要保障,并且便于单元测试。习惯于Struts的人常常犯两个错误:(1)用form bean(继承ActionForm)作为DTO;(2)在action(继承Action)里写大量的业务代码。在一个理想的web应用里,form bean(或者与它类似的特定于框架的数据传输机制)唯一可以出现的地方只能是JSP页面和action;action唯一的工作只能是在form bean和DTO之间做转换,并调用——通常应该只有一次——service层的方法,最后转到某一个出口。如果你的action做了更多的工作,请考虑将这些事情放在service层里去做;而form bean出现在service层更是不可接受的,因为这会使你的service受缚于Struts,从而失去可移植性。

最后,资源文件处理……Spring提供了一种极具创意(因此也极富冲击力)的、基于Java Bean的配置解决方案:BeanFactory用于根据配置文件装配Java对象,ApplicationContext用于提供对象的唯一全局访问点。用这样的办法,可以避免配置文件的混乱和Singleton的滥用。

说到底,Web只是对J2EE应用的一个包装而已。一个好的Web应用必定首先是一个好的J2EE应用,这就决定了Struts之类的pure web framework并不能对J2EE应用起到很大的帮助——如果能够把基础设施和体系结构做好,哪怕只用JSP也可以得到非常漂亮的Web应用,毕竟Struts在参数装配方面所做的贡献并不大。所以,我会推荐Rod Johnson的Spring框架,这可以算得上一个真正意义上的“J2EE框架”,提供了从persistence layer直到web layer的全面支持。尽管Spring提供的东西都比较简单,但很多时候一点简单的帮助就可以大大提高应用的质量了。

Spring的主页:http://sourceforge.net/projects/springframework
dmhorse 2003-09-28
  • 打赏
  • 举报
回复
Not agree qqyb2000,most time,the system(project) needs the scaleable.
Just use jsp + bean,the system would be hard to revise and reuse.

To Schlemiel: I would research on Hibernate,do u have any advise?

flyshp 2003-09-28
  • 打赏
  • 举报
回复
没有什么经验而谈!!

你的要求实在太高了! 我们所重用的只是各个功能上的模块!
这对我们已经够用了! 不同的项目有不同的要求 和 框架 构造! 也就是说你不可以一为的追求所有新技术的集合!!

看你的观点似乎要总结出一套 可重用的 完善的建模系统?!?! 有些不太合理!
所以我认为 你如果能 很好的结合你开发的 所有类 或 类的集成 已经很不错了!!

http://www-900.ibm.com/developerWorks/cn/java/l-struts1-1/index.shtml
上去看看 对你不是有没有 帮助 ^_^



加载更多回复(18)

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧