`
sw1982
  • 浏览: 511278 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2拦截器[代码备份]

阅读更多

.从ActionSupport继承的基类中,获取全部request值:

public abstract class BaseAction extends BaseAction {		

                //自动注入request的参数,到日志
		Map<String,String[]> params = getRequest().getParameterMap();
		if(params!=null && params.size()>0) {
			for(String key : params.keySet()){
				extInfo.put(key,Arrays.toString(params.get(key)));
			}
		}

 

 

2.拦截器,执行后拦截action返回值:

public class DefaultParamInterceptor extends AbstractInterceptor {
     @Override
     public String intercept(ActionInvocation actioninvocation) throws Exception {
		String result = actioninvocation.invoke();
		Object a2 = actioninvocation.getStack().findValue("message");
		System.out.println(a2);
		return result;
	}
}

 

。。这两段用来记日志,当然是比较爽的了,呵呵。

 

3.拦截器里面获取request

HttpServletRequest request = ServletActionContext.getRequest();

这样就不需要绕来绕去了

 

4. ActionInvocation.getAction()也是一个比较有趣的方法, 通过这里拿到当前action的类名,那么我们就可以用规则来匹配,使得拦截器只拦截指定action。

 

 

5. Filter 在Interceptor 之前执行。 因为Filter是servlet规范,对request做处理;而Interceptor只是struts2Action 代理实例之后的方法拦截器。

 

6. Interceptor 分Action执行前拦截,执行后拦截。  执行前拦截比较好理解,Interceptor配置越靠前,就越先执行。

执行后拦截呢???? 留作思考把,呵呵。

 

notice:

7.Interceptors must be stateless and not assume that a new instance will be created for each request or Action. Interceptors may choose to either short-circuit the ActionInvocation execution and return a return code (such as Action.SUCCESS ), or it may choose to do some processing before and/or after delegating the rest of the procesing using ActionInvocation.invoke() .

 

拦截器并不是线程安全的,也不保证每次请求都会实例化新对象,所以一定不要将拦截器做成有状态,简单说,就是不要定义类范围的变量。

分享到:
评论

相关推荐

    Struts2学习入门Demo备份

    6. **简单拦截器**(Struts_2200_SimpleInterceptor):简单的拦截器通常用于基础的业务逻辑,比如记录请求时间、用户信息等,它们可以帮助我们在不修改Action代码的情况下增加额外的行为。 通过这些示例,你可以...

    struts2的lib包

    2. **Interceptor**(拦截器):拦截器是Struts2的一大特色,它允许开发者在Action执行前后插入自定义的处理逻辑,如权限验证、日志记录、性能监控等。拦截器的组合使用可以构建出强大的功能模块。 3. **Result**:...

    将Struts应用迁移到Struts 2(一)

    5. **利用拦截器增强功能**:拦截器是Struts 2中的一个非常重要的特性,它可以在请求处理的不同阶段执行特定的操作。通过合理地利用拦截器,可以极大地提高应用程序的灵活性和可维护性。 6. **测试与优化**:完成...

    struts2从2.3.26升级2.3.34的文档

    - **备份**:在开始升级之前,确保备份现有的项目代码和配置文件,以防万一出现问题时可以回滚。 - **检查依赖**:了解当前项目对Struts2的依赖情况,包括直接依赖和其他库可能间接依赖的Struts2版本。 - **了解...

    Struts2 在线考试系统

    2. **拦截器(Interceptor)**:拦截器是Struts2的重要组成部分,它允许在Action执行前后插入自定义的逻辑。在这个在线考试系统中,拦截器可能被用来实现限时功能,检查用户是否在规定时间内完成答题,超时则自动...

    Struts2 + JasperReports4 + DB2 Demo

    通过配置Struts2的XML配置文件(struts.xml),可以定义Action、结果类型、拦截器等,实现请求的映射和处理流程。 **JasperReports** 是一个开源的报告生成库,它支持多种数据源,如数据库、CSV、XML等,可以生成...

    在线音乐网站(Struts2+hibernate+spring)

    Struts2提供了丰富的拦截器、结果类型和插件,使得开发者可以轻松地实现表单验证、国际化、文件上传等功能,大大提高了开发效率。 【Hibernate】是Java领域的一个对象关系映射(ORM)框架,它简化了数据库操作,...

    struts2-2.3.4.1升级到2.5.17版相关jar包

    - **安全配置**:学习并遵循官方发布的最佳安全实践,例如正确配置Struts2的安全拦截器,防止XSS、CSRF等攻击。 - **依赖注入**:避免使用Action级别的字段注入,以减少潜在的安全风险。 6. **新特性**: - **...

    Struts终极漏洞利用工具及代码

    - **配置安全拦截器**:正确配置Struts的拦截器以防止未授权的OGNL表达式执行。 - **输入验证**:对用户提交的数据进行严格的输入验证,限制允许的字符和格式。 - **日志监控**:密切关注系统日志,以便尽早发现...

    struts2 2.3.32

    3. **安全配置**:理解并应用Struts2的安全配置指南,包括限制不必要的插件,设置合适的过滤器和拦截器,以及对用户输入进行严格的验证和清理。 4. **监控**:在升级后,持续监控系统日志和性能,以便及时发现任何...

    基于Struts2+MySQL BBS论坛

    2. **拦截器(Interceptors)**: 拦截器是Struts2的一个强大特性,它们允许在Action执行前后插入自定义的处理逻辑,如日志记录、权限检查、事务管理等。通过配置不同的拦截器栈,可以实现灵活的控制流程。 3. **配置...

    都市信息网(Struts2+sql server 2000)

    - **配置文件**:struts.xml是Struts2的主要配置文件,用于定义Action、结果类型、拦截器栈等,实现对应用程序的控制。 - **拦截器**:如`TilesPlugin`用于页面布局,`ValidationInterceptor`用于表单验证,`...

    spring-struts2-maven

    它继承了Struts1的优点,并引入了拦截器(Interceptor)机制,增强了灵活性和可扩展性。Struts2与Spring集成,可以实现Action类的依赖注入,提高代码的可测试性和可维护性。 **Maven** Maven是一个项目管理和综合...

    struts2从2.3.15.1升级到2.3.35

    例如,新版本可能引入新的拦截器或者动作配置选项。开发者需要对照官方文档,确认并更新相应的配置项。 4. **插件兼容性**:如果你的应用使用了Struts2的插件,比如Struts2-dojo-plugin或Struts2-convention-plugin...

    luntan.rar_Struts2+Sql

    3. **Struts2拦截器**:拦截器是Struts2的一个重要特性,它们是实现了特定接口的类,可以在Action调用前后执行自定义逻辑。例如,用于登录验证、权限控制、日志记录等功能。在论坛项目中,可能会有用于身份验证和...

    低版本struts2升级高版本避免漏洞方案

    Struts2是一个基于Java的开源Web应用框架,它继承了Struts1的优点,并在此基础上增加了许多新特性,如拦截器(Interceptor)、结果类型(Result Type)等。Struts2框架通过简化开发过程并提供一系列强大的功能,帮助...

    struts2的项目

    在Struts2中,核心组件包括Action类、配置文件(struts.xml)、拦截器(Interceptors)和结果类型(Result)。Action类是业务逻辑的载体,负责处理来自客户端的请求。配置文件定义了Action与URL的映射关系,以及...

    mysql整合struts2开发实例

    Struts2的核心特性包括拦截器、插件架构、强大的动作类以及灵活的配置选项。 在整合MySQL和Struts2时,我们需要完成以下关键步骤: 1. **环境配置**:确保你已经在系统上安装了JDK、MySQL服务器、以及Struts2相关...

    struts2+hibernate3项目

    - Struts2是Struts框架的升级版,引入了拦截器(Interceptor)的概念,增强了异常处理、国际化、主题模板等功能,使得业务逻辑和表现层分离更彻底。 - Struts2的核心控制器是ActionServlet,它负责接收HTTP请求,...

    struts2开发.包

    Struts2提供了丰富的功能,如拦截器、插件体系、国际化支持、强大的动作和结果类型,以及对Ajax的内置支持。 在使用Struts2.0开发包时,以下是一些关键知识点和最佳实践: 1. **配置与依赖管理**: - 首先,需要...

Global site tag (gtag.js) - Google Analytics