Struts2
2015-03-07 13:26
14 查看
Struts框架拥有两个主要的版本,分别是Struts 1.x 和Struts 2.x 版本,它们都是遵循MVC思想的开源框架。
注意:Struts 2 框架并不是核心控制器Struts 1 的升级版,而是一个全新的框架,在体系结构上与Struts 1 也存在着较大的差距。
它将Struts技术与WebWork技术完美地结合起来。
2、这个请求经过一系列的过滤器 Filter 来传送。【如果Struts2 与Site Mesh 插件以及其他框架进行了集成,则请求首先要经过可选的ActionContextCleanUp过滤器】
3、调用FilterDispatcher(核心控制器)【Struts 2框架的基础,包含了框架内部的控制流程和处理机制。】,它通过询问ActionMapper来确定该请求是否需要调用某个Action。如果需要调用某个Action,则FilterDispatcher就把请求转交给ActionProxy处理。
4、ActionProxy通过配置管理器 Configuration Manager 询问框架的配置文件struts.xml,从而找到需要调用的Action类。
5、ActionProxy 创建一个ActionInvocation的实例,该实例使用命名模式来调用。在Action执行的前后,ActionInvocation实例根据配置文件加载与Action相关的所有拦截器Interceptor。
6、一旦Action执行完毕,ActionInvocation实例根据struts.xml文件中的配置找到相对应的返回结果。【返回结果通常是一个Jsp或者FreeMarker的模版。】
7、最后,HttpServletResponse响应通过web.xml文件中配置的过滤器返回。
基本简要流程如下:
1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被FilterDispatcher接收。
3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
6、返回HTTP响应到客户端浏览器。
最简单的七个步骤:
1:客户端在浏览器中输入一个url地址。
2:这个url请求通过http协议发送给tomcat。
3:tomcat根据url找到对应项目里面的web.xml文件。
4:在web.xml里面会发现有struts2的配置。
5:然后会找到struts2对应的struts.xml配置文件。
6:根据url解析struts.xml配置文件就会找到对应的class。
7:调用完class返回一个String字符串,根据struts.xml返回到对应的jsp。
struts2标签分类:
1.表单UI标签
2.非表单UI标签
3.控制标签
4.数据标签
为什么使用struts2?
1.开源
2.mvc框架
3.纯pojo的Action
4.更好的标签特性
5.易测试
6.易扩展
struts.xml【struts-2.0.dtd】
Action类继承ActionSupport。
注意:Struts 2 框架并不是核心控制器Struts 1 的升级版,而是一个全新的框架,在体系结构上与Struts 1 也存在着较大的差距。
它将Struts技术与WebWork技术完美地结合起来。
一、Struts2 工作流程
1、用户发出一个 HttpServletRequest 请求。2、这个请求经过一系列的过滤器 Filter 来传送。【如果Struts2 与Site Mesh 插件以及其他框架进行了集成,则请求首先要经过可选的ActionContextCleanUp过滤器】
3、调用FilterDispatcher(核心控制器)【Struts 2框架的基础,包含了框架内部的控制流程和处理机制。】,它通过询问ActionMapper来确定该请求是否需要调用某个Action。如果需要调用某个Action,则FilterDispatcher就把请求转交给ActionProxy处理。
4、ActionProxy通过配置管理器 Configuration Manager 询问框架的配置文件struts.xml,从而找到需要调用的Action类。
5、ActionProxy 创建一个ActionInvocation的实例,该实例使用命名模式来调用。在Action执行的前后,ActionInvocation实例根据配置文件加载与Action相关的所有拦截器Interceptor。
6、一旦Action执行完毕,ActionInvocation实例根据struts.xml文件中的配置找到相对应的返回结果。【返回结果通常是一个Jsp或者FreeMarker的模版。】
7、最后,HttpServletResponse响应通过web.xml文件中配置的过滤器返回。
基本简要流程如下:
1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被FilterDispatcher接收。
3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
6、返回HTTP响应到客户端浏览器。
最简单的七个步骤:
1:客户端在浏览器中输入一个url地址。
2:这个url请求通过http协议发送给tomcat。
3:tomcat根据url找到对应项目里面的web.xml文件。
4:在web.xml里面会发现有struts2的配置。
5:然后会找到struts2对应的struts.xml配置文件。
6:根据url解析struts.xml配置文件就会找到对应的class。
7:调用完class返回一个String字符串,根据struts.xml返回到对应的jsp。
struts2标签分类:
1.表单UI标签
2.非表单UI标签
3.控制标签
4.数据标签
为什么使用struts2?
1.开源
2.mvc框架
3.纯pojo的Action
4.更好的标签特性
5.易测试
6.易扩展
二、配置
web.xml【struts2-core-2.2.1.jar】<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
struts.xml【struts-2.0.dtd】
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="utf-8" /> <package name="default" namespace="/" extends="struts-default"> <action name="userAction" class="action.UserAction"> <result name="success">/success.jsp</result> </action> </package> </struts>
Action类继承ActionSupport。
相关文章推荐
- 从整体到局部-----俯瞰Struts2整体流程(6)
- MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
- struts2的路径问题
- Struts2两个Map动态比较值是否相同
- struts2-I18n页面国际化及Action国际化
- struts2 iterator 迭代标签只显示前五条记录
- Struts2之异常处理
- struts2 拦截器和actioninvocation、PreResultListener
- struts2学习之---Convention插件与"约定"支持
- Struts2_HelloWorld2.rar
- jquery AutoComplete 插件与struts2集成
- Struts2 中动态切换国际化
- 自定义Struts2表单验证后的错误信息显示格式/样式
- 3.7.3: 配置处理结果---Struts2支持的结果类型
- struts2__01
- Struts2开发基础
- Struts2-Mysql数据库访问
- struts2学习之---配置struts2的异常处理
- 你能下载,他能下载吗?-----Struts2文件下载的权限控制(14)
- Struts2、Spring3、MyBatis3整合ExtJS,完成ColumnTree 【二】