![struts2攔截器將用戶操作日志存入數(shù)據(jù)庫_第1頁](http://file4.renrendoc.com/view/66e0823e459120a0dd4ab057ff075abb/66e0823e459120a0dd4ab057ff075abb1.gif)
![struts2攔截器將用戶操作日志存入數(shù)據(jù)庫_第2頁](http://file4.renrendoc.com/view/66e0823e459120a0dd4ab057ff075abb/66e0823e459120a0dd4ab057ff075abb2.gif)
![struts2攔截器將用戶操作日志存入數(shù)據(jù)庫_第3頁](http://file4.renrendoc.com/view/66e0823e459120a0dd4ab057ff075abb/66e0823e459120a0dd4ab057ff075abb3.gif)
![struts2攔截器將用戶操作日志存入數(shù)據(jù)庫_第4頁](http://file4.renrendoc.com/view/66e0823e459120a0dd4ab057ff075abb/66e0823e459120a0dd4ab057ff075abb4.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
struts2攔截器--將用戶操作日志存入數(shù)據(jù)庫1.建表,如下所示:
2.新建OperationLogModel.java,其具有上述屬性。
3.自動生成PO
4.在struts.xml中配置攔截器:
<interceptors>
<interceptorname="logger"class="com.bfw.crms.log.LogInterceptor"/>
<interceptor-stackname="myInterceptor">
<interceptor-refname="defaultStack"></interceptor-ref>
<interceptor-refname="logger"></interceptor-ref>
</interceptor-stack>
</interceptors>
5.如下例子中的用戶登錄和修改密碼,要在相應xml文件中加入<interceptor-refname="myInterceptor"/>,即:
<!--系統(tǒng)登錄-->
<actionname="login"class="systemAction"method="login">
<resultname="login"type="redirect-action">index</result><!--redirect-action是直接轉(zhuǎn)向index.action-->
<interceptor-refname="myInterceptor"/>
</action>
<!--修改密碼-->
<actionname="changePassword"class="systemAction"method="changePassword">
<resultname="success"type="redirect-action">changePasswordPre</result>
<interceptor-refname="myInterceptor"/>
</action>
6.在項目中新建文件夾log,在其下新建類LogInterceptor.java,如下:packagecom.bfw.crms.log;
importjava.util.Map;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpSession;
importmons.lang.StringUtils;
importorg.apache.log4j.Logger;
importorg.apache.struts2.ServletActionContext;
importcom.bfw.crms.action.BulletinAction;
importcom.bfw.crms.action.SystemAction;
importcom.bfw.crms.model.EmployeeModel;
importcom.bfw.crms.model.OperationLogModel;
importcom.bfw.crms.po.OperationLog;
importcom.bfw.crms.util.BeanUtil;
importcom.bfw.crms.util.DateTimeUtil;
importcom.ninetowns.framework.dao.ObjectDao;
importcom.opensymphony.xwork2.Action;
importcom.opensymphony.xwork2.ActionInvocation;
importerceptor.AbstractInterceptor;@SuppressWarnings("serial")
publicclassLogInterceptorextendsAbstractInterceptor{
privateStringlogName;
privateStringlogContent;
protectedLoggerlog=Logger.getLogger(getClass());
protectedHttpSessiongetSession()
{
returngetRequest().getSession();
}
protectedHttpServletRequestgetRequest()
{
returnServletActionContext.getRequest();
}
publicvoidinit(){
}
privateObjectDaoobjectDao=null;
publicObjectDaogetObjectDao()
{
returnobjectDao;
}
publicvoidsetObjectDao(ObjectDaoobjectDao)
{
this.objectDao=objectDao;
}
@Override
publicStringintercept(ActionInvocationai)throwsException{
Objectaction=ai.getAction();
Stringmethod=ai.getProxy().getMethod();
try{
if(StringUtils.isBlank(method))method="method";
EmployeeModelsysUser=(EmployeeModel)this.getSession().getAttribute("employee");
StringuserName="";
if(sysUser!=null)userName=sysUser.getName();
StringcurrentTime=DateTimeUtil.getDateTime();
StringlogContentHead="用戶"+userName+currentTime;
ai.invoke();//執(zhí)行被攔截action
if(actioninstanceofBulletinAction){
if(method.equals("save")){
logName="保存部門";
logContent=logContentHead+"保存部門:"+ai.getStack().findValue("sysOName");
(logContent);
addSysLog(logName,logContent);
}
if(method.equals("delete")){
logName="刪除部門";
logContent=logContentHead+"刪除"+((String[])(ai.getStack().findValue("flag_id"))).length+"條部門信息";
(logContent);
addSysLog(logName,logContent);
}
}
if(actioninstanceofSystemAction){
if(method.equals("login")){
logName="登錄系統(tǒng)";
logContent=logContentHead;
(logContent);
addSysLog(logName,logContent);
}
if(method.equals("changePassword")){
logName="修改密碼";
logContent=logContentHead+"刪除1條單位信息";
(logContent);
addSysLog(logName,logContent);
}
}
}catch(Exceptione){
e.printStackTrace();
}
returnAction.SUCCESS;
}
/**
*插入系統(tǒng)日志model2po()
*@paramlogName
*@paramlogContent
*/
privatevoidaddSysLog(StringlogName,StringlogContent){
OperationLogModeloperationMod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼琴銷售合同范本
- 魚池轉(zhuǎn)包合同范本
- 2025廣州軟件著作權(quán)律師軟件合同糾紛資料
- GRC制作安裝合同
- 2025綠化服務合同協(xié)議書
- 2025辦公文檔范本私營企業(yè)職工勞動合同
- 銷售會議服務合同協(xié)議書范本
- 建筑公司工程掛靠合同
- 2025國際版借款合同范文
- 施工合同匯集
- 社區(qū)中心及衛(wèi)生院65歲及以上老年人健康體檢分析報告模板
- 化工過程安全管理導則AQT 3034-2022知識培訓
- 第02講 導數(shù)與函數(shù)的單調(diào)性(教師版)-2025版高中數(shù)學一輪復習考點幫
- 2024屆新高考語文高中古詩文必背72篇 【原文+注音+翻譯】
- 中華人民共和國學前教育法
- 2024年貴州公務員考試申論試題(B卷)
- 三年級(下冊)西師版數(shù)學全冊重點知識點
- 期末練習卷(試題)-2024-2025學年四年級上冊數(shù)學滬教版
- 2025年公務員考試申論試題與參考答案
- 中國高血壓防治指南(2024年修訂版)要點解讀
- 二十屆三中全會精神應知應會知識測試30題(附答案)
評論
0/150
提交評論