STRUTS2新手基础学习day01
STRUTS21.了解Struts2发展史,与webwork框架关系
2.Struts2体系结构
C控制器:FilterDisptacher(2.0,2.1版本),StrutsPrepareAndExecuteFilter(2.1.8,2.2版本)
M模型:Action:用于业务处理。(可以不用必须继承父类和实现框架接口)
拦截器:用于封装通用业务逻辑。
V视图:Result(提供了各种类型的Result组件,用于实现不同类型的响应信息)、标签+OGNL
3.Struts2框架的配置
(1) struts-default.xml(jar包中自带的默认配置)
配置了一些拦截器、Result组件的定义。
(2) default.properties(jar包中自带的默认配置)
配置了框架的一些系统参数,例如请求扩展名、字符编码等。
(3) struts.xml(开发者创建,默认在src下创建)
用于配置Action组件、自定义拦截器组件、自定义的Result组件。
(4) struts.properties(开发者创建,默认在src下创建)
用于修改default.properties中的配置参数。
4.Struts2开发入门
(1)创建Web工程,引入开发包
struts2-core-2.1.8.jar
xwork-core-2.1.6.jar
freemarker-2.3.15.jar
ognl-2.7.3.jar
commons-fileupload-1.2.1.jar
(2)配置控制器,并添加struts.xml配置文件
(3)根据JSP请求编写Action组件
(4)编写struts.xml配置
5.Struts2特点
(1)Action摆脱了对框架API依赖,也摆脱了对ServletAPI
(2)Action可测性增强
(3)提供了各种类型的Result,可以完成各种形式的响应
(4)易于扩展和整合其他技术
(5)提供了拦截器和拦截器栈机制
(6)Struts1中的Action使用了单例,Struts2是一个请求一个Action对象
6.如何使用Session、Request、Application等对象
(1)Struts2对原有session、request、application做了封装,可以通过Map结构使用。使用方式如下
Map session = ActionContext.getContext().getSession();
Map application = ActionContext.getContext().getApplication();
Map request = (Map)ActionContext.getContext().get("request");
(2)封装原理
public class SessionMap extends AbstractMap{
HttpSession session;
public SessionMap(HttpSession session){
this.session = session;
}
public void put(Object key,Object value){
session.setAttribute(key.toString,value);
}
public Object get(Object key){
return session.getAttribute(key.toString());
}
}
(3)如果需要使用原有Servlet API类型,可以通过ServletActionContext获取
7.Action相关配置
(1)<package>元素的namespace属性,命名空间,默认值为/
对应请求是/工程/namespace/请求名.action
(2)<action>元素的method属性,业务方法名,默认execute
可以指定Action方法名当做业务方法。
(3)<param>元素
可以为父元素对象指定属性值。
(4)通配符*的使用
在<action>元素的name属性中可以使用*,*表示任意字符
在<action>元素的其他属性中可以使用{1}、{2}等引用通配符代表的值
8.ValueStack作用及结构
ValueStack存储了和请求处理相关的数据。包括session、request、action等。
ValueStack包含root区和context区
root区类型为CompoundRoot继承了ArrayList(栈结构),存储于请求对应的Action对象。
context区类型为Map,用于存储session、request、appliation、action、parameters等变量信息.
9.ValueStack与OGNL关系
OGNL:Object Graphic Navigation Language,对象图导航语言。
Struts2使用OGNL访问ValueStack数据,即对属性值设置和获取。
OGNL访问ValueStack数据的方法如下:
访问root区属性:表达式为"属性名"
访问context区变量:表达式为"#key",例如"#session.user"
10.Struts2提供了标签+OGNL表达式,用于访问ValueStack数据
页:
[1]