`

struts2拦截器验证登陆状态

阅读更多
<interceptors>    
            <!--定义一个名为authority的拦截器-->    
            <interceptor  class="com.***.rights.RightInterceptor" name="rightInterceptor"/>    
                <!--定义一个包含权限检查的拦截器栈-->    
                <interceptor-stack name="mydefault">    
                <!--配置内建默认拦截器-->    
                <interceptor-ref name="defaultStack"/>    
                <!--配置自定义的拦截器-->    
                <interceptor-ref name="rightInterceptor"/>    
            </interceptor-stack>    
  </interceptors>    
        <default-interceptor-ref name="mydefault" />    
        <!--定义全局Result-->    
        <global-results>   
            <result name="login">Login.jsp</result>    
            <result name="error">/error.jsp </result>   
        </global-results>  
 

 

import java.util.HashMap;  
import java.util.Map;  
import com.opensymphony.xwork2.Action;  
import com.opensymphony.xwork2.ActionInvocation;  
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;  
import com.opensymphony.xwork2.ActionContext;  
public class RightInterceptor extends AbstractInterceptor {  
  
    @Override  
    public String intercept(ActionInvocation invocation) throws Exception {  
        //System.out.println("拦截器开始验证");  
        try  
        {  
            ActionContext actionContext = ActionContext.getContext();  
            Map<String,Object> session = actionContext.getSession();  
            String user=session.get("usercode").toString();     
            //当前用户session无效且访问的action不是登录action时,执行拦截,跳转  
            if((user==null || user.equals("")) && !invocation.getAction().getClass().getName().equals("登录action"))   
            {  
                return Action.LOGIN;  
            }  
        }  
        catch(Exception e)  
        {  
            e.printStackTrace();  
            return Action.LOGIN;  
        }  
        //System.out.println("拦截器通过验证");  
        return invocation.invoke();//执行访问的action  
    }  
  
}  
分享到:
评论
1 楼 zmwxiaoming 2016-11-17  

相关推荐

    SpringBoot 自定义拦截器 的 源代码

    我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了...

    struts2.0.jar

    · 引入拦截器: Struts 2为拦截器(interceptor)提供了全面支持。拦截器可在Action类执行前后加以执行。拦截器经配置后,可以把工作流程或者验证等常见功能作用到请求上。所有请求通过一组拦截器传送,之后再发送到...

    当当网全套源码(附带邮箱验证功能)

    org.tarena.dang.interceptor :拦截器 3)struts配置文件结构 web.xml(配置Filter控制器) struts.xml (struts主配置文件) struts-user.xml(用户模块配置文件) struts-main.xml(浏览模块配置文件) ...

    Spring in Action(第二版 中文高清版).part2

    11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI 12.1.2 注入JNDI对象 12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送...

    Spring in Action(第2版)中文版

    11.3.4使用注释声明拦截器 11.4小结 第12章访问企业服务 12.1从jndi中获取对象 12.1.1使用传统的jndi 12.1.2注入jndi对象 12.1.3在spring2中注入jndi对象 12.2发送电子邮件 12.2.1配置邮件发送器 12.2.2...

    Spring in Action(第二版 中文高清版).part1

    11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI 12.1.2 注入JNDI对象 12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    Java面试宝典2020修订版V1.0.1.doc

    拦截器和过滤器的区别? 91 11、struts.xml中result的type有哪些类型? 91 12、什么时候用JDBC什么时候用Hibernete; 91 13、hibernate 数据的三个状态 91 14、Hibernate中load和get的区别? 92 15、Hibernate的工作...

    spring security 参考手册中文版

    18.5.2登录 148 18.5.3注销 149 18.5.4多部分(文件上传) 149 在Spring Security之前放置MultipartFilter 150 包含CSRF令牌 151 18.5.5隐藏的HttpMethodFilter 151 18.6覆盖默认值 151 19. CORS 152 20.安全性HTTP...

    Spring面试题

    用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的 Validate()验证后选择将...

    Spring攻略(第二版 中文高清版).part2

    8.3 用处理程序拦截器拦截请求 297 8.3.1 问题 297 8.3.2 解决方案 298 8.3.3 工作原理 298 8.4 解析用户区域 302 8.4.1 问题 302 8.4.2 解决方案 302 8.4.3 工作原理 302 8.5 外部化区分区域的...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    8.8 拦截器 332 8.9 依赖注入 335 8.9.1 EJB注入 336 8.9.2 资源注入 339 8.10 配置EJB引用 340 8.11 使用计时器进行任务调度 342 8.12 本章小结 345 第9章 消息驱动EJB 346 9.1 JMS和EJB 347 9.1.1 为什么使用MDB ...

    Spring攻略(第二版 中文高清版).part1

    8.3 用处理程序拦截器拦截请求 297 8.3.1 问题 297 8.3.2 解决方案 298 8.3.3 工作原理 298 8.4 解析用户区域 302 8.4.1 问题 302 8.4.2 解决方案 302 8.4.3 工作原理 302 8.5 外部化区分区域的...

Global site tag (gtag.js) - Google Analytics