- Struts2基于WebWork框架,从一个新的视角实现MVC,抛弃了req,res等Servlet API,通过Struts2拦截器从req中获取数据,并通过setter方法设置到Action上,隐藏了req,res等常规的方法,使得代码更加优雅
- Struts是一个按MVC模式设计的Web层框架。当浏览器发送请求时,核心控制器(ActionServlet/FilterDispatcher)参照Struts配置文件将各个请求分配给不同的action去处理。在控制器把请求交给action去处理之前,会将请求参数封装成一个参数对象(formbean/参数被set到Action的属性上),参数对象获得后调用validate方法进行校验,通过后将对象传递给execute方法,如果校验不通过,返回一个错误页面,这个错误页面由配置文件的input属性指定。action执行完后返回结果视图(ActionForward/字符串指向某个jsp页面或者重定向)
- Struts1缺点:
1)把所有的参数对象都作为 String 类型
2)对Servlet的依赖性过强,摆脱不了Servlet容器
3)很难在 Action 处理前和后进行操作
4)重定向不能加参数
5)多个业务方法放在一个Action中时,要么都校验,要么都不校验,不能只对某个方法进行校验 - 以上的缺点Struts2都解决了,但是还存在如下缺点:
1)每次修改配置之后,要重新部署整个项目,并重启服务器
2)Action的单元测试很难实现
3)前端语言集成JSTL,但是JSTL在集合和索引方面表现很弱
4)控制Action的执行顺序非常困难
5)一个表单只能对应一个Action
Struts理解
最新推荐文章于 2018-11-06 18:28:31 发布