全局登录拦截

在登录Action中

ActionContext.getContext().getSession().put("session", sesion);

创建拦截类

public class LoginInterceptor extends MethodFilterInterceptor{  
  
    /** 
     *  
     */  
    private static final long serialVersionUID = -4409507846064552966L;  
  
  
    /* (non-Javadoc) 
     * @see com.opensymphony.xwork2.interceptor.MethodFilterInterceptor#doIntercept(com.opensymphony.xwork2.ActionInvocation) 
     */  
    @Override  
    protected String doIntercept(ActionInvocation invoker) throws Exception {  
        // TODO Auto-generated method stub  
  
        Object loginUserName = ActionContext.getContext().getSession().get("session");  
        if(null == loginUserName){  
            return "error";  // 这里返回异常页面,重新登陆 
        }  
        return invoker.invoke();  
    }  
  
}  

在Struts.xml配置

<!-- 拦截器 -->
		<interceptors>
			<!-- 登陆拦截器 -->
            <interceptor name="loginInterceptor" class="com.enchi.web.interceptor.LginInterceptor"/>
            <!-- 拦截器栈 -->
            <interceptor-stack name="myStack">
                <interceptor-ref name="defaultStack">
                	<!-- 开启日志 -->
                	<param name="exception.logEnabled">true</param>  
  					<param name="exception.logLevel">error</param>
                </interceptor-ref>
                <!-- <interceptor-ref name="loginInterceptor">
                </interceptor-ref> -->
            </interceptor-stack>           
        </interceptors>
         <!-- 所有action方法都需要拦截器 -->
        <default-interceptor-ref name="myStack"></default-interceptor-ref>

在 Struts-action.xml中跳转主页面配置

<interceptor-ref name="defaultStack"/>

猜你喜欢

转载自my.oschina.net/u/3569028/blog/1505081