Struts2 攔截器

          如果不用spring的話,系統的耦合會很大很大,后期肯定會出大問題。想個辦法能不能在數據庫方面做做文章。數據庫可是有觸發器的,唯一要解決的是是哪個用戶做的操作。
          要么就用日志,在action里記錄。日志構造的成一個sql語句,定期執行。
          以上是個人的小小建議,采納要慎重!
          52356 (中級程序員) 2009-12-16
          第一點 感覺你用戶的操作入庫有點沒用吧 這樣會有大量的IO操作? 并發訪問你的數據庫吃不消? 你可以寫個日志不就可以了么
          第二點? 這是個典型的 橫切問題 用spring的aop解決最好不過?? 用你想的攔截器也可以實現? 或者用spring發個事件也行 這個比較簡單 而且耦合度基本為0
          第三點 如果你不打算用spring 你可以寫個父類 放所有action都繼承這個父親類? 在父類中把公共部分提取出去? 子類中只是取得用戶名了 操作名了? 這樣不就省得你每個都去寫了么
          wocsok (資深程序員) 2009-12-16
          Struts2 攔截器,直接上代碼
          Java代碼 復制代碼
          1. import?java.util.Date;??? ??
          2. import?java.util.Iterator;??? ??
          3. import?java.util.Map;??? ??
          4. ?? ??
          5. import?java.util.Set;??? ??
          6. ?? ??
          7. import?javax.servlet.http.HttpServletRequest;??? ??
          8. ?? ??
          9. import?org.apache.struts2.ServletActionContext;??? ??
          10. ?? ??
          11. import?com.chiyu.model.Admin;??? ??
          12. import?com.chiyu.model.Adminoperationlog;??? ??
          13. import?com.chiyu.service.IAdminOperationLogService;??? ??
          14. import?com.chiyu.service.IAdminService;??? ??
          15. import?com.opensymphony.xwork2.Action;??? ??
          16. import?com.opensymphony.xwork2.ActionContext;??? ??
          17. import?com.opensymphony.xwork2.ActionInvocation;??? ??
          18. import?com.opensymphony.xwork2.interceptor.AbstractInterceptor;??? ??
          19. ?? ??
          20. import?freemarker.template.utility.StringUtil;??? ??
          21. ?? ??
          22. public?class?LoggerInterceptor?extends?AbstractInterceptor?{??? ??
          23. ????private?IAdminOperationLogService?adminOperationLogService;??? ??
          24. ????private?IAdminService?adminService;??? ??
          25. ????private?static?final?long?serialVersionUID?=?1358600090729208361L;??? ??
          26. ?? ??
          27. ????@SuppressWarnings("unchecked")??? ??
          28. ????@Override?? ??
          29. ????public?String?intercept(ActionInvocation?invocation)?throws?Exception?{??? ??
          30. ????????System.out.println("日志攔截器已經開始啟動..");??? ??
          31. ????????String?actionName?=?invocation.getAction().getClass().toString();??? ??
          32. ????????invocation.invoke();??? ??
          33. ????????final?Map<String,?Object>?parameters?=?invocation??? ??
          34. ????????????????.getInvocationContext().getParameters();??? ??
          35. ????????boolean?result?=?invocation.getProxy().getExecuteResult();??? ??
          36. ????????String?method?=?invocation.getProxy().getMethod();??? ??
          37. ????????//?取得請求相關的ActionContext實例??? ??
          38. ????????ActionContext?ctx?=?invocation.getInvocationContext();??? ??
          39. ?? ??
          40. ????????HttpServletRequest?request?=?ServletActionContext.getRequest();??? ??
          41. ????????String?ip?=?request.getRemoteAddr();??? ??
          42. ????????Map?session?=?ctx.getSession();??? ??
          43. ????????//?取出名為user的session屬性??? ??
          44. ????????String?name?=?(String)?session.get(Admin.ADMIN_KEY);??? ??
          45. ????????Admin?admin?=?adminService.findAdminByAdminName(name);??? ??
          46. ????????System.out.println(admin);??? ??
          47. ????????if?(admin?!=?null)?{??? ??
          48. ????????????Adminoperationlog?adminLog?=?new?Adminoperationlog();??? ??
          49. ????????????adminLog.setAdminId(admin.getAdminId());??? ??
          50. ????????????adminLog.setAdminName(name);??? ??
          51. ????????????adminLog.setDealTime(new?java.sql.Date(System.currentTimeMillis()));??? ??
          52. ????????????adminLog.setOperationIp(ip);??? ??
          53. ????????????adminLog.setOperationSource(actionName?+?"---"?+?method?+?"---"?? ??
          54. ????????????????????+?parameters?+?"---"?+?result);??? ??
          55. ????????????adminOperationLogService.save(adminLog);??? ??
          56. ????????}??? ??
          57. ????????return?Action.SUCCESS;??? ??
          58. ????}??

          posted on 2010-03-23 17:32 飛熊 閱讀(283) 評論(0)  編輯  收藏 所屬分類: struts2.0


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2010年3月>
          28123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 慈溪市| 高平市| 壤塘县| 宁陕县| 镇平县| 饶平县| 中西区| 巫山县| 崇礼县| 五河县| 浦江县| 合江县| 郸城县| 桂林市| 旺苍县| 蒙阴县| 诸暨市| 长子县| 富川| 丰县| 三河市| 和硕县| 韶关市| 措勤县| 滨州市| 兰坪| 雷州市| 白河县| 太湖县| 兴仁县| 无锡市| 曲阜市| 壶关县| 凤台县| 蒲城县| 平利县| 阿克| 张掖市| 安康市| 雅安市| 理塘县|