`

基于全注解的ssh的拦截器的写法

    博客分类:
  • ssh
阅读更多

最近在用ssh框架写一个项目,是基于全注解的,上网搜了搜,这才发现全注解的struts的拦截器跟基于xml的拦截的写法略有不同,在这里小结一下,以备以后在写的时候忘了该怎么用。

 

 

 

struts.xml

<?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.convention.default.parent.package"
                value="crud-default" />
      <!--   一定要继承自convention-default -->
        <package name="crud-default" extends="convention-default" namespace="/">
                <interceptors>
                 <!--    你的拦截器 -->
                        <interceptor name="checklogin" class="com.kaishengit.interceptor.LoginInterceptor"></interceptor>
                        

                    <!--     基于paramsPrepareParamsStack, 增加store interceptor保证actionMessage在redirect后不会丢失 -->
                        <interceptor-stack name="crudStack">
                                <interceptor-ref name="store">
                                        <param name="operationMode">AUTOMATIC</param>
                                </interceptor-ref>
                                <interceptor-ref name="paramsPrepareParamsStack" />
                             <!--    在拦截器栈里引入你所加的拦截器 -->
                                <interceptor-ref name="checklogin">
                                        <param name="loginUser">user</param>
                                        <param name="exclude">tiaozhuan</param>
                                       
                                </interceptor-ref>
                        </interceptor-stack>

                </interceptors>
                <default-interceptor-ref name="crudStack" />

               <global-results>
	             <result name="login" type="redirectAction">
	             		<param name="actionName">tiaozhuan</param>
	             		<param name="namespace">/</param>
	             </result>     
	    	</global-results>
		</package>
	 
</struts>

 

 

 

LoginInterceptor.java

 

 

package com.kaishengit.interceptor;

import java.util.Map;
import java.util.Set;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.opensymphony.xwork2.util.TextParseUtil;

public class LoginInterceptor extends AbstractInterceptor{
			
	private static final long serialVersionUID = 1L;
	
	 private String loginUser;//session 中放的值;
     private String exclude;//不需要拦截的页面;

     @Override
     public String intercept(ActionInvocation invocation) throws Exception {
             Set<String> set = TextParseUtil.commaDelimitedStringToSet(exclude);
             System.out.println(invocation.getProxy().getActionName());
             if (set.contains(invocation.getProxy().getActionName())) {
                     return invocation.invoke();
             } else {
                     Map<String, Object> session = invocation.getInvocationContext().getContext().getSession();
                                     
                     if (session.get(loginUser) != null) {
                             return invocation.invoke();
                     }
             }
             return "login";
     }

     public String getLoginUser() {
             return loginUser;
     }

     public void setLoginUser(String loginUser) {
             this.loginUser = loginUser;
     }

     public String getExclude() {
             return exclude;
     }

     public void setExclude(String exclude) {
             this.exclude = exclude;
     }


}
 
分享到:
评论

相关推荐

    基于全注解的ssh完整例子

    这个基于全注解的SSH完整例子旨在帮助开发者快速理解和掌握这三大框架的集成与应用。 Struts是MVC(Model-View-Controller)设计模式的一个实现,主要用于处理用户的请求并控制应用程序流程。在全注解的配置下,...

    基于ssh拦截器框架Struts2拦截器的登录验证实现

    Struts2 框架是 SSH2 架构的重要组成部分,提供了一种强大的MVC(模型-视图-控制器)设计模式实现。...这种基于拦截器的登录验证方法是 SSH2 框架中常见且实用的实践,对于开发大型企业级应用非常有价值。

    基于注解的SSH整个框架

    【基于注解的SSH整个框架】是一个集成的Java Web开发框架,它结合了Spring、Struts2和Hibernate三个主流的开源框架。这个框架的核心目的是为了简化企业级应用的开发过程,提高开发效率,并且便于维护。以下是关于SSH...

    ssh+aop+log4j+日志拦截器+注解

    标题中的"ssh+aop+log4j+日志拦截器+注解"涉及到的是Java Web开发中的几个核心组件和技术,这些技术在构建大型、分布式的企业级应用时常常被使用。下面将详细介绍这些知识点: 1. SSH (Spring, Struts, Hibernate)...

    全注解ssh开发

    这个“全注解SSH开发”主题着重于使用注解来简化SSH框架的配置,提高开发效率。以下是关于SSH框架及MyEclipse集成开发环境的相关知识点: 1. **Struts2**:Struts2是MVC(模型-视图-控制器)架构模式的一种实现,...

    基于全注解的SSH2框架

    **基于全注解的SSH2框架详解** SSH2框架,即Spring、Struts2和Hibernate的集成,是Java开发Web应用程序的主流框架之一。在这个基于全注解的SSH2框架中,我们将深入探讨如何利用注解来简化配置,提高开发效率,并...

    全注解 SSH2 所有jar包 汇总

    SSH2全注解版本则是对原SSH2库进行注解处理,使得代码更易于理解和使用,同时也可能增强了代码的可维护性和自动化。 SSH2全注解的jar包汇总是一个集合了所有必需的SSH2库文件,经过调试确保兼容性和功能完整性的...

    基于全注解方式的SSH基础框架

    ### 基于全注解方式的SSH基础框架解析 #### 概述 本文将详细介绍一个基于Struts2、Spring、Hibernate以及Hibernate Generic DAO构建的基础框架。该框架使用全注解的方式进行配置,并且提供了清晰的包结构和文档,...

    maven下基于注解的SSH2

    maven下基于注解的SSH2 希望可以帮助到需要的人

    java 元注解+拦截器实现自定义注解.rar

    java 元注解+拦截器实现自定义注解 @CmwAutoWired:自定义依赖注入 注意:注入的接口和实现类需要在同一包名下,注解的是类则无限制 @FieldAnnotation:自定义属性注解 @MethodAnnotation:自定义方法注解 @...

    struts2注解与拦截器demo

    该例子为struts2注解与拦截器demo,利用myEclipse8.5开发,导入刚才后,自动加载所需struts2的jar包,可以直接运行,是初学struts2注解、拦截器很好的例子,保证10分钟学会2种技术,愿意分享给大家。

    SSH注解方式整合小例子

    **Struts2** 是一个基于MVC设计模式的Action驱动的Web应用框架,它通过注解可以实现Action类的声明式配置。例如,我们可以在Action类上使用`@Action`注解来指定URL映射,以及在方法上使用`@Result`注解定义结果页面...

    基于注解的 ssh

    而"基于注解的 SSH"则是指在SSH框架中使用注解来简化配置,提高开发效率。 Spring框架是SSH的核心,它提供了一个容器来管理对象(包括依赖注入)以及处理事务。传统的Spring配置通常使用XML文件,但随着Java注解的...

    ssh基于全注解配置

    struts2+hibernate+spring很详细的全注解资源配置

    基于全注解的ssh完整例子.zip

    在这个基于全注解的SSH完整例子中,我们将深入探讨如何利用注解来简化配置,使得开发过程更加简洁。本文将详细介绍SSH框架中的核心概念、注解的使用以及它们如何协同工作。 首先,Spring框架是SSH的核心,它提供...

    Eclipse基于注解方式搭建ssh框架

    "Eclipse基于注解方式搭建SSH框架"项目展示了如何在Eclipse环境中利用注解驱动的方式集成Struts2、Spring和Hibernate,实现了一个包含注册功能的Web应用。项目中使用了JPA注解简化了数据库交互,并通过数据库脚本...

    完全基于注解方式SSH框架项目设计.pdf

    在文档提供的信息中,作者雷筱珍通过“完全基于注解方式SSH框架项目设计”这篇文章,向读者详细阐述了SSH框架项目设计中注解应用的具体方法。文章中提到的参考文献,如《Struts, Hibernate, Spring集成开发宝典》和...

    全注解SSH例子

    在全注解SSH实例中,Struts2的注解如`@Action`, `@结果`等将用于定义控制器行为和视图映射,简化了以往XML配置的繁琐过程。 Spring框架则提供依赖注入(DI)和面向切面编程(AOP)等功能,增强了代码的可测试性和...

Global site tag (gtag.js) - Google Analytics