1.创建一个文件TimeInterceptor.java代码如下
package com.questionnaire.common.filter;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TimeInterceptor implements MethodInterceptor {
private static final Log log = LogFactory.getLog(TimeInterceptor.class);
private int error;
public TimeInterceptor() {
this.error = 50;
}
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
long procTime = System.currentTimeMillis();
try {
return methodInvocation.proceed();
} finally {
procTime = System.currentTimeMillis() - procTime;
String msg = "Process method "
+ methodInvocation.getMethod().getName()
+ " successful! Total time: " + procTime + " milliseconds!";
if (procTime > this.error) {
if (log.isErrorEnabled())
log.error(msg);
}
}
}
public void setError(int error) {
this.error = error;
}
}
2.在spring配置文件中添加如下
<bean id="timeInterceptor" class="com.questionnaire.common.filter.TimeInterceptor">
<property name="error" value="150" />
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>*DAO</value>
</property>
<property name="interceptorNames">
<list>
<value>timeInterceptor</value>
</list>
</property>
</bean>
分享到:
相关推荐
在这个特定的实例中,我们讨论的是一个用于给参数对象属性赋值的拦截器。这个拦截器的主要目标是在执行增删改操作时,自动为数据模型对象的特定属性(如创建人、创建时间、修改人、修改时间等)赋值。 在MyBatis中...
4. **使用分页**:在Service层或者DAO层,通过PageHelper的startPage()方法开启分页,传入当前页数和每页大小,然后正常调用Mapper的查询方法即可。PageHelper会返回一个Page对象,包含了查询结果和分页信息。 ```...
1. **创建拦截器类**:首先,创建一个新的 Java 类并实现 `Interceptor` 接口。在这个类中,我们需要重写 `intercept` 方法。在这个方法内,我们可以通过 `Invocation` 对象获取到当前执行的 SQL 语句、参数等信息。...
在案例的文件名"struts2Study"中,我们可以推测这可能是一个包含了整个Struts2应用的源码结构,包括Struts2的配置文件(struts.xml)、Action类、DAO层的实现以及可能的JPA实体类和数据库配置等。这些文件将帮助我们...
本话题主要探讨如何将这三个框架整合在一起,实现一个高效、灵活的Web应用程序,并利用拦截器(Interceptor)进行用户登录验证和日志记录。 首先,Struts2作为MVC框架的核心,负责处理HTTP请求并分发到相应的Action...
SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,它将Spring的核心容器、Spring的Web MVC模块以及MyBatis持久层框架整合在一起,为开发者提供了强大的服务。在这个"ssm_拦截器demo"中,我们...
3、拦截器在方法前后,异常前后等调用,而过滤器只能在请求前和请求后各调一次。 4、拦截器可以利用依赖注入,因此在spring框架程序中,优先拦截器 5、拦截器是包裹在过滤器中使用的。 复习 converter 转换器 ...
拦截器链是由多个拦截器组成,当执行一个SQL时,每个拦截器的`intercept`方法都会按顺序调用,这样就可以在不修改原有代码的情况下,对SQL执行过程进行扩展。 分页是Web应用中常见的需求,它可以有效地减少数据库...
Java SSH(Struts2、Spring、Hibernate)是一个常见的企业级应用开发框架组合,用于构建高效、可维护的Web应用程序。SSH框架的结合使得开发者能够利用Struts2的MVC设计模式,Spring的依赖注入和事务管理,以及...
本文档将详细介绍如何在Struts2框架中创建一个登录验证拦截器,以确保除了登录请求外,所有其他请求都会被拦截,并检查用户的登录状态。 #### 登录校验拦截器的工作原理 登录校验拦截器的主要作用是检查用户是否...
分页拦截器的核心思想是减少业务代码的侵入性,避免在每个需要分页的Service或DAO层都需要手动处理分页参数。它通过拦截Mapper接口的方法调用,分析方法签名和传入参数,从中获取分页信息,然后动态构造出分页SQL,...
5. **DAO(Data Access Object)层**:用于与数据库进行交互,如UserService.java和UserDaoImpl.java,它们实现了用户的创建、查询和验证等功能。 6. **拦截器(Interceptor)**:Struts2中的拦截器可以实现一些...
2. **MyBatis**:MyBatis是一个优秀的持久层框架,它简化了Java与数据库之间的交互。它允许开发者编写SQL语句,将SQL语句映射到Java方法上,从而实现动态SQL和灵活的数据访问。MyBatis通过XML或注解配置,可以很好地...
1. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它继承了Struts1的优点,并引入了更多现代框架的特性,如拦截器(Interceptor)机制,增强了Action类的功能。在S2SH整合中,Struts2主要负责请求分发和...
Struts2.0是一个流行的Java Web开发框架,它基于MVC(Model-View-Controller)设计模式,主要用于构建动态网站。本文将详细解析Struts2中的拦截器(Interceptor)、CRUD操作以及Action的执行流程。 首先,让我们...
本项目源码主要基于SpringMVC框架,这是一个强大的、灵活的Java Web开发框架,由Spring社区维护,广泛应用于企业级应用开发。 SpringMVC是Spring框架的一部分,它提供了一个用于构建Web应用程序的模型-视图-控制器...
2. UV(独立访客数):指在一定时间内访问网站的不同访客数量,同一个访客在统计周期内多次访问只计算一次。 在Java+Spring+Mysql+C3P0的环境中,我们可以按照以下步骤实现这个功能: 1. **C3P0连接池**:C3P0是一...
在Struts2中,拦截器是基于Java的动态代理模式实现的,它可以看作是一个插件,用来在Action调用前后执行一些额外的逻辑,如日志记录、事务管理、权限验证等。通过配置,可以灵活地组合和堆叠多个拦截器,形成一个...
SSH(Struts2 + Spring + Hibernate)框架是Java Web开发中的一个经典组合,它整合了三个强大的开源框架,用于构建高效、可维护的企业级应用程序。本项目是一个完整的SSH框架实现,虽然规模不大,但涵盖了SSH框架的...
综上所述,这个压缩包提供了一个基础的Java MVC登录系统的实现,展示了如何利用DAO层和MVC模式来构建一个简单的Web应用。开发者可以以此为起点,学习和理解MVC模式的工作原理,以及如何在实际项目中应用。