基本简要流程如下:
1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被FilterDispatcher过滤。
3、根据struts.xml配置,找到需要调用的Action类和方法。
4、Action调用业务逻辑组件处理业务逻辑。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
6、返回HTTP响应到客户端浏览器。
Struts有哪些功能
1.Struts提供了一个过滤器调度程序,程序员不必再自行编写一个。
2.Struts使用了一个基于XML的配置文件来匹配URI和动作。因为XML文档是文本文件,所以对应用程序的许多改动都用不着重新编译有关代码即可生效。
3.对动作类进行实例化和提取用户输入去填充各有关动作属性的工作都由Struts负责。如果程序员没有指定一个动作类,Struts将对一个默认的动作类进行实例化。
4.Struts可以对用户输入提供一些基本的合法性验证,并在遇到不合法的输入时自动地把用户重定向到相关的输入表单。输入验证是一个可选环节,并且可以选择以编程方式或申明方式来实现。在此基础上,Struts还提供了许多种内建的输入验证程序。
5.Struts负责调用动作方法,而程序员可以通过配置文件轻而易举地改变某个动作的方法。
6.Struts负责检查各个动作的结果和执行该结果。最常见的结果类型是Dispatcher,其含义是把控制权转交给一个JSP页面。此外,Struts还支持其他一些结果类型供程序员做其他事情,比如生成一个PDF文件,重定向到一个外部资源,发送一条消息等等。
7.Struts还提供一些其他功能,比如用来显示数据的定制标签、数据转换、支持Ajax、支持国际化和本地化、可以通过插件对Struts进行扩展等等。
为什么要使用Struts
1.它是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;
2.其次,它是个开源项目得到了包括它的发明者Craig R.McClanahan在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日臻完善;
3.是它对其他技术和框架显示出很好的融合性。