我是靠谱客的博主 阔达墨镜,最近开发中收集的这篇文章主要介绍struts2_11_自定义拦截器的实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1)登录界面的代码:

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

2)退出界面的代码:

<%
  //取消session中设定的值,即user为null	request.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表示用户已经登录,允许执行Action
if (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>





最后

以上就是阔达墨镜为你收集整理的struts2_11_自定义拦截器的实现的全部内容,希望文章能够帮你解决struts2_11_自定义拦截器的实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部