`
lovnet
  • 浏览: 6706962 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

简单的J2EE(四)一些技术选型的建议

 
阅读更多

本文罗列一些问题,都是平常开发中经常遇到的,希望对你们有所帮助。

1.数据校验

显然,正常的J2EE程序,都离不开数据校验这一块。而数据校验又分为客户端校验和服务器端校验。客户端校验的好处是用户体验好,输入东西以后,可以马上得到响应,而不需要联网,服务器的压力也小一些。但是客户端校验面临着跨浏览器的挑战,设置浏览器的升级也会给应用程序带来麻烦,当然,一个稍微懂点js的人,可以轻松跳过客户端的数据校验。服务器端得数据校验就稳健的多了,但是对系统的开销也就多一些。就像你去买服务器,IBM的当然好了,但是也贵啊!有人建议数据校验都放在服务器端,他真的是有钱……

数据校验到底放在哪边,或者两边都进行校验?这个需要根据项目的特点来选择,甚至是页面数据的重要性来选择。当然,一个比较好的办法就是不进行数据校验——采用选择框等数据输入方式,限制用户的输入,就不需要数据校验了。

2.防止重复的客户请求

有时候,用户会不经意的重复提交数据,这在电子商务等数据提交要求很高的领域,会产生比较严重的后果。比如你一个订单提交了两次,但你的本意只想买一个商品……

这个时候,最好的处理方式是明确的刷新会话,在页面处理完成之前,先更新会话。这样会话仍然可用,并且可以在服务器端检查会话的有效性。

3.维护会话状态

客户端技术有:在HTML中使用隐藏表单,使用cookie,url重写。

1.隐藏表单技术简单,好用。在会话状态使用不是特别多的项目中,比较合适使用。但是如果会话技术要求很高的项目,那么隐藏表单就会大量的,重复的在每个页面出现,这样会给效率带来不利。其次,由于隐藏表单是明文(一查看页面源码就可以看到),如果会话信息敏感,甚至还需要加密。

2.重写URL,这种方式在非表单提交时,非常有用。但是它也不能避免隐藏表单方式所拥有的缺陷。

3.cookie技术:这种技术我个人比较排斥,这里就不写了。

综上,客户端保持会话状态这种方式,是轻量级的,不可靠的。

服务器端的会话技术:HttpSession,这个就不是一两句话说得清楚的了,以后用专门的文章写。

4.Jsp的作用

Jsp在J2EE技术体系中,其实感觉起来就比较尴尬,它做的事情,Servlet完全可以做,而Jsp基本上又可以替代Servlet。现在大部分程序员都可以做到把Servlet作为非视图层,但是很多程序员不能做到把Jsp纯作为视图。一个良好的实现应该是Jsp只作为显示使用,而没有其他。这样的好处是分层合理,便于维护。

5.CSS的使用

为了程序界面的统一和高效,采用CSS是一种非常高效的方式,在所谓的第四代用户界面Android,Iphone的UI中,也使用了类似CSS的概念。

6.EJB的设计

大家都知道EJB是来处理业务逻辑的,但是EJB的设计却不是每个人都把握的好。举一个简单的例子,比如一个用户提交了购物请求,后台必须先判断用户的信誉,然后才决定是否生成订单。那么,这样的功能是否应该设计在一个EJB中呢?一个好的设计原则是低耦合,高内聚。如果信誉判断和订单功能在其他地方不再使用,那么,这些步骤写在一个EJB里面是比较合理的。但是如果这两个功能在其他地方也有使用,那么,设计三个EJB是合理的:一个完成信誉判断,一个完成订单功能,一个完成控制器,耦合器的角色。

7.EJB层和WEB层的数据交互

不少人想当然的认为,在两层之间交互信息,大量数据的时候,使用对象类型,少量数据的时候,使用简单类型。其实在高并发量的企业应用中,使用对象类型在这两层之间交互可以减少网络压力,并且让数据之间更有关联。

8.EJB性能

大部分J2EE应用,出现性能瓶颈的地方都是EJB层,因为EJB层可能进行大量的网络通信,这严重的降低了EJB层的功效,最佳处理方式是把需要和EJB频繁通信的组件和EJB放在一台服务器上。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics