`
neil_han
  • 浏览: 39142 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

struts2 中的拦截器例子快速进阶

阅读更多

转载于http://www.cnblogs.com/jackyrong/archive/2008/09/28/1301542.html

 

 

小结了struts2 中拦截器的一个例子,以方便快速进阶的.

  比如有个很典型的例子,要求在编辑数据或者增加数据前,必须要先判断用户是否登陆.则我们先在src目录下,建一个

包strutsxml,专门用来存放关于struts的xml.

   其中有个一个是基础xml,比如叫struts-base.xml

<package name="manager-default" namespace="/" extends="struts-default">
<!-- 定义全部的拦截器 -->
<interceptors>
<!-- 定义第一个自定义的拦截器,用于身份校验 -->
<interceptor name="isloginInterceptor" class="com.liao.IsLoginInterceptor"></interceptor>
<!-- 定义一个拦截器栈,系统所有Action都需配置 -->
<interceptor-stack name="islogin">
<interceptor-ref name="isloginInterceptor"></interceptor-ref>
</interceptor-stack>
</interceptors>
<global-results>
<!-- 配置全局结果,用于身份校验结果返回 -->
<result name="none">/error/loginerror.jsp</result>
</global-results>
</package>

之后分别按功能模块定义xml,比如定义一个struts_crud.xml

<package name="crud" extends="manager-default" namespace="/adment">
<action name="a" class="aAction" method="abc">
<interceptor-ref name="params"/>
<interceptor-ref name="islogin"/>
<result>success.jsp</result>
</action>

这里表示首先要用islogin的拦截器了.

下面是写这个拦截器.让其继承abstractinterceptor

 

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

import org.apache.commons.logging.*;
import java.util.*;

public class IsLoginInterceptor extends AbstractInterceptor {
private static final Log logger = LogFactory.getLog(IsLoginInterceptor.class);

public String intercept(ActionInvocation invocation) throws Exception {
//取得请求相关的ActionContext实例
ActionContext act = invocation.getInvocationContext();
//获取Session
Map session = act.getSession();
//从Session中获取用户ID
String userId = (String)session.get("userId");
//判断用户是否登录
if(userId==null){
//未登录,返回重新登录
return Action.NONE;
}
//执行该拦截器的下一个拦截器,如没有,执行Action被请求的相应方法
return invocation.invoke();
}
}

分享到:
评论

相关推荐

    struts2 例子2

    在Struts2中,动作(Action)是处理用户请求的核心组件,它接收来自视图的请求,处理业务逻辑,并将结果返回给视图。在这个例子中,我们可能有两个主要的动作:一个是接收用户输入参数的动作,另一个是展示这些参数...

    struts2jar.zip

    总的来说,"struts2jar.zip"压缩包是一个实用的学习资源,涵盖了从基础到进阶的Struts2知识,通过阅读提供的说明和实践例子,可以帮助开发者快速掌握Struts2框架的使用。在实际开发中,结合具体的项目需求,可以灵活...

    适合初学者的一个简单的struts2例子

    在Struts2中,可以通过`&lt;s:property&gt;`标签来获取Action中的属性值并显示在页面上。 7. **Struts2标签库**:Struts2提供了一套丰富的标签库,简化了JSP页面的编写。例如,`&lt;s:form&gt;`用于创建表单,`&lt;s:textfield&gt;`...

    struts2经典实例

    通过以上这些实例,你可以逐步学习和掌握Struts2的配置、Action、拦截器、结果类型、OGNL表达式、数据绑定、国际化、安全等方面的知识。这些实例不仅提供了理论知识,还提供了实践经验,对于深化对Struts2的理解和...

    Struts2学习文档

    1. **拦截器基础**:解释了拦截器的概念及其在Struts2中的作用。 2. **预定义的拦截器**:介绍了Struts2中预定义的各种拦截器,如defaultStack、params等,并说明了它们的功能。 3. **自定义的拦截器**:讲解了如何...

    struts2按阶段学习的具体例子

    这个"struts2按阶段学习的具体例子"压缩包显然包含了逐步学习Struts2的资源,帮助初学者从基础到进阶掌握这个框架。在接下来的内容中,我们将深入探讨Struts2的关键知识点,以期为你提供一个全面的学习路径。 1. **...

    Struts2教程汇总

    8. **国际化与本地化**:了解如何在Struts2中实现多语言支持。 9. **插件系统**:探讨Struts2的插件,如Spring插件、Freemarker插件等,增强框架功能。 10. **集成测试**:学习如何使用Struts2的Mock框架进行单元...

    struts2+spring+hibernate例子

    Struts2通过拦截器(Interceptor)机制实现了AOP(面向切面编程),允许在不改变业务代码的情况下添加额外的功能,如日志、权限控制等。 **Spring** 是一个全面的企业级应用开发框架,它不仅支持IoC(控制反转)和...

    struts2全部文件

    3. 拦截器库:如struts2-interceptor.jar,包含Struts2内置的拦截器,用于实现如异常处理、日志记录、权限控制等功能。 4. 配置解析库:如xwork-core.jar,负责解析Struts2的XML配置文件。 5. 依赖库:如ognl.jar、...

    struts2pdf资料帮助文档

    精通级教程则深入到更复杂的主题,如插件使用、自定义拦截器、国际化、异常处理、文件上传下载等,帮助开发者熟练掌握Struts2的高级特性和最佳实践。 接下来,"struts2标签介绍例子"这部分内容是关于Struts2提供的...

    Strust2 很详细例子

    总的来说,“Struts2 很详细例子”是一个全面的教程,涵盖了Struts2的基础和进阶概念,适合初学者和有一定经验的开发者用来巩固和深化对Struts2的理解。通过实践这些例子,你可以有效地提高自己的Java web开发技能,...

    Struts2+spring2+hibernate3实例源码-java源码

    - 如何在Struts2中使用Action和Interceptor。 - Spring如何管理Bean,以及如何通过@Autowired进行依赖注入。 - Hibernate如何进行数据操作,包括实体类的定义、映射文件的配置以及HQL的使用。 - 整合后的MVC架构如何...

    struts2.0资料

    - **拦截器(Interceptor)**:拦截器是Struts2的一大特色,可以实现AOP(面向切面编程),如日志记录、权限检查、事务管理等功能。 - **OGNL(Object-Graph Navigation Language)**:Struts2默认使用OGNL作为...

    struts2.0(希望可以帮助大家)

    6. **拦截器(Interceptor)**:介绍拦截器的概念,它是Struts2中强大的功能,可以实现日志记录、权限验证、事务管理等功能,并演示如何自定义拦截器。 在"struts2.0文档3-4-5.doc"中,可能深入到更高级的主题: 7...

    精通struts.基于MVC的.java.web设计与开发

    - **12.3.7 表单验证**:解释如何在Struts2中实现表单验证,确保数据的有效性。 - **12.4 Struts2整合Spring**:详细说明如何将Struts2与Spring框架进行整合,包括配置和使用Spring管理Struts2 Action实例的方法。...

    spring4.1.2、mybatis3.0.5、struts2.3.16.3搭建学习例子

    2.3.16.3版本的Struts2提供了强大的动作调度,拦截器机制,以及丰富的插件支持。它可以与Spring集成,实现更高效的应用管理。 在“myspring2”这个压缩包文件中,可能包含的文件和目录结构如下: 1. `pom.xml` - ...

    strut2简单的交易

    在Struts2中,模型负责处理业务逻辑,视图负责展示数据,控制器(如Struts2的动作类)则协调两者。动作类接收HTTP请求,调用模型进行处理,然后将结果传递给视图进行展示。在这个例子中,我们可能看到Action类的实现...

    struts1.rarstruts1.rar

    "struts2+spring+hibernate+mysql.rar"则涉及到更复杂的集成框架,其中Struts2是下一代Struts框架,提供了更丰富的特性,如拦截器、插件机制等。Spring是一个全面的后端框架,负责依赖注入、AOP(面向切面编程)等。...

    轻量级Java+EE企业应用实战:Struts+2+Spring+Hibernate1到7章源代码

    Struts 2的核心特性包括拦截器、OGNL表达式语言以及丰富的UI组件库。02章节可能涵盖了Struts 2的基础架构和配置,以及如何创建第一个Struts 2应用。 2. **Spring**:Spring框架是Java EE应用的核心,它提供依赖注入...

    struts+spring+jdbc

    Struts2、Spring和JDBC是Java开发中常用的三大框架,它们在Web应用开发中扮演着重要的角色。这里我们详细探讨一下这三个框架以及它们的整合。 Struts2 是一个基于MVC(Model-View-Controller)设计模式的开源JavaEE...

Global site tag (gtag.js) - Google Analytics