您的位置:首页 > 编程语言 > Java开发

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

2015-12-24 10:27 357 查看
 

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的功能主要是通过拦截器来实现的,他内置了许多有用的拦截器,比如文件上 ,表单封装等。




转发至微博
 



转发至微博
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: