Struts2 总结
1.控制器采用的是 Filter 这个服务器端组件,相比于 Servlet ,Servlet 能获取到的资源,Filter 也同样能获取到,不同的是 Filter 生命周期初始化和 Servlet 有所区别。
2.Struts2 使用 Filter 和 Interceptors 完成了表述层要解决的常见问题,如异常处理,防止表单重复提交,文件上传下载,类型转换,国际化等。
而自定义的**又为其他问题进行了扩展。
3.Struts2 使用 ValueStack 和 ModelDriven 使开发更加便捷。
ValueStack 可以看成是 Struts2 的一个容器,也可以看成是 表述层的一个容器。
结合 OGNL 表达式和 Struts2 标签,可以在页面中获取到任何想获取到的资源,比如域对象中的信息,请求参数,Web资源等,错误信息等。
而 ModelDriven 为请求参数提供了一种基于对象的注入,使开发更加便捷。
4.每一个 Struts2 请求会对应一个 ValueStack(它存在于整个 Action 生命周期内,在 Struts2 请求接受到请求的时候创建,随请求的结束而结束),对应一个
Action 对象,对应一个 action(实际处理请求的方法) 请求,保证了线程之间的安全性,但是也极大的消耗了服务器资源。
5.Struts2 是这样运行的:
在 Web 应用启动时,执行了 Struts2 的核心 Filter(StrutsPrepareAndExecuteFilter) 的初始化方法
原标题:struts2总结
关键词:Struts