`
wedtlcy
  • 浏览: 24115 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

拦截器实践之系统日志实现

 
阅读更多

系统日志实现:

package com.xgd.common.filter;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.xgd.CSMS.model.CsmsTSyslog;
import com.xgd.CSMS.model.CsmsTUsers;
import com.xgd.CSMS.service.ICsmsTSyslogService;
import com.xgd.CSMS.service.ICsmsTUsersService;
import com.xgd.utils.ResourceUtil;
import com.xgd.utils.SpringBeanUtil;
import com.xgd.utils.StringUtil;

public class IpOperationTimeInterceptor extends AbstractInterceptor {
   
    private String name;

    public void setName(String name) {
        this.name = name;
    }
   
   
   

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
       
        // 取得请求相关的ActionContext实例
        ActionContext actx = invocation.getInvocationContext();
        Map session = actx.getSession(); // 取出名为user的session属性
       
        HttpServletRequest request = ServletActionContext.getRequest();
       
        String actionName = invocation.getAction().getClass().getSimpleName();
        actionName = StringUtil.getReplace(actionName, "table.");
        actionName = actionName.replaceAll("Action", "");
        actionName = ResourceUtil.getStringValue(actionName, "CSMS");
        String  method = invocation.getProxy().getMethod();
        String ip = request.getRemoteAddr();//获取ip地址
        String path = request.getRequestURI();//url
        String reqPamrs = request.getQueryString();//?后面的参数
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        java.util.Date time= df.parse(df.format(System.currentTimeMillis()));
        //获取用户信息
        String UId = (String) session.get(""+ResourceUtil.getStringValue("uId")+"");
        ICsmsTUsersService csmsTUsersService = (ICsmsTUsersService) SpringBeanUtil.getBean("csmsTUsersService");
        CsmsTUsers csmsTUsers = (CsmsTUsers) csmsTUsersService.findByPrimaryKey(UId);
       
        if(StringUtil.isNotNull(UId)){
            CsmsTSyslog syslog = new CsmsTSyslog();
            syslog.setSylUserid(csmsTUsers);
            syslog.setSylLoginip(ip);
            syslog.setSylOperation("请求路径为:" + path +"中的"+ method + "方法对("+actionName+")进行了操作");
            syslog.setSylCreatetime(time);
            syslog.setSylRemark("系统操作日志");
            ICsmsTSyslogService csmsTSyslogService = (ICsmsTSyslogService) SpringBeanUtil.getBean("csmsTSyslogService");
            csmsTSyslogService.add(syslog);
        }
        return invocation.invoke();
    }

}

效果图见附件!

 
  • 大小: 292.9 KB
分享到:
评论

相关推荐

    ssm+maven用拦截器实现登录小Demo

    在这个"ssm+maven用拦截器实现登录小Demo"中,我们将探讨如何利用SSM框架和Maven来构建一个简单的登录系统,并通过拦截器实现权限控制。 首先,Spring MVC中的拦截器(Interceptor)是一种预处理和后处理请求的机制...

    struts拦截器的例子

    通过深入理解和实践这个"struts拦截器的例子",初学者可以更清晰地了解拦截器如何与Struts 2框架协同工作,以及如何利用它们来增强应用程序的功能和灵活性。记住,实践是掌握任何技术的关键,因此,动手尝试并调整这...

    CXF WebService带有拦截器

    总结起来,"CXF WebService带有拦截器"的实践是Web服务开发中的一个重要方面,它允许我们在不侵入核心业务逻辑的情况下,增加诸如权限控制这样的安全特性。通过"AuthFilter_Service"和"AuthFilter_Client",我们可以...

    struts2.X 拦截器源码

    Struts2.X 拦截器是Apache Struts框架的核心组件之一,它是基于拦截器模式实现的,使得开发者能够方便地扩展和定制应用程序的行为。在Struts2中,拦截器扮演着中间件的角色,它在Action执行前后进行处理,可以进行如...

    登录拦截器(通用版)

    登录拦截器是软件开发中一个重要的安全机制,主要用于管理和控制用户访问特定资源的过程。...在设计和实现登录拦截器时,开发者需要综合考虑安全性、效率和用户体验,以确保系统的稳定性和可靠性。

    模拟activiti的拦截器

    Activiti 是一个开源的工作流和业务自动化引擎,广泛应用于企业级流程管理。...在实际项目中,通过对`Activiti_Interceptor`相关资料的学习和实践,你可以深入了解如何利用拦截器优化流程执行,提升系统效能。

    文件拦截器

    4. 日志记录:拦截器可记录文件上传的详细信息,便于追踪和分析系统行为。 四、文件下载拦截器 1. 权限检查:在用户下载文件前,拦截器可以检查用户是否有权限访问该文件。 2. 文件计数:限制同一文件的下载次数,...

    springmvc 拦截器

    自定义拦截器需要实现Spring MVC提供的HandlerInterceptor接口或 extend AbstractHandlerInterceptorAdapter抽象类。在自定义的拦截器类中,重写preHandle、postHandle和afterCompletion方法,编写相应的业务逻辑。...

    08.CXF拦截器的理论以及如何为CXF的客户端和服务器端添加拦截器

    拦截器是CXF框架中的一个重要组成部分,允许开发者在服务调用的生命周期中插入自定义逻辑,实现如日志记录、安全检查、性能监控等功能。本篇将深入探讨CXF拦截器的理论基础,并演示如何为CXF的客户端和服务端添加...

    Struts1拦截器插件使用

    在Struts1中,拦截器(Interceptor)是一个重要的概念,它允许我们在业务逻辑执行前或执行后添加额外的操作,如日志记录、权限验证等。这篇博客可能详细解释了如何在Struts1中配置和使用拦截器插件。 首先,让我们...

    struts2 自定义拦截器.rar

    Struts2是一个强大的MVC(模型-视图-控制器)框架,...这篇博客文章可能详细讲解了以上步骤,并提供了实际的示例代码,帮助读者理解并实践自定义拦截器。如果你对Struts2感兴趣,可以进一步阅读这个博客获取更多信息。

    Spring MVC 拦截器入门例子

    拦截器主要用于实现通用功能,如权限验证、日志记录、性能监控等,从而提高代码的可复用性和模块化。 在Spring MVC中,拦截器是通过实现`HandlerInterceptor`接口或继承`AbstractHandlerInterceptor`抽象类来创建的...

    SpringMVC拦截器源码.rar

    SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求-响应模型。...在SpringMVC中,拦截器(Interceptor)是一个重要的概念,用于在实际...在实践中,你可以根据项目需求创建自己的拦截器,实现特定的功能。

    SSM笔记-SpringMVC的自定义拦截器

    自定义拦截器允许开发者根据业务需求进行更精细的控制,例如权限验证、日志记录、性能统计等。下面我们将深入探讨SpringMVC自定义拦截器的实现过程和应用场景。 首先,自定义拦截器需要实现`HandlerInterceptor`...

    webservice的cxf框架拦截器demo

    总的来说,"webservice的cxf框架拦截器demo"是一个很好的实践示例,它展示了如何在CXF中利用拦截器增强Web服务的功能。通过理解并应用这些拦截器,开发者能够更好地控制服务的交互过程,提升系统的可扩展性和灵活性...

    10.为CXF服务器端添加自定义拦截器进行权限检查

    拦截器是CXF框架中的一种重要机制,它们允许我们在消息被处理之前或之后插入自定义逻辑,例如认证、日志记录、事务管理等,其中权限检查是常见应用场景之一。 要创建自定义拦截器,我们需要遵循以下步骤: 1. **...

    详解Spring AOP 拦截器的基本实现

    在Spring中,拦截器一般通过实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类来实现。HandlerInterceptor接口包括三个方法:preHandle、postHandle和afterCompletion。preHandle方法在控制器方法执行...

    SpringMVC+Mybatis+Mysql+权限+拦截器的整合实例 源码程序

    总之,这个实例为学习和理解SpringMVC、Mybatis与Mysql的整合,以及权限管理和拦截器的实现,提供了一个实践性的平台。通过研究提供的源码和SQL脚本,开发者可以深入了解这些技术的交互方式,提升自己的开发能力。

    MyBatis底层基础和拦截器教程视频(包含视频、代码、ppt)

    4. **应用场景**:拦截器常用于日志记录、性能统计、事务控制、权限验证等方面,提供了灵活的扩展能力。 三、MyBatis实战 - **MyBatis底层基础和拦截器 - 第一部分.zip**:这部分内容可能涵盖MyBatis的基本配置、...

Global site tag (gtag.js) - Google Analytics