系统日志实现:
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();
}
}
效果图见附件!
相关推荐
在这个"ssm+maven用拦截器实现登录小Demo"中,我们将探讨如何利用SSM框架和Maven来构建一个简单的登录系统,并通过拦截器实现权限控制。 首先,Spring MVC中的拦截器(Interceptor)是一种预处理和后处理请求的机制...
通过深入理解和实践这个"struts拦截器的例子",初学者可以更清晰地了解拦截器如何与Struts 2框架协同工作,以及如何利用它们来增强应用程序的功能和灵活性。记住,实践是掌握任何技术的关键,因此,动手尝试并调整这...
总结起来,"CXF WebService带有拦截器"的实践是Web服务开发中的一个重要方面,它允许我们在不侵入核心业务逻辑的情况下,增加诸如权限控制这样的安全特性。通过"AuthFilter_Service"和"AuthFilter_Client",我们可以...
Struts2.X 拦截器是Apache Struts框架的核心组件之一,它是基于拦截器模式实现的,使得开发者能够方便地扩展和定制应用程序的行为。在Struts2中,拦截器扮演着中间件的角色,它在Action执行前后进行处理,可以进行如...
登录拦截器是软件开发中一个重要的安全机制,主要用于管理和控制用户访问特定资源的过程。...在设计和实现登录拦截器时,开发者需要综合考虑安全性、效率和用户体验,以确保系统的稳定性和可靠性。
Activiti 是一个开源的工作流和业务自动化引擎,广泛应用于企业级流程管理。...在实际项目中,通过对`Activiti_Interceptor`相关资料的学习和实践,你可以深入了解如何利用拦截器优化流程执行,提升系统效能。
4. 日志记录:拦截器可记录文件上传的详细信息,便于追踪和分析系统行为。 四、文件下载拦截器 1. 权限检查:在用户下载文件前,拦截器可以检查用户是否有权限访问该文件。 2. 文件计数:限制同一文件的下载次数,...
自定义拦截器需要实现Spring MVC提供的HandlerInterceptor接口或 extend AbstractHandlerInterceptorAdapter抽象类。在自定义的拦截器类中,重写preHandle、postHandle和afterCompletion方法,编写相应的业务逻辑。...
拦截器是CXF框架中的一个重要组成部分,允许开发者在服务调用的生命周期中插入自定义逻辑,实现如日志记录、安全检查、性能监控等功能。本篇将深入探讨CXF拦截器的理论基础,并演示如何为CXF的客户端和服务端添加...
在Struts1中,拦截器(Interceptor)是一个重要的概念,它允许我们在业务逻辑执行前或执行后添加额外的操作,如日志记录、权限验证等。这篇博客可能详细解释了如何在Struts1中配置和使用拦截器插件。 首先,让我们...
Struts2是一个强大的MVC(模型-视图-控制器)框架,...这篇博客文章可能详细讲解了以上步骤,并提供了实际的示例代码,帮助读者理解并实践自定义拦截器。如果你对Struts2感兴趣,可以进一步阅读这个博客获取更多信息。
拦截器主要用于实现通用功能,如权限验证、日志记录、性能监控等,从而提高代码的可复用性和模块化。 在Spring MVC中,拦截器是通过实现`HandlerInterceptor`接口或继承`AbstractHandlerInterceptor`抽象类来创建的...
SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求-响应模型。...在SpringMVC中,拦截器(Interceptor)是一个重要的概念,用于在实际...在实践中,你可以根据项目需求创建自己的拦截器,实现特定的功能。
自定义拦截器允许开发者根据业务需求进行更精细的控制,例如权限验证、日志记录、性能统计等。下面我们将深入探讨SpringMVC自定义拦截器的实现过程和应用场景。 首先,自定义拦截器需要实现`HandlerInterceptor`...
总的来说,"webservice的cxf框架拦截器demo"是一个很好的实践示例,它展示了如何在CXF中利用拦截器增强Web服务的功能。通过理解并应用这些拦截器,开发者能够更好地控制服务的交互过程,提升系统的可扩展性和灵活性...
拦截器是CXF框架中的一种重要机制,它们允许我们在消息被处理之前或之后插入自定义逻辑,例如认证、日志记录、事务管理等,其中权限检查是常见应用场景之一。 要创建自定义拦截器,我们需要遵循以下步骤: 1. **...
在Spring中,拦截器一般通过实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类来实现。HandlerInterceptor接口包括三个方法:preHandle、postHandle和afterCompletion。preHandle方法在控制器方法执行...
总之,这个实例为学习和理解SpringMVC、Mybatis与Mysql的整合,以及权限管理和拦截器的实现,提供了一个实践性的平台。通过研究提供的源码和SQL脚本,开发者可以深入了解这些技术的交互方式,提升自己的开发能力。
4. **应用场景**:拦截器常用于日志记录、性能统计、事务控制、权限验证等方面,提供了灵活的扩展能力。 三、MyBatis实战 - **MyBatis底层基础和拦截器 - 第一部分.zip**:这部分内容可能涵盖MyBatis的基本配置、...