struts2的Interceptor

原创 2012年03月23日 21:52:44

一.定义拦截器类,实现Interceptor接口,重写里面的方法:

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;

public class MyInterceptor implements Interceptor {


    public String intercept(ActionInvocation invocation) throws Exception {
        Object user = ActionContext.getContext().getSession().get("userkey");
        if(user != null)
            return invocation.invoke(); //表示被拦截到的方法继续会执行action
        ActionContext.getContext().put("requestKey", "�㻹û�е�½");
        return "success"; 
    }
    public void init() {
    }
    public void destroy() {
    }

}


二.配置struts2的配置文件:

<struts>
    <!-- 禁止对action方法的动态调用 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
    <!-- 指定访问action的后缀类型 -->
    <constant name="struts.action.extension" value="action"></constant>

    <!-- 将struts2的ui设置为simple -->
    <constant name=”struts.ui.theme”value=”simple”/>

    <!-- 将struts2的ObjectFactory交给spring管理 -->
    <constant name="struts.ObjectFactory" value="spring"></constant>


    <package name="default" namespace="/myaction" extends="struts-default">
        <!--
        在bean.xml中定义拦截器:
        写入自己定义的拦截器
        编写拦截器栈,包括系统默认的拦截器和自己定义的拦截器
        最后再想调用拦截器的action中加入拦截器栈
         -->
        <interceptors>
            <interceptor name="mi" class="com.interceptor.MyInterceptor"></interceptor>
            <interceptor-stack name="mistack">
                <interceptor-ref name="defaultStack"></interceptor-ref>
                <interceptor-ref name="mi"></interceptor-ref>
            </interceptor-stack>
        </interceptors>

         ———— <default-interceptor-ref的意思是设置mistack为该包下的默认拦截器。(如果action中有则执行action中的拦截器不执行默认的)
        <default-interceptor-ref name="mistack"></default-interceptor-ref>  
        <global-results>
            <result name="success">/WEB-INF/page/hello.jsp</result>
        </global-results>
        <action name="hello_*" class="com.action.Hello" method="{1}">
            <interceptor-ref name="mistack"></interceptor-ref>
        </action>
    </package>
    <!-- Add packages here -->
</struts>

【Struts2】:Interceptor的配置和使用

在之前的博客中,介绍了Struts2的内建拦截器和自定义拦截器的一些内容,但是有了这些自带和自定义的拦截器之后,如何去配置和使用,还没有跟大家详细说明,接下来我们就一起学习一下,Struts2中Int...
  • u010929604
  • u010929604
  • 2016年05月31日 15:50
  • 2294

Struts2 拦截器(Interceptor )原理和配置

一、Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的    拦截器对象,然后串成一个列...
  • voins
  • voins
  • 2016年08月05日 17:10
  • 3237

struts2默认拦截器之autowiring

在struts2的struts-default.xml中定义了一个name为autowiring拦截器,实现类是com.opensymphony.xwork2.spring.interceptor.A...
  • wyxz126
  • wyxz126
  • 2013年03月01日 23:03
  • 919

struts2拦截器interceptor的三种配置方法

1、struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 package name="struts2" extends="struts-def...
  • xyw591238
  • xyw591238
  • 2016年07月19日 10:45
  • 5481

教务管理系统-Struct2注解使用拦截器(Interceptor)

Struct2注解添加拦截器Interceptor
  • u011499992
  • u011499992
  • 2016年05月31日 15:48
  • 1734

struts2 角色权限 filter(过滤器)和interceptor(拦截器)

Struts2项目通过使用Struts的if标签进行了session判断,使得未登录的用户不能看到页面,但是这 种现仅仅在view层进行,如果未登录用户直接在地址栏输入登录用户才能访问的地址,那么相应...
  • qq_35503293
  • qq_35503293
  • 2017年04月14日 18:01
  • 131

Struts2中获取Request,Response的几种方法

在Struts2中的没有像Struts1那样必须要在Action类中写个execute()方法,只需要是个返回字符串的方法即可(有时候也不需要返回值),在struts2中经将原有的servlet中re...
  • alan_liuyue
  • alan_liuyue
  • 2017年05月03日 14:48
  • 381

structs2中interceptor(拦截器)的种类

Interceptor是Structs2的基石
  • Anyu_Li
  • Anyu_Li
  • 2014年08月14日 11:43
  • 879

Struts2拦截器设置例外情况

权限拦截器如下: /** * 权限拦截器 * 拦截非登录用户 * @author Administrator * */ public class AuthorInterceptor ext...
  • WingBin
  • WingBin
  • 2014年04月18日 14:58
  • 3861

struts2 注解配置拦截器 实例

/** * */ package com.wonders.stpt.contractReview.action; import java.util.ArrayList; import jav...
  • z69183787
  • z69183787
  • 2014年08月08日 15:49
  • 10450
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts2的Interceptor
举报原因:
原因补充:

(最多只允许输入30个字)