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();//如果用户存在,继续调用下面的拦截器
}
}
}