Struts2是一个基于MVC设计模式的web应用框架,它本质上相当于一个Sevlet。是Struts1的下一代产品,是在structs1和WebWork技术的基础上进行合并后的全新框架(WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架,他也是一个MVC框架)。
虽然Struts的名字与Struts1相似,但其设计思想却有很大的不同。实质上,Struts2是以WebWork为核心的,它采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器与ServletAPI完全脱离开,所以Structs可以理解为WebWork的更新产品。
Struts拥有优良的设计和功能,其优势具体如下:
- 项目开源,使用及扩展方便,天生优势。
- 提供Exception处理机制。
- Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转。
- 通过简单、集中的配置来调度业务类,使得配置和修改都非常容易。
- 提供简单、统一的表达式语言来访问所有可访问的数据。
- 提供标准、强大的验证框架和国际化框架。
- 提供强大的、可以有效减少页面代码的标签。
- 提供良好的ajax支持。
- 拥有简单的插件,只需放入相应的jar包,任何人都可以扩展Struts2框架,比如自定义拦截器、自定义结果类型、自定义标签等,为Structs2定制需要的功能,不需要什么特殊配置,并且可以发布给其他人使用。
- 拥有智能的默认设置,不需要另外进行繁琐的设置。使得默认设置就可以完成大多数项目程序开发所需要的功能。
常见的Web层框架
- Struts2
- WebWork
- SpringMVC
web层框架都会有一个特点,就是基于前端控制器模式实现的。传统方式的开发,有一次请求就会对应一个Servlet,这样会导致出现很多Servlet。而Struts2将所有的请求都先经过一个前端控制器,在前端控制器中实现框架的部分功能,剩下具体操作要提交到具体的Action中。前端控制器本质就是过滤器,因为需要所有的请求都可以被过滤器拦截,然后在过滤器中实现部分的功能。
Struts2快速入门
1、下载Structs2的开发包,官网:http://struts.apache.org/
2、解压Struts2的开发包:
- apps:该文件夹存用于存放官网提供的Structs2示例程序。war文件可通过zip方式进行解压。
- docs:该文件夹用于存放官网提供的Struts2文档,包括Struts2的快速入门、Struts2的文档,以及API文档等内容。
- lib:该文件夹用于存放Struts2的核心类库,以及Struts2的第三方插件类库。
- src:该文件夹用于存放该版本Struts2框架对应的源代码。
3、使用IDEA,创建一个Struts项目。并导包。我是在之前Hibernate项目的基础上创建的,所以我建的是Module。
输入模块名称,点击完成。
进入刚才解压目录下的apps(示例程序),找到blank,并解压,如下所示:
解压后进入web_Inf下,选择lib目录,复制到我们项目的WEB_INF下
然后,做如下操作,我们才能在项目中使用包。
然后点击OK——>Apply——>OK即可
4、在src下写一个HelloAction类,编写如下代码:
5、完成Action的配置,并创建一个hello.jsp。
6、在web.xml中配置核心过滤器
7、测试。部署到tomcat。
Apply——>OK,Apply——>OK 即可。
由于我有多个项目,会报错:
解决办法是把其他项目的发布路径修改成不一样的就行:
运行结果如下: