首先去Stuts2 的官网 http://struts.apache.org/ 按Download 下载相应的版本
Full Distribution : 完整版(建议下载),包括下面的所有文件
Example:Struts2的示例程序
Essential dependencies only:轻量发布版,只包含必需的依赖包
All dependencies:所有的依赖包
Documenation:文档(使用文档,参考手册,API文档)
Sorece:源码(开源)
因为截图有点麻烦 我就不截图了 楼主下载的是Full Distribution的版本:
解压后有五个文件夹
apps:Struts2的示例程序;
docs:API帮助文档,查找程序中编写 的类和方法
backport:JDK支持JAR
lib:核心类库和第三方JAR包
src:源码
接下来讲导入
可以根据你自己的需求导入相应的jar包
可以把JAR包放入放到WEB-INF下的lib下(绑死在项目下)
(建议放到User Libraies 库中)(不过现在IDEA还有都用MAVEN管理了)
一般都会用到以上jar包,反正有需要自己再加就是了
Struts的体系图,了解一下运行过程
关于图中的Key:
- Servlet Filters:过滤器链,客户端的所有请求都要经过Filter链的处理。
- Struts Core:Struts2的核心部分,但是Struts2已经帮我们做好了,我们不需要去做这个
- Interceptors,Struts2的拦截器。Struts2提供了很多默认的拦截器,可以完成日常开发的绝大部分工作;而我们自定义的拦截器,用来实现实际的客户业务需要的功能。
- User Created,由开发人员创建的,包括struts.xml、Action、Template,这些是每个使用Struts2来进行开发的人员都必须会的。
- 1.FilterDispatcher是整个Struts2的调度中心,也就是MVC中的C(控制中心),根据ActionMapper的结果来决定是否处理请求,如果ActionMapper指出该URL应该被Struts2处理,那么它将会执行Action处理,并停止过滤器链上还没有执行的过滤器。
- 2.ActionMapper 会判断这个请求是否应该被Struts2处理,如果需要Struts2处理,ActionMapper会返回一个对象来描述请求对应的ActionInvocation的信息。
- 3.ActionProxy,它会创建一个ActionInvocation实例,位于Action和xwork之间,使得我们在将来有机会引入更多的实现方式,比如通过WebService来实现等。
- 4.ConfigurationManager是xwork配置的管理中心,可以把它看做struts.xml这个配置文件在内存中的对应。
- 5.struts.xml,是开发人员必须光顾的地方。是Stuts2的应用配置文件,负责诸如URL与Action之间映射关系的配置、以及执行后页面跳转的Result配置等。
- 6.ActionInvocation:真正调用并执行Action,它拥有一个Action实例和这个Action所依赖的拦截器实例。ActionInvocation会按照指定的顺序去执行这些拦截器、Action以及相应的Result。
- Interceptor(拦截器):是Struts2的基石,类似于JavaWeb的Filter,拦截器是一些无状态的类,拦截器可以自动拦截Action,它们给开发者提供了在Action运行之前或Result运行之后来执行一些功能代码的机会。
- 7.Action:用来处理请求,封装数据。
- 二、运行流程
1.当用户的发出请求,比如http:localhost:8080/Struts2/helloworld/helloworldAction.action,请求会被Tomcat接收到,Tomcat服务器来选择处理这个请求的Web应用,那就是由helloworld这个web工程来处理这个请求。
2.Web容器会去读取helloworld这个工程的web.xml,在web.xml中进行匹配,但发现,由struts2这个过滤器来进行处理(也就是
StrutsPrepareAndExecuteFilter),根据Filter的配置,找到FilterDispatcher(Struts2的调度中心)
3.然后会获取FilterDispatcher实例,然后回调doFilter方法,进行真正的处理
PS:FilterDispatcher是任何一个Struts2应用都需要配置的,通常情况下,web.xml文件中还有其他过滤器时,FilterDispatcher是放在滤器链的最后;如果在FilterDispatcher前出现了如SiteMesh这种特殊的过滤器,还必须在SiteMesh前引用Struts2的ActionContextCleanUp过滤器
http://blog.csdn.net/wjw0130/article/details/46371847 转载的,可以去看这个博客比较详细
![安静](http://static.blog.csdn.net/xheditor/xheditor_emot/default/quiet.gif)
了解完就可以写个小点的案例了,可以去看下基本用法。