Struts2.x和Struts1.x的区别

Strust2.x不是新发布的新框架,而是另一个非常流行的框架WebWork基础上发展起来的。Struts2并没有继承Struts1的特点,但是它吸收了Struts1和WebWork两者的优势,因此是一个优秀的框架

Struts2和Struts1有很多不同点:

1,Action类的编写

    在Struts1中,Action类一般是继承基类“org.apache.struts.action.Action”.而在Struts2中,Action类可以实现一个Action接口,也可以实现其他接口,也可以继承ActionSupport基类,甚至不需要实现任何接口,只编写execute函数即可

2,Action的运行模式

     Struts1 中,Action是单态的,系统实例化一个对象来处理多个请求,为每个请求分配一个线程,在线程中运行execute函数。因此,在开发时需要需要特别小心,Action资源必须是线程安全的或者同步的。但是Strust2中,Action为每个请求产生一个实例,不会产生线程安全问题。

3,对Web容器的依赖

    Struts1中,Action的execute函数中,传入Servlet API:HttpServletRequest和HttpServletResponse,使得测试依赖于Web容器,但是,Struts2中,可以不传入HttpServletRequest和HttpServletResponse,但是可以访问它们

HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();

4,对表单数据的封装

    Struts1中,使用ActionForm来封装表单数据,所有的ActionForm必须继续org.apache.struts.action.ActionForm,有可能造成ActionForm类和VO类重复编码。但是,Struts2中,直接在Action中编写表单数据对应的属性,就是把Struts1中ActionForm和Action合二为一了,可以不用编写ActionForm,而这些属性又可以通过Web页面上的标签访问。

     


你可能感兴趣的:(框架,struts,区别,struts2.0)