6.Struts2拦截器的简单示例

l          权限管理。当然也是很重要的应用

package edu.yzu.interceptor;

import java.util.Map;

import com.opensymphony.xwork2.Action;

import com.opensymphony.xwork2.ActionInvocation;

import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

@SuppressWarnings("serial")

public class RrightIntercepter extends MethodFilterInterceptor {

    @SuppressWarnings("unchecked")

    @Override

    protected String doIntercept(ActionInvocation invocation) throws Exception {

        Map session=invocation.getInvocationContext().getSession();

        if(session.get("user")==null)

        {

            return Action.LOGIN;//最好使用struts2内置的,比较规范。这里这个值表示转回登陆页面

//struts2将原来servlet里的session内容封闭成了一个Map,对servlet中session的操作

//样会影响这个map,反之亦然!.当然这里也可以将其它的拦截器执行完后再返回

          //结果,不过此时已经没有多大意义。另外,对权限的管理,显示继承自//MethodFilterInterceptor合理一些!注意权限管理时权限拦截器的调用位置要注意

// struts2可以通过ServletActionContext.getRequest().getSession(true);得到当前servlet的session

//struts2将所有页面传递的参数都会放在request的作用域里面,在页面访问时可以用EL表达式方便语言访问

        }

        else {

            return invocation.invoke();//如果用户存在,继续调用下面的拦截器

        }      

    }

}

 

posted @ 2010-05-03 17:01  沉兮  阅读(331)  评论(0编辑  收藏  举报