??????解決這個問題有好幾種辦法,我下面舉出一種用Token解決的辦法,希望大家把自己的解決辦法發表出來,用Token解決需要注意幾點,一點首先程序的入口應該是一個action,而不是jsp,這個action的作用就是生成token,然后轉向jsp頁面,然后這個jsp頁面里面的提交按鈕會提交到另外一個action,這個action獲得表單里面的數據,然后判斷是不是重復提交#isTokenValid(request,true)。如果為true執行數據庫方面的操作。false是表單重復提交,執行其它操作。
??????InitInsertAction.java
????????????//生成同步令牌避免表單重復提交
??????saveToken(request);??
??????return mapping.findForward(IConstants.SUCCESS_KEY);
????? InsertAction.java
??????
??????NewsModel newsModel = new NewsModel();
?????//對象反射機制
?????BeanUtils.copyProperties(newsModel,newsForm);
?????newsModel.setNewsPublishTime(DateUtil.getCurrentTime());
?????newsModel.setNewsKind(newsForm.getNewsKind());
?????newsModel.setNewsContent(content);
?????//圖片文件路徑
?????if(imageFile!=null&&!imageFile.equals("")){???
??????newsModel.setImagePath("/UploadFiles/"+imageFile);
?????}
?????//小圖片文件路徑
?????/**if(iconFile!=null&&!iconFile.equals("")){???
??????newsModel.setIconPath("/UploadFiles/"+iconFile);
?????}*/
?????//數據庫方面的處理#插入一條新聞
?????INewsDao newsDao = new JdbcNewsDaoImpl(con);
?????newsDao.insertNews(newsModel);
????}else{
?????//表單重復提交
?????if(log.isDebugEnabled()){
??????log.debug("表單重復提交");
?????}
????}
???
posted on 2006-05-09 18:14
選寶網an9 閱讀(550)
評論(0) 編輯 收藏 所屬分類:
FRAMEWORK