转载于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中,动作(Action)是处理用户请求的核心组件,它接收来自视图的请求,处理业务逻辑,并将结果返回给视图。在这个例子中,我们可能有两个主要的动作:一个是接收用户输入参数的动作,另一个是展示这些参数...
总的来说,"struts2jar.zip"压缩包是一个实用的学习资源,涵盖了从基础到进阶的Struts2知识,通过阅读提供的说明和实践例子,可以帮助开发者快速掌握Struts2框架的使用。在实际开发中,结合具体的项目需求,可以灵活...
在Struts2中,可以通过`<s:property>`标签来获取Action中的属性值并显示在页面上。 7. **Struts2标签库**:Struts2提供了一套丰富的标签库,简化了JSP页面的编写。例如,`<s:form>`用于创建表单,`<s:textfield>`...
通过以上这些实例,你可以逐步学习和掌握Struts2的配置、Action、拦截器、结果类型、OGNL表达式、数据绑定、国际化、安全等方面的知识。这些实例不仅提供了理论知识,还提供了实践经验,对于深化对Struts2的理解和...
1. **拦截器基础**:解释了拦截器的概念及其在Struts2中的作用。 2. **预定义的拦截器**:介绍了Struts2中预定义的各种拦截器,如defaultStack、params等,并说明了它们的功能。 3. **自定义的拦截器**:讲解了如何...
这个"struts2按阶段学习的具体例子"压缩包显然包含了逐步学习Struts2的资源,帮助初学者从基础到进阶掌握这个框架。在接下来的内容中,我们将深入探讨Struts2的关键知识点,以期为你提供一个全面的学习路径。 1. **...
8. **国际化与本地化**:了解如何在Struts2中实现多语言支持。 9. **插件系统**:探讨Struts2的插件,如Spring插件、Freemarker插件等,增强框架功能。 10. **集成测试**:学习如何使用Struts2的Mock框架进行单元...
Struts2通过拦截器(Interceptor)机制实现了AOP(面向切面编程),允许在不改变业务代码的情况下添加额外的功能,如日志、权限控制等。 **Spring** 是一个全面的企业级应用开发框架,它不仅支持IoC(控制反转)和...
3. 拦截器库:如struts2-interceptor.jar,包含Struts2内置的拦截器,用于实现如异常处理、日志记录、权限控制等功能。 4. 配置解析库:如xwork-core.jar,负责解析Struts2的XML配置文件。 5. 依赖库:如ognl.jar、...
精通级教程则深入到更复杂的主题,如插件使用、自定义拦截器、国际化、异常处理、文件上传下载等,帮助开发者熟练掌握Struts2的高级特性和最佳实践。 接下来,"struts2标签介绍例子"这部分内容是关于Struts2提供的...
总的来说,“Struts2 很详细例子”是一个全面的教程,涵盖了Struts2的基础和进阶概念,适合初学者和有一定经验的开发者用来巩固和深化对Struts2的理解。通过实践这些例子,你可以有效地提高自己的Java web开发技能,...
- 如何在Struts2中使用Action和Interceptor。 - Spring如何管理Bean,以及如何通过@Autowired进行依赖注入。 - Hibernate如何进行数据操作,包括实体类的定义、映射文件的配置以及HQL的使用。 - 整合后的MVC架构如何...
- **拦截器(Interceptor)**:拦截器是Struts2的一大特色,可以实现AOP(面向切面编程),如日志记录、权限检查、事务管理等功能。 - **OGNL(Object-Graph Navigation Language)**:Struts2默认使用OGNL作为...
6. **拦截器(Interceptor)**:介绍拦截器的概念,它是Struts2中强大的功能,可以实现日志记录、权限验证、事务管理等功能,并演示如何自定义拦截器。 在"struts2.0文档3-4-5.doc"中,可能深入到更高级的主题: 7...
- **12.3.7 表单验证**:解释如何在Struts2中实现表单验证,确保数据的有效性。 - **12.4 Struts2整合Spring**:详细说明如何将Struts2与Spring框架进行整合,包括配置和使用Spring管理Struts2 Action实例的方法。...
2.3.16.3版本的Struts2提供了强大的动作调度,拦截器机制,以及丰富的插件支持。它可以与Spring集成,实现更高效的应用管理。 在“myspring2”这个压缩包文件中,可能包含的文件和目录结构如下: 1. `pom.xml` - ...
在Struts2中,模型负责处理业务逻辑,视图负责展示数据,控制器(如Struts2的动作类)则协调两者。动作类接收HTTP请求,调用模型进行处理,然后将结果传递给视图进行展示。在这个例子中,我们可能看到Action类的实现...
"struts2+spring+hibernate+mysql.rar"则涉及到更复杂的集成框架,其中Struts2是下一代Struts框架,提供了更丰富的特性,如拦截器、插件机制等。Spring是一个全面的后端框架,负责依赖注入、AOP(面向切面编程)等。...
Struts 2的核心特性包括拦截器、OGNL表达式语言以及丰富的UI组件库。02章节可能涵盖了Struts 2的基础架构和配置,以及如何创建第一个Struts 2应用。 2. **Spring**:Spring框架是Java EE应用的核心,它提供依赖注入...
Struts2、Spring和JDBC是Java开发中常用的三大框架,它们在Web应用开发中扮演着重要的角色。这里我们详细探讨一下这三个框架以及它们的整合。 Struts2 是一个基于MVC(Model-View-Controller)设计模式的开源JavaEE...