在action中可以使用synchronized(this){}
jsp中如何用呢?
jsp是单例还是多实例的?

解决方案 »

  1.   

    jsp防止并发,你要做咩呀?什么需求?jsp的全称:Java Servlet Pages
      

  2.   

    支付宝 接口 充值时 会用到jspjsp中的代码必须同一时间只有一个线程执行
      

  3.   

    所谓防止并发,也要看防止到什么级别了力度吧。此外,没什么很强有力的理由,不应该防止并发,至少不应该用synchronized这种方式。比如,你如果用synchronized(session) 可以防止同一个会话的并发。
    如果你够狠用synchronized(this.Class)可以防止整个JSP被并发。
    使用以上两种方式,可以让你的系统在高并发下快速阻塞并彻底瘫痪。
      

  4.   

    和action中一样,加入锁,同一时间获得锁的可以进入正常业务逻辑,未获得锁的给个提示,让用户等待或者其他有好提示;
      

  5.   

    jsp防止并发太搞笑了吧,服务器来一个访问就会分出一个线程所以你每个被运行的jsp不可能存在并发的问题。
    除非是Node.js那种。
      

  6.   

    强烈不建议把这样的处理写在jsp里面,业务处理的代码应该在后台处理,即跳到后面处理,只需要把后台的返回数据再传给页面就可以。jsp只应该负责view层的东西,你要非使用同步的话,用户体验会变得非常糟~
      

  7.   

    每天没那么多用户充值的  又不是高访问量的jsp
      

  8.   

    谢谢你的建议能不能先让我知道  如果要在jsp里使用的话,是怎样写的
      

  9.   


    我之前的帖子不是已经回答你了?比如:
    你如果用synchronized(session) 可以防止同一个会话的并发。
    如果你够狠用synchronized(this.Class)可以防止整个JSP被并发。也就是整个JSP用synchronized框起来:
    <% synchronized(this.Class) { %>
    <HTML>
      <HEAD>
      ....
      </HEAD>
      <BODY>
      ....
      </BODY>
    </HTML>
    <% } %> 另一种是可以为这个JSP建立filter,然后再filter里面用synchronized(this.Class)效果也一样。
    不过,你确实想这么做?!不后悔?!
      

  10.   

    谢谢你的建议能不能先让我知道 如果要在jsp里使用的话,是怎样写的