![JavaWeb从入门到精通(视频实战版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/964/602964/b_602964.jpg)
上QQ阅读APP看书,第一时间看更新
5.1 术语概述
Action在Struts2中是负责Web应用程序中具体逻辑实现的。Action是一个Java类,一般继承于com.opensymphony.xwork.ActionSupport类,这个类在Struts2的Dispatcher接收到HTTP请求的时候被调用。
当一个action执行完毕之后,它将返回一个返回码,譬如“SUCCESS”、“INPUT”或者其他“返回代码”。这些“返回代码”通过查找struts.xml中的定义告诉Struts2下一步该做什么,而这个下一步就称为result。Struts2 支持许多种不同的result类型,比如返回结果页面给用户。可选择的显示模板技术有JSP、Velocity或者是FreeMarker。
Interceptor称为拦截器,是一个特殊的对象,它围绕着action及result的执行过程。Interceptor在action被执行之前(也可能是之后)被调用,由它控制这个action是否被执行或者如何被执行。Interceptor可以实现某些逻辑的松耦合,譬如安全、日志和校验。Interceptor在action执行之后和result结束之后仍然可以工作,为它们提供诸如数据库事务处理等功能。
在Struts2中,还可以将多个Interceptor组合在一起,构成一个Interceptor栈,通过这些栈重用于不同的action,提供了跨action的大规模功能改动的可能。Struts2提供了很多实用的Interceptor供用户使用,当然用户也可以定义自己的Interceptor。