Struts2学习
Struts2学习
一、struts是什么?
1、Struts是流行和成熟的基于MVC设计模式的Web应用程序框架。
二、MVC模式
1、 jsp+javabean=model1 jsp+servlet+javabean=model2
2、MVC是模型视图控制器,一种软件的设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
三、Struts2核心文件
web.xml StrutsPrepareAndExecuteFilter
Struts.xml 核心配置文件,主要负责应用中Action映射、该Action中包含的result定义等。
主要包含的内容:
1、全局属性
2、用户请求和响应Action之间的对应关系
3、Action可能用到的参数和返回的结果
4、各种拦截器的配置
Struts.properties 全局属性文件,自动加载。(包含很多的key-value对,该文件可配置在struts.xml文件中,使用constant元素)
四、Struts2用法
1、访问ServletAPI 5、默认Action
2、Action搜索顺序 6、Struts2后缀
3、动态方法调用 7、接收参数
4、指定多个配置文件 8、处理结果类型
五、访问ServletAPI
struts2中Action的execute方法
六、Action搜索顺序
七、接收参数
使用Action的属性接收参数
使用DomainModel接收参数
使用ModelDriven接收参数 必需implement ModelDriver<Object>
八、处理结果类型
用户请求 –> Struts框架 –> 控制器 — > Struts框架 –> 视图资源
SUCCESS 正确执行,返回相应的视图
NONE 执行成功,不反回任何视图
ERROR 执行失败,错误视图
LOGIN 没有登录成功,将返回登录视图
INPUT 表单验证
八 处理结果类型
处理结果是通过Struts.xml使用<result/>来配置。
根据位置的不同,分为两种:局部结果 将<result/>作为<action/> 元素的子元素配置。 全局结果 将<result/>作为<global-result/> 元素的子元素配置。
什么是Struts2
- Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型
由传统Struts1和WebWork两个经典框架发展而来 - Strust2 核心功能
(1)允许POJO(Plain Old Java Objects)对象 作为Action
(2)Action的execute 方法不再与Servlet API耦合,更易测试
(3)支持更多视图技术(JSP、FreeMarker、Velocity)
(4)基于Spring AOP思想的拦截器机制,更易扩展
(5)更强大、更易用输入校验功能
Struts2工作原理
(1) 客户端(Client)向Action发用一个请求(Request)
(2) Container通过web.xml映射请求,并获得控制器(Controller)的名字
(3) 容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter
(4) 控制器(Controller)通过ActionMapper获得Action的信息
(5) 控制器(Controller)调用ActionProxy
(6) ActionProxy读取struts.xml文件获取action和interceptor stack的信息。
(7) ActionProxy把request请求传递给ActionInvocation
(8) ActionInvocation依次调用action和interceptor
(9) 根据action的配置信息,产生result
(10) Result信息返回给ActionInvocation
(11) 产生一个HttpServletResponse响应
(12) 产生的响应行为发送给客服端