使用Filter作为控制器的好处:使用一个过滤器作为控制器,可以方便地在应用程序里对所有资源(包括静态资源)进行控制访问
<url-pattern>*.action</url-pattern>
Servlet VS Filter
1,Servlet能做的Filter是否都可以完成? 恩
2,Filter能做的Servlet都可以完成吗?拦截资源却不是Servlet所擅长的
Filer中有一个FilterChain,这个API在Servlet中没有
Struts2解决一些常见的问题:
用户的输入数据进行合法性验证
统一的布局
可扩展性
支持Ajax
表单的重复提交
文件的上传下载
Struts2 VS struts1
在体系结构方面更优秀:
类更少, 更高效: 在 Struts2 中无需使用 “ActionForm” 来封装请求参数.
扩展更容易: Struts2 通过拦截器完成了框架的大部分工作. 在 Struts2 中插入一个拦截器对象相当简便易行.
更容易测试:
即使不使用浏览器也可以对基于 Struts2 的应用进行测试
配置 result 元素
result 元素的 name 属性建立 <result> 和 Action 方法返回值之间的映射关系。name 属性的默认值为 “success”
result 元素的 type 属性负责指定结果类型. type 属性的值必须是在包含当前包或者是当前包的父包里注册过的结果类型. type 属性的默认值为 dispatcher