在web项目中一些需要注意的问题

         现在已经做了比较长一段时间的 web项目了,很多人会觉得web项目的技术难度不是很大,我个人感觉这有几方面的原因,一个是目前的程序员是从事web项目的(包扩.net,php,j2ee)人比较多,而从事其他方面的人员相对要少一些,所以搁行如搁山,大多程序员有个很优秀的品质,对于不了解的东西回比较谨慎,所以会认为其它方面的技术比较难(实 际上当你去了解其他的方面就会看到技术都是可以很快的运用和掌握的,担任到精通的地步就需要化费很多的时间和个人的努力了,呵呵);另一个比较重要的原因在于web项目的入门门槛确实不高,但实际要想真正做到一个好的web项目的程序员或是能够真正达到一个更高层次的架构师的水准,其所要掌握的技术列表还是相当长的,需要学习很多的技术方面和积累很多的实际经验,所以你如果仅仅挺留在入门阶段你会觉得比较简单,实际上你学要做的功课还有很多;还有一个方面就是在web项目中还有一个比较复杂的地方在于对实际业务的转化,说白了就是用户的需求分析,这一点是很麻烦的(不像一些通用项目是一开发人员的想法为中心)。

       罗嗦了这么多,没到这篇blog的主要内容了,下面我主要就在开发web项目中容易忽略的几个问题谈一谈,可能这些方面都比较简单,但经验也是这样一点一点积累的。

       首先看看对于web项目中的单点登陆的问题,我们一般在web项目的开始一般都有一个用户验证,通过以后执行后面的一些流程,那么在这当中不做处理,则有可能会被人直接用url加传参数的方法直接调用后面的流程处理,比较简单的处理方法就是在后续的流程中都做一个检查(比如对session的某个属性做检查,而这个session的属性是由开始的验证步骤加入的),虽然比较麻烦 ,但目前来说我还没看到比较好的方法,对于常用的web框架struts,webwork,包括spring中也没有给予好的解决(或与是太简单了,框架本身就不去做了,呵呵,也或是我没注意到);但这里还有一个问题就是后续的操作可能不是有一个服务器来完成的,可能是后续流程步骤多,访问大,要有多台服务器做群集,所以要做到跨服务器的session维护和验证,还有如果后续的步骤可能是有不同系统集成来完成(包括..net,j2ee等)这时也是要跨服务器的session维护和验证,再用简单的验证就不行了,当然这对具体的问题有相应的解决方法,一个比较可行的方案是对session做临时的持久化,用来验证,当然也可以在cookie上做文章,现在有的服务器在做这方面的工作,我所了解的php方面可以,j2ee方面没注意,虽然我主要是玩这个的,呵呵,可能jboss等有把,有时间google一下,看看。

      还有一个很著名的就是sql注入的问题,这个有很多方法可以解决,一个是对传入的数据库参数做过滤,还有用orm来做持久层(或是在jdbc中用preparestatement来做,它不存在组装sql语句的问题,所以就没有sql注入的漏洞了),也能解决这个问题。

      还有一个问题对于并发量很大的系统的同步的问题,一般服务器是用多线程来满足客户的并发,如果对于单一用户的响应时间比较长(相对的),这样在同一用户很短时间的多次请求服务器在响应时可能会出问题,有可能产生数据的不一致(特别是对与一些人采用“暴力”方式极端时间大量请求处理,问题就更容易出现),解决的方法就是线程的同步问题,但一定要注意同步的粒度问题,如果同步的粒度太大,则多线程的响应就会变慢,造成客户大两排队,所以粒度的考虑很重要,一个方案是对请求的用户名做缓存,对于读写删缓存用户名的方法做同步,这样即保证了单用户信息的同步问题,有考虑到了多线程并发的响应问题。

    上述是在实际运用中可能要多考虑的几个地方,当然还有很多地方需要考虑,这个在以后的文章中再叙述,经验就是这样一点一点积累出来的!!!

       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值