初步了解struts工作流程

这两天初步理解了一下struts,并从网下学习写了个简单功能来跟踪工作流程。

1、初步了解

struts主要包括两个配置文件(web.xml、struts-config.xml),前者主要用于配置核心类ActionServlet以及管理servlet的匹配方式servlet-mapping。而后者则是我们主要要进行设置的,我写得比较简单,所以主要了解了对ActionForm和Action的配置。

为了实现struts的功能,我们还需要了解几个重要的类:

ActionServlet:最最核心的类,struts的一切都是从它开始的,当我们执行一个操作时,比如post,就会被ActionServlet拦截到,接着执行下面的功能;

ActionMapping:管理我们的配置文件struts-config.xml,用于寻找相应的Action和ActionForm;

ActionForm:管理表单数据;

Action:执行相应的功能(当然也可以把功能分离到相应的业务处理类中),返回ActionForward

ActionForward:实现重定向功能;

仅仅从字面理解功能,所以肯定有不准确的地方,还是需要跟踪理解一下。

2、跟踪源码

在myeclipse环境中,将相应的源码包关联,在浏览器中执行web程序。

我用的是post方法,在ActionServlet的dopost方法中设置断点,单步调试,而struts大致的执行过程如下:

a、在ActionServlet的init初始化方法中将struts-config.xml读取到相应的数据结构;

b、在前面数据结构中取出相应的数据,填充到ActionMapping中,用来定位Action和ActionForm;

c、新建或者找到ActionForm(也可能没有),并将表单数据收集写入到相应ActionForm中;

d、找到或是新建Action实例,执行Action里的方法,并返回一个ActionForward;

e、通过ActionForward提供的信息,跳转或重定向到相应的页面。

3、总结

从源代码中可以很清晰的看到struts的工作流程,由于看得比较仓促,request是怎么封装表单数据,以及后面是怎么定向到新的页面,没有去理解。我想心里先有个梗概就好了,初学没有细致的了解,有什么错误或是问题,麻烦大家指出,非常感谢!!

猜你喜欢

转载自leonard1853.iteye.com/blog/1061573
今日推荐