摘要:
- Struts2的框架的概述
- 什么是Struts2
- Struts2是一个基于MVC设计模式的web层的框架。
- 常见的web层框架
- Struts2
- Struts1
- SpringMVC
- Webwork
- Web层框架
- 基于前端控制器模型
- 什么是Struts2
- Struts2的入门程序
- 下载Struts2的开发包
- 解压Struts2开发环境
- 创建web项目,引入jar包
- struts/apps/struts-blank.war/WEB-INF/lib/*.jar
- 编写JSP页面
- 编写Action类
- 配置Action类
- 配置核心过滤器
- Struts2的执行流程
- 请求à核心过滤器(StrutsPrepareAndExecuteFilter)à执行一组拦截器(完成部分的功能)àActionàResult.
- Struts2的常见配置
- 配置文件的加载顺序
- 后配置的配置文件中的常量的值会覆盖先配置的配置文件的常量的值。
- Action的配置
- package配置
- name :包名
- extends :继承
- namespace :名称空间,与action中name共同决定访问路径
- abstract :用于其他包的继承
- action的配置
- name :与namespace共同决定访问路径
- class :Action类的全路径
- method :执行Action中的某个方法,默认值execute。
- package配置
- constant配置(default.properties)
- 设置Struts2的常量
- include配置
- 分模块开发的使用
- 配置文件的加载顺序
- Struts2的Action的访问
- Action的编写
- Action是POJO类
- Action实现Action接口
- Action继承ActionSupport类
- Action的访问
- 通过method属性配置
- 通过通配符的方式配置
- 动态方法访问的方式
- Action的编写
1.3Struts2的概述
1.3.1Struts2的概述
1.3.1.1什么是Struts2
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
- Struts2是一个基于MVC设计模式的WEB层框架。
- Struts2的内核相对于Struts1来讲已经发生巨大变化。
1.3.1.2常见的web层框架
- Struts2
- Struts1
- Webwork
- SpringMVC
1.3.1.3Web层框架基于前端控制器模型设计
************************************************************************************************************************************************
1.4Struts2的入门
1.4.1Struts2的入门
1.4.1.1下载Struts2的开发环境
1.4.1.2解压Struts2开发包
- apps :Struts2提供的应用,war文件:web项目打成war包。直接放入到tomcat可以允许。
- docs :Struts2的开发文档和API
- lib :Strtus2框架的开发的jar包
- src :Struts2的源码
1.4.1.3创建web项目,引入jar包
- 引入jar包
- struts-blank项目下找jar包
1.4.1.4创建一个JSP页面
1.4.1.5编写Action的类
1.4.1.6对Action进行配置
- 在src下创建(提供)名称叫做struts.xml的配置文件
1.4.1.7在web.xml中配置前端控制器(核心过滤器)
1.4.1.8改写Action中的方法的返回值
1.4.1.9改写struts.xml
1.4.1.10编写success.jsp
************************************************************************************************************************************************
1.5Struts2的执行流程
1.5.1分析Struts2的执行流程
1.5.1.1Struts2的执行流程
当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能),执行目标Action,根据Action的返回值,进行页面跳转。
************************************************************************************************************************************************
1.6Struts2的常见配置
1.6.1XML的提示问题
1.6.1.1配置XML的提示
1.6.2Struts2的配置文件的加载顺序(了解)
1.6.2.1Struts2的配置文件加载顺序
- init_DefaultProperties() ----加载default.properties
- init_TraditionalXmlConfigurations(); ----加载struts-default.xml、struts-plugin.xml、struts.xml
- init_LegacyStrutsProperties(); ----加载struts.properties
- init_CustomConfigurationProviders(); ----加载配置提供类
- init_FilterInitParameters() ; // [6] ----加载web.xml中过滤器初始化参数
- init_AliasStandardObjects() ; // [7] ----加载Bean对象
1.6.2.2加载顺序
- default.properties
- struts-default.xml
- struts-plugin.xml
- struts.xml
- struts.properties
- web.xml
- 注意:后配置的常量的值会覆盖先配置的常量的值。
1.6.3Action的配置
1.6.3.1package相关配置
- package标签称为包,这个包与Java中的包的概念不一致。包为了更好管理action的配置。
- package标签的属性
- name :包的名称,只有在一个项目中不重名即可。
- extends :继承哪个包,通常值为struts-default。
- namespace :名称空间,与<action>标签中的name属性共同决定访问路径。
- 名称空间有三种写法:
- 带名称的名称空间 :namespace=”/aaa”
- 跟名称空间 :namespance=”/”
- 默认名称空间 :namespace=””
- 名称空间有三种写法:
- abstract :抽象的,用于其他包的继承。
1.6.3.2action相关配置
- action标签配置Action类。
- action标签的属性
- name :与namespace共同决定访问路径
- class :Action类的全路径
- method :执行Action中的哪个方法的方法名,默认值execute
- converter :用于设置类型转换器
1.6.4常量的配置
1.6.4.1Struts2的常量配置
在Struts2的框架中,提供了非常多的常量:(在default.properties)
在Struts2中修改一些常量的值:
- struts.i18n.encoding=UTF-8 ----Struts2中所有的post请求的中文乱码不用处理。
- struts.action.extension=action,, ----Struts2请求的默认的扩展名。默认扩展名是.action或者什么都不写。
- 修改常量的值,可以有三个位置进行修正
- struts.xml中进行修改
- struts.properties中进行修改
- web.xml中进行修改
1.6.5分模块开发的配置
1.6.5.1include的配置
*************************************************************************************************************************************************
1.7Action的访问
1.7.1Action的写法
1.7.1.1Action类是POJO的类
1.7.1.2Action类实现一个Action的接口
1.7.1.3Action类继承ActionSupport类
1.7.2Action的访问
1.7.2.1通过method设置
- 配置
- 编写访问路径
1.7.2.2通过通配符的方式进行配置(*****)
- 配置
- 编写访问路径
1.7.2.3动态方法访问
- 配置
- 开启动态方法访问
- 编写访问路径