博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2 框架分析
阅读量:5122 次
发布时间:2019-06-13

本文共 1789 字,大约阅读时间需要 5 分钟。

1.Struts 2执行过程解析;

login.jsp----->StrutsPrePareAndExecuteFilter--------->Action-------------->Result-------------------->manage.jsp

Action 

怎样在struts.xml中配置Action

//结果为success时跳转到Login.jsp
/Login.jsp
-

Result

1.当Web容器收到请求后,将请求交由在web.xml中配置的Struts 2 框架的控制器StrutsPrepareAndExecuteFilter(核心控制器)

2.由StrutsPrepareAndExecuteFilter的确请求对应的Action(业务控制器)

3.框架根据Action返回的结果字符串,由StrtsPrepareAndExecuteFilter选择对应的result,将结果呈现给用户。

动态结果:

/errorAction.jsp
-->

1.ActionMapper

提供了在请求和Action调用请求之间的映射,ActionMapper根据请求的URl来查找是否存在对应的Action调用请求,如果有,则返回一个描述Action映射的ActionMapping对象,没有就为null

2.ActionMapping 

ActionMaping保存了调用Action的映射信息,其中必须保存Action的命名空间信息和name属性信息。

3.ActionProxy

ActionProxy在XWork和真正的Action之间充当代理,在执行Action的过程中,因为使用代理而非直接操纵对象,所以可以在Action执行前后额外操作。ActionProxy创建了ActionInvocation对象。

4.Actionlnvocation

ActionInvocation 表示Action的执行状态,它保存拦截器Action的实例,Actionlnvocation由ActionProxy创建,通过调用invoke()方法开始Action的执行,执行的顺序为按配置执行拦截器,拦截器执行完毕后,执行Action,Action执行结束返回结果字符串,匹配对应的Result后,在一次执行拦截器。

5.Interceptor(拦截器)

拦截器是一种可以在请求处理以前或者之后执行的Struts2.拦截器是Struts 2的重要特性,Struts 2框架的绝大多数功能是通过拦截器完成的。

public class MyTimer extends AbstractInterceptor {    public String intercept(ActionInvocation invocation) throws Exception {        long timeMillis = System.currentTimeMillis();        System.out.println("开始时间"+timeMillis);        String invoke = invocation.invoke();        long time=System.currentTimeMillis();        System.out.println("结束时间"+timeMillis);        long s = time - timeMillis;        System.out.println("一共时间"+s);        return invoke;    }}
/Login.jsp

 

 

 

 

转载于:https://www.cnblogs.com/xiaoyu1997/p/6501923.html

你可能感兴趣的文章
【原】小程序常见问题整理
查看>>
C# ITextSharp pdf 自动打印
查看>>
【Java】synchronized与lock的区别
查看>>
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
STM32F10x_RTC秒中断
查看>>
display:none和visiblity:hidden区别
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
SpringMVC学习总结(三)——Controller接口详解(1)
查看>>
牛的障碍Cow Steeplechase
查看>>
Zookeeper选举算法原理
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>
构造者模式
查看>>
http和https的区别
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
今天新开通了博客
查看>>