Struts简介:
什么是Struts?
是Apache软件基金会赞助的一个开源项目,是一个基于Java EE的MVC开源实现。是MVC设计模式中的一个经典产品,它为Servlet/JSP技术的应用提供技术框架。
Java web应用架构模式:
Model1:JSP+JavaBean
Model2: MVC模式
Struts技术框架类型:
Struts1
2001.7月正式发布
存在缺陷:
只支持JSP作为其表现层技术
与Servlet API耦合严重,严重依赖Web服务器,
脱离服务器难于测试
属于侵入式设计( Struts1.0的Action包含了大量
的Struts1.0 API),影响代码重用
Struts2
2006年底正式发布,较好的解决了Struts1的缺陷,使用了WebWork的设计理念,相对于Struts1而言,Struts2是一个全新的框架,它继承了Struts1和WebWork的许多优点
Struts2程序运行流程
Struts2项目的一般组成
控制组件:核心控制器和业务逻辑控制Action
模型组件:JavaBeans、EJB等
视图组件:JSP、HTML页面等
配置文件:web.xml、struts.xml等
Struts2项目运行时的文件结构
web.xml:所在目录为WEB-INF,主要用于配置Struts2的核心控制器,配置代码如下
<filter>
<!-- 配置Struts2核心Filter的名字 -->
<filter-name>struts2</filter-name>
<!-- 配置Struts2核心Filter的实现类 -->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 -->
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
struts.xml文件:核心配置文件,所在目录为WEB-INF\classes,主要用于负责管理Struts2框架的业务逻辑控制器Action,可在其中定义动作包、动作、拦截器等内容。可以将复杂的配置文件分为多个文件,然后应用include标记将这些文件整合到struts.xml文件,代码如下:
<struts>
<include file=“module1.xml”/>
<include file=“module2.xml”/>
<include file=“module3.xml”/>
</struts>
struts-default.xml文件:是struts2的预定义配置文件,保存在struts2-core类包中,定义了Struts2的各种bean和拦截器,所有内置拦截器的定义统一放到struts-default包中。在struts.xml定义动作包时需要使用extends关键字设置指定包名继承struts-default包,例如:
<package name=”…” namespace=”/…” extends=”struts-default”>
default.properties文件:保存在struts2-core类包中,用于保存Struts2的各种默认属性。常用属性如:
struts.action.extension: 定义struts2动作的扩展名,默认为action;
struts.i18n.encoding: 定义struts2的编码机制,默认值为UTF-8
default.properties文件中的所有属性可以通过自定义struts.properties(保存在src目录下)、web.xml或struts.xml文件的constant标记进行修改,例如:
<constant name=”struts.action.extension” value=”do”/>
<constant name=”struts.i18n.encoding” value=”GB18030”/>
使用MyEclipse开发一个简单Struts2项目
步骤:
- 创建web项目
- 为项目搭建Struts2运行环境
- 配置核心控制器(配置web.xml)
- 创建业务逻辑控制器(Action)
- 创建视图页面
- 创建struts.xml配置Action
- 部署和运行struts2项目