`
neil-jh
  • 浏览: 147819 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

浅谈拦截器

阅读更多

package com.neil;

import com.opensymphony.xwork2.interceptor.Interceptor;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.Action;
import com.derby.dms.domain.User;
import com.derby.dms.util.Constant;

import java.util.Map;

/*
要开发自己的拦截器类,必须实现com.opensympony.xwork2.interceptor.Interceptor接口,该接口必须
要实现三个方法 void destory()  void init() String intercept(ActionInvocation invocation) throws Exception

init(): 在该拦截器被执行之前,系统将回调此方法,此方法只执行一次。因此,该方法的方法体主要用于打开一次性资源
例如:数据库连接等。       ,

destory(): 在该拦截器被销毁之前,系统将回调此方法。该方法用于销毁在init()方法里打开的资源。

intercept(ActionInvocation invocation) : 该方法是用户需要实现的拦截动作,就像Action的execute方法一样,
intercept会返回一个字符串作为逻辑视图。ActionInvocation参数包含了被拦截的Action的引用,可以通过调用
该参数的invoke方法,将控制权转给下一个拦截器,或者转给Action的execute方法。

struts2 还提供了一个AbstractInterceptor类,该类提供了一个init和destory方法的空实现,如果我们实现的拦截器
不需要申请资源,则可以无需实现这两个方法。继承该类就可以了


public class SimpleInterceptor implements Interceptor {
    public void init() {
    }

    public void destroy() {
    }

    public String intercept(ActionInvocation actionInvocation) throws Exception {


        return null;
    }
}



public class SimpleInterceptor extends AbstractInterceptor {
    private String name;

    public String intercept(ActionInvocation actionInvocation) throws Exception {
        
        Map session = ActionContext.getContext().getSession();
        User user = (User) session.get(Constant.USER);
        if (user == null) {
            return Action.LOGIN;
        }

        //执行该拦截器的后一个拦截器,或者直接指定Action的execute方法
        return actionInvocation.invoke();
    }

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

2
1
分享到:
评论

相关推荐

    浅谈Struts2拦截器的原理与实现.docx

    Struts2 拦截器是Struts2框架的核心组件之一,它允许开发者在Action执行前后插入自定义的处理逻辑,实现对请求的预处理和后处理,从而增强应用程序的功能和控制流程。以下是对Struts2拦截器原理与实现的详细解析: ...

    浅谈基于过滤器与拦截器的用户访问控制

    浅谈基于过滤器与拦截器的用户访问控制,stuts2中拦截器和过滤器的应用

    浅谈springMVC拦截器和过滤器总结

    在Spring MVC中,有两种常见的机制可以用来对访问的URL进行拦截处理:拦截器(Interceptor)和过滤器(Filter)。这两者都可以实现预处理和后处理功能,但它们的工作方式和应用场景有所不同。 ### 拦截器...

    浅谈SpringMVC的拦截器(Interceptor)和Servlet 的过滤器(Filter)的区别与联系 及SpringMVC 的配置文件

    在本文中,我们将深入探讨SpringMVC的拦截器(Interceptor)和Servlet的过滤器(Filter)之间的差异和联系,以及如何配置SpringMVC的拦截器。理解这两者的区别对于开发高效且安全的Web应用程序至关重要。 首先,让我们...

    浅谈SSH学习要点

    进阶学习时,你需要关注的是ActionServlet的扩展,比如自定义拦截器,以及ActionForm的变种,如DynaActionForm和LazyValidatorForm,它们提供了动态属性和延迟验证功能。此外,Struts的验证框架、分发Action、...

    浅谈PHP拦截器之__set()与__get()的理解与使用方法

    通过 `__set()` 和 `__get()`,我们可以实现一种类似于拦截器的机制,控制对象属性的访问。例如,我们可以在这些方法中加入验证、类型检查或者日志记录等操作,增强代码的安全性和可维护性。在上述示例中,创建了一...

    浅谈Strut2如何对请求参数的封装

    在拦截器链中,每个拦截器都有机会修改ValueStack中的属性值,这意味着在Action方法执行前,请求参数可以在拦截器之间传递和修改。最终,当拦截器链执行完毕,ValueStack顶层的属性值会被赋给Action类的相应属性,...

    浅谈SpringMVC HandlerInterceptor诡异问题排查

    浅谈SpringMVC HandlerInterceptor诡异问题排查 SpringMVC中的HandlerInterceptor是非常重要的组件之一,它可以在请求处理的各个阶段进行干预和修改。本文将主要介绍如何排查SpringMVC HandlerInterceptor中的诡异...

    浅谈Spring Cloud Ribbon的原理

    浅谈Spring Cloud Ribbon的原理 Spring Cloud Ribbon是一个基于Netflix的开源项目,主要提供客户端的软件负载均衡算法,将中间层服务连接在一起。Ribbon客户端组件提供了一系列完善的配置项,如连接超时、重试等。...

    浅谈Vue网络请求之interceptors实际应用

    浅谈Vue网络请求之interceptors实际应用 本文主要介绍了Vue网络请求之interceptors实际应用的知识点,包括使用axios request拦截器和axios response拦截器来实现token的携带和刷新。下面是详细的知识点总结: 1. ...

    浅谈spring-boot 允许接口跨域并实现拦截(CORS)

    浅谈spring-boot允许接口跨域并实现拦截(CORS) Spring Boot中实现CORS(Cross-Origin Resource Sharing,跨域资源共享)机制是为了解决不同域名、协议或端口下的资源请求问题。在Spring Boot项目中,我们可以使用...

    浅谈Java 三种方式实现接口校验

    Java接口校验是Java开发中一个非常重要的topic,本文将为大家介绍Java三种方式实现接口校验,包括AOP、MVC拦截器等方式,并对每种方式的实现进行详细的分析和讲解。 一、AOP方式实现接口校验 AOP(Aspect-Oriented...

    Web_安全架构浅谈.pdf

    在《Web安全架构浅谈》中,主要讨论了Web安全的多个方面,包括安全架构、扫描器、WAF(Web应用防火墙)以及面临的挑战和解决方案。以下是详细的知识点解析: 1. **Web安全扫描器**: - 扫描器用于检测Web应用中的...

    浅谈Struts框架技术.

    当用户发送请求时,ActionServlet首先拦截请求,依据struts.config.xml配置文件将请求转发给相应的Action对象。Action对象执行业务逻辑,更新Model状态,并可能调用其他JavaBean或EJB来处理更复杂的业务。执行完成后...

    浅谈JAVA回调机制1

    在Spring框架中,回调机制常用于拦截器(Interceptor)和AOP(面向切面编程),允许在方法调用前后插入自定义逻辑。此外,回调还可以用于线程间的通信,例如在多线程编程中,一个线程完成特定任务后通知另一个线程...

    浅析webwork

    拦截器允许开发者在Action执行前后插入自定义的逻辑,如权限检查、日志记录等,提高了代码的复用性和模块化。此外,WebWork还提供了强大的数据绑定功能,能够自动将表单参数映射到Action类的属性,减少了手动处理...

    浅谈SpringBoot启动那些事儿.pdf

    5. **启动监听器和拦截器**:启动监听器和拦截器,准备接受HTTP请求。 6. **完成启动**:应用程序启动完成,监听端口并准备处理请求。 #### 五、总结 本文主要介绍了如何构建Spring Boot源码环境,并通过一个简单...

    浅谈乱码问题的解决方案

    过滤器是Servlet技术的一部分,可以拦截请求和响应,在它们被进一步处理之前进行预处理或后处理。在这个例子中,我们创建了一个名为`EncodingFilter`的过滤器,其主要任务是设置请求和响应的字符编码。过滤器的核心...

Global site tag (gtag.js) - Google Analytics