Struts2.3.7技术的汇总之六(权限…

来源:互联网 发布:apache 编译 编辑:程序博客网 时间:2024/05/13 13:58
 
package cn.itcast.web.struts.interceptors;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class PermissionInterceptor implements Interceptor {
 public void destroy() {
  // TODO Auto-generated method stub
 }
 public void init() {
  // TODO Auto-generated method stub
 }
 //如果用户没有登录就不允许其访问message页面;
 public String intercept(ActionInvocation invocation) throws Exception {
  Object object=ActionContext.getContext().getSession().get("student");
  if(object!=null){
   invocation.invoke();
  }
  return "error";
 }
}
权限拦截这里到不要注意什么,只要继承了Interceptor接口,实现方法即可,配置struts.xml,需要注意和系统默认是拦截器的位置关系:比如:

   
   
    class="cn.itcast.web.struts.interceptors.PermissionInterceptor" />
   
   
    
    
    
    
    
   
  
拦截器和拦截器 需要定义好后只需在action中指定即可,也可以定义默认拦截器 ,如果action中没有定义拦截器则默认拦截器起作用,否则不起作用。
这里顺便说下原理:即aop技术,环绕通知,想必学过spring的筒子们对这个比较熟悉,什么叫做aop编程呢,即面向切面编程,
我们知道判断权限这个动作对大部分的action都要用到,如果每个都要定义的话就会很麻烦,同时将业务逻辑跟权限拦截代 互相搅合,
程序的可读性比较差,我们想到既然大部分的action都要用到权限拦截这个功能,我们就对其进行抽取封装,定义一个单独的权限拦截,在需要的地方通过反射技术植入。以达到权限拦截的目的。
同时struts的功能主要是通过拦截器来实现的,他内置了许多有用的拦截器,比如文件上 ,表单封装等。
Struts2.3.7技术的汇总之六(权限拦截)转发至微博
 
Struts2.3.7技术的汇总之六(权限拦截)转发至微博
0 0
原创粉丝点击