struts2 Interceptor配置与使用 .
来源:互联网 发布:淘宝考试管制刀具 编辑:程序博客网 时间:2024/05/22 12:56
在应用权限控制时,可以在需要的时候写上自己的权限控制代码,这是可行的,不过总会产生大量的重复代码。DRY(Don't Repeat Yourself)不要写重复的代码,在调用目标方法之前或之后执行一些逻辑,这通常可以通过代理的方式来实现,Interceptor基于此。
实现一个登录验证的Interceptor:
- /**
- * 权限控制Interceptor
- * @author Evan
- *
- */
- public class LoginInterceptor extends AbstractInterceptor {
- private static final long serialVersionUID = -1044025795657340245L;
- @Override
- public String intercept(ActionInvocation actionInvocation) throws Exception {
- // 获取ActionContext
- ActionContext actionContext = actionInvocation.getInvocationContext();
- // 获取sessionMap
- Map<String, Object> session = actionContext.getSession();
- String user=(String) session.get("user");
- //如果用户名存在,且为Evan,程序继续执行,否则跳转到登录页面
- if(user != null && user.equals("Evan")){
- //继续执行
- return actionInvocation.invoke();
- }
- //向HttpServletRequest中添加属性,即request.setAttribute(msg,...)
- actionContext.put("msg", "please login!");
- //返回LOGIN逻辑视图
- return Action.LOGIN;
- }
- }
struts.xml中的配置:
- <package name="struts2Prac" extends="struts-default" namespace="/">
- <interceptors>
- <!-- 定义Interceptor -->
- <interceptor name="loginInterceptor" class="cn.enjoylife.prac.interceptors.LoginInterceptor"/>
- <!-- 定义interceptor stack -->
- <interceptor-stack name="authenticationStack">
- <interceptor-ref name="defaultStack"/>
- <interceptor-ref name="loginInterceptor"/>
- </interceptor-stack>
- </interceptors>
- <!-- 如果没有定义,默认的interceptor stack为defaultStack,如果定义了则应用之 -->
- <default-interceptor-ref name="authenticationStack"/>
- <action name="hello" class="cn.enjoylife.prac.action.HelloAction">
- <result name="success" >/success.jsp</result>
- <result name="login" >/login.jsp</result>
- </action>
- </package>
如果不想将authenticationStack作为默认的interceptor stack,可以重新定义一个package用于管理其它的action映射;或者直接在action映射中引用struts默认的interceptor stack。
0 0
- struts2 Interceptor配置与使用
- struts2 Interceptor配置与使用 .
- struts2 Interceptor配置与使用
- 【Struts2】:Interceptor的配置和使用
- struts2 -- interceptor(如何配置Interceptor)
- struts2 -- interceptor(如何配置Interceptor)
- struts2 -- interceptor(如何配置Interceptor)
- struts2 -- interceptor(如何配置Interceptor)
- struts2 -- interceptor(如何配置Interceptor)
- struts2 -- interceptor(如何配置Interceptor)
- struts2 interceptor 如何配置
- struts2自定义Interceptor基本使用
- 如何使用struts2的Interceptor
- SpringMvc Interceptor拦截器的配置与使用
- struts2 -- interceptor(如何配置stuts2.xml之Interceptor)
- struts2 -- interceptor(如何配置Interceptor)-转载自Forrest He大大
- struts2+jsp filter和Interceptor配置
- struts2的Interceptor配置说明(一)
- Android 调用系统的设置项
- boost::condition_variable 设计c++ 生产者消费者队列
- block全解
- Lisp中累加和模板
- CSS中可以继承和不可继承的属性
- struts2 Interceptor配置与使用 .
- HDOJ 题目1566&题目1544 S-Nim(sg博弈模板)
- CocoaPods安装和使用教程
- misc设备驱动模型及实例解析
- POJ 1458 LCS模板
- MySQL慢查询开启和使用
- android之android.intent.category.DEFAULT的用途和使用
- Glut处理鼠标事件
- android 点击空白 隐藏软键盘