Struts1.2的工作原理:
1.初始化Actionservlet,并拦截用户所有的*.do的请求。
2.从Struts-Configuration.xml中找到用户请求的Action。
3.通过Struts-Configuration.xml找到Action对应的ActionForm,并实例化。
4.把用户填写的数据自动填充到AcitonForm中。
5.把ActionForm放到指定的范围(request session)
6.把请求转发给Action
7.Actoin获取ActionForm的值然后调用业务逻辑层并实现功能
8.通过ActionMapping找到Actionforward实现转发
Struts2
1.客户端发起一个请求
2.这个请求经过一系列的过滤器(Filter)
3.接着FilterDispather被调用,FilterDispatcher询问ActionMapper来决定是否需要调用某个Action
4.如果ActionMapper决定需要调用某个Action,Filerterdispatcher把请求交给ActionProxy;
5.ActionProxy会根绝struts配置文件找到找到需要调用的Action类。
6.ActionProxy创建一个ActionInvocation的实例。
7.ActionInvocation实例使用命名模式来调用,在调用action前后会有一系列过滤器调用。
8.一旦Action执行完毕,ActionInvocation会根据配置文件找到相应的返回结果。
1.初始化Actionservlet,并拦截用户所有的*.do的请求。
2.从Struts-Configuration.xml中找到用户请求的Action。
3.通过Struts-Configuration.xml找到Action对应的ActionForm,并实例化。
4.把用户填写的数据自动填充到AcitonForm中。
5.把ActionForm放到指定的范围(request session)
6.把请求转发给Action
7.Actoin获取ActionForm的值然后调用业务逻辑层并实现功能
8.通过ActionMapping找到Actionforward实现转发
Struts2
1.客户端发起一个请求
2.这个请求经过一系列的过滤器(Filter)
3.接着FilterDispather被调用,FilterDispatcher询问ActionMapper来决定是否需要调用某个Action
4.如果ActionMapper决定需要调用某个Action,Filerterdispatcher把请求交给ActionProxy;
5.ActionProxy会根绝struts配置文件找到找到需要调用的Action类。
6.ActionProxy创建一个ActionInvocation的实例。
7.ActionInvocation实例使用命名模式来调用,在调用action前后会有一系列过滤器调用。
8.一旦Action执行完毕,ActionInvocation会根据配置文件找到相应的返回结果。