先不提struts1过时不过时的问题,就讨论下并发问题。
如下代码:
[code="java"]
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");
}
[/code]
注意看 [color=red]initFrm(form); [/color]这个,有人说这样声明成共用的,如果数据量大的时候会导致并发问题,如多个用户同时访问这个action时候,导致数据相互修改!
我个人观点是:struts1是每走一次线程,都是独立的线程,除非他上个线程已经处理完,否则下个线程是不会处理,所以不存在这个问题,各位有何意见?指教。。