weixin_42423755 2011-03-10 17:01
浏览 542
已采纳

struts2 action 线程安全同步问题

action在配置文件里的属性为:scope="prototype"

在高并发请求一个action的时候,怎么解决数据不被重复验证!

谢谢!

在下面访问的时候出现都修改了数据
[code="java"]public String threadTest(){
HttpServletRequest request = ServletActionContext.getRequest();
product = productService.getProduct(11440);
if(product.getStatus()==1){
System.out.println(zhe+"==========jinru==========");
try {
Thread.sleep(10000*10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(zhe+"==========kaishi==========");
if("11".equals(zhe)){
System.out.println(zhe+(new Date()));
System.out.println(product.getStatus());
product.setStatus(3); //原来是1
product.setBuyNum(1100); //原来是800
product.setMaxQuantity(2100); //原来是1000
productService.updateProduct(product);
TradeArea ta = tradeAreaService.getTradeArea(11922);
ta.setTradeName("1111");
tradeAreaService.updateTradeArea(ta);
System.out.println(zhe+(new Date())+"end");
}else{
System.out.println(product.getStatus());
System.out.println(zhe+(new Date()));
product.setStatus(4);//原来是1
product.setBuyNum(1300);//原来是 800
product.setMinQuantity(1123); //原来是123
productService.updateProduct(product);
System.out.println(zhe+(new Date())+"end");
TradeArea ta = tradeAreaService.getTradeArea(11923);
ta.setTradeName("11113333");
tradeAreaService.updateTradeArea(ta);
}

    }
     message=zhe;
     request.setAttribute("tipMessage", "../index.jsp"); 
     return "message";
}[/code]

同时几个页面访问这个action的时候,数据都修改了,请问要怎么设置!

  • 写回答

11条回答 默认 最新

  • akunamotata 2011-03-10 20:55
    关注

    这个问题以前也看到过...prototype怎么变成singleton了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏