我也在考虑用filter,这里有两个疑问:第一是用filter是否会造成performance的下降(5%以上)。第二是系统的移行,比方说我开发用tomcat作j2ee container,运用的时候用oracle 9ias,移行是变容易还是困难了?
 
希望不吝赐教。谢谢。

解决方案 »

  1.   

    哪位大侠有很好的的sample呢?重分相求(另开)!
      

  2.   

    买电脑有个性价比,你这儿也可以从维护难度和性能,结合项目流量压力情况来设计一个性价比嘛:)不过,就我个人来看,我是非常支持用filter来做的,性能影响5%问题并不是太大,在别的一些手段上补过来就是了(比如服务器集群设计,均衡设集,缓存技术等等),如果为了这5%,甚至是10%的性能,让我不得不去折腾一大堆的jsp文件(哪怕是一页加一个逗号都是会死人的),那就得不尝失了。
    至于9iAS,用jsp倒不好说,受web容器、操作系统的影响相当大,最明显的就是到处都在问中文问题了。如果你的应用做servlet,通常都可以无修改的在支持servlet2.3规范的容器上成功布署的。或是在View这一层上,使用模板引擎之类的技术处理的话,无修改移植的成功率也会高一些。
      

  3.   

    如果你信不过filter,或者条件受限无法使用filter(例如J2EE 1.2就不支持filter,而WebSphere 4只提供J2EE 1.2),也可以在controller里加上身份验证的逻辑,把需要验证的信息放在session里吧。你说的“用servlet接受提交,然后取得各个参数交给bean处理”,其实就是一个典型的MVC模式。既然有MVC的需求,建议你用一个现成的framework,struts就是不错的选择。至于页面访问顺序的控制,其实已经是一个工作流的问题了。如果只是这样简单的页面顺序控制,没有更多的业务含义在里面,struts就足以满足你的要求。struts的每个Action都必须配置出口,Action只能从规定的出口中选择一个进行跳转,不允许直接跳转到其他页面。
      

  4.   

    struts会对性能造成多大影响呢?java本来就够慢了,再加上这样一层又一层的处理以后,可用性能保证吗?
      

  5.   

    struts怎么会影响性能呢?只不过是一个controller加一堆tag-lib而已。而且,我觉得在web层上谈“性能”是一件挺搞笑的事情:用户访问你的web应用时,网络的延迟就可能达到1秒钟,你强调这么一点点性能有任何意义吗?而且,web层上就算加上再多的处理,也是内存操作,跟数据库操作比起来,性能根本不在一个数量级上。把你的业务代码优化一下,少调用几次数据库,强过在web层上做任何优化。说“Java本来就够慢了”,在我看来是一种不负责的态度。Java有多慢?难道比一次HTTP请求还慢?难道比数据库访问还慢?难道比RPC还慢?Java就算再慢,也只是内存操作,根本不可能成为企业级应用的性能瓶颈。如果应用程序出现了性能问题,不要把责任推给Java(或者是OO给你加上的多几层间接),我敢打赌,出问题的一定是你的业务代码。
      

  6.   

    不知道有没有人熟悉用stored procedure(pl/sql)写成的的web应用程序,每一个stored procedure就是一个url请求,执行时用oracleDB引擎动态生成html,在加一个apahce的http服务器,中间用mod_plsql做gateway.这样开发的好处是对数据库的连接开销减到了最小。但是开发起来太复杂,所以我准备采用java或者.net开发web应用程序。但必须在性能和开发性上找到一个平衡点。如果基于java的应用程序远远慢于pl/sql的应用程序,我就不得不重新考虑。不知道大家是对这两种应用程序是怎么看得。我觉得一个应用程序的可用性还是非常重要的。不知道大家用java开发web应用程序的出发点是什么。我是希望在能得到我所需要的性能的基础上,降低开发成本。对于可复用性,对于若干个相似工程,也许是拷贝修改原source更好一些。而在同一工程中,就要尽量做好公共部分,以利于复用和oursourcing.