自定义拦截器
2016-04-02 23:28
225 查看
package com.cn.interceptors; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.cn.domain.User; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; //执行动作方法前检查用户是否已经登录 public class SessionCheckInterceptors extends MethodFilterInterceptor{ @Override protected String doIntercept(ActionInvocation invocation) throws Exception { String result = "login";//对应的就是一个结果(即action的结果配置:<result name="login">/login.jsp</result>) HttpSession session = ServletActionContext.getRequest().getSession(); User user = (User)session.getAttribute("user"); if(user!=null) result = invocation.invoke(); return result; } }
在Struts配置文件中进行配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <package name="mypackage" extends="struts-default" abstract="true"> <interceptors> <interceptor name="sessionCheck" class="com.cn.interceptors.SessionCheckInterceptors"> <!-- 说明test2动作方法不需要拦截(这里是指action的method方法) --> <param name="excludeMethods">test2</param> </interceptor> <interceptor-stack name="myDefaultStack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="sessionCheck"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="myDefaultStack"></default-interceptor-ref> </package> <package name="p1" extends="mypackage"> <action name="test1" class="com.cn.action.HelloAction1" method="test1"> <result>/1.jsp</result> <result name="login">/login.jsp</result> </action> <action name="test2" class="com.cn.action.HelloAction1" method="test2"> <result>/2.jsp</result> </action> </package> </struts>
相关文章推荐
- 设计模式--(二十三)
- Spark集群模式概述
- JavaScript作用域链详细介绍
- hexo干货系列:(二)hexo主题下载及配置
- JavaScript学习笔记--isNaN()
- Shell练习 行列转换
- Android访问网页
- 【Vuforia】基于Vuforia增强现实开发(一)之识别图像播放声音
- 计算机视觉和机器学习代码收集
- 运行Apache Benchmark
- 关于程序设计原则的一些思考
- 【9-2】索引迭代
- 安装Apache Benchmark
- JavaScript原型链详细介绍
- 20160402_多道程序环境中的设备抢占问题
- lammps
- 【笔记】 《js权威指南》- 第6章 对象 - 6.9 序列化对象 - 6.10 对象方法
- 全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗
- Android button自定义样式显示
- Java Web之Filter