先不提struts1过时不过时的问题,就讨论下并发问题。如下代码:
private PhraseForm myfrm;

private void initFrm(ActionForm form){
this.myfrm=(PhraseForm)form;
}

private PhraseDao getDAOInstance() throws Exception{
PhraseDao dao=null;
try {
dao=new PhraseDao();
} catch (Exception e) {
this.log.error("getDAOInstance()", e);
throw new Exception();
}

return dao;
}


  public ActionForward insertObj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    throws Exception{
    try{
     initFrm(form);
     getDAOInstance().getInsertData(form);
    }catch (Exception ex) {
      this.log.error(ex.getMessage(), ex);
    }finally{
    
    }     return mapping.findForward("PostInfo");
  }           public ActionForward editObj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    throws Exception{
    try{
     initFrm(form);
     getDAOInstance().getUpdateInfoData(form);
    }catch (Exception ex) {
      this.log.error(ex.getMessage(), ex);
    }finally{
    
    }     return mapping.findForward("PostInfo");
  }   
  注意看 initFrm(form); 这个,有人说这样声明成共用的,如果数据量大的时候会导致并发问题,如多个用户同时访问这个action时候,导致数据相互修改!
我个人观点是:struts1是每走一次线程,都是独立的线程,除非他上个线程已经处理完,否则下个线程是不会处理,所以不存在这个问题,各位有何意见?指教。。