struts2_11_自定义拦截器的实现

来源:互联网 发布:打工软件哪个好 编辑:程序博客网 时间:2024/06/03 14:09

1)登录界面的代码:

<%//设置session的值关键字为userrequest.getSession().setAttribute("user", "Enter");%> 用户已登录

2)退出界面的代码:

<%  //取消session中设定的值,即user为nullrequest.getSession().removeAttribute("user"); %>用户已经退出登录

3)拦截器类PermissionInterceptor的代码:

public class PermissionInterceptor implements Interceptor {public void destroy() {// 销毁时调用}public void init() {// 启用时调用}// 该方法返回视图名称public String intercept(ActionInvocation invocation) throws Exception {// 取得user的内容Object user = ActionContext.getContext().getSession().get("user");// 如果user不为null表示用户已经登录,允许执行Actionif (user != null) {return invocation.invoke();// 调用Action}  // 如果user为空,不调用Action,并且向session中存入字符串"你没有权限执行该操作"ActionContext.getContext().put("message", "你没有权限执行该操作");return "success";}}

3)struts.xml文件的配置:

<struts><package name="packageName" namespace="/test"   extends="struts-default"><!--定义拦截器群 --><interceptors><interceptor name="permission" class="permissionInterceptor.PermissionInterceptor" /><!-- 自定义拦截器栈 --><interceptor-stack name="permissionStack"><!--系统自定义拦截器栈,先于自定义拦截器引入 --><interceptor-ref name="defaultStack" /><!--引入自定义拦截器 --><interceptor-ref name="permission" /></interceptor-stack></interceptors><!-- 定义默认全局拦截器   <default-interceptor-ref name="permissionStack" />   --><!--定义全局视图 --><global-results><result name="success">/index.jsp</result></global-results><action name="hello*"   class="interceptor.interceptorAction" method="{1}"><!-- 手动调用系统拦截器,当使用手动调用时该拦截器时,定义的系统默认拦截器不会使用 --><interceptor-ref name="permissionStack" /><!-- 当调用自定义拦截器时,只有将系统拦截器,先调用 采用同  时使用自定义拦截器和系统拦截器 --><interceptor-ref name="interceptorName" /></action></package></struts>





3 0
原创粉丝点击