一、struts2简介
1、Struts2是一个基于MVC设计模式的Web应用框架 只要是web层框架 一般就会遵守MVC设计模式 2、struts2与struts1的关系? 没关系 WebWork基于xwork 3、struts2是一个可插拔式框架(解耦) ---通过filter与javaweb结合的
二、struts2快速入门
1、导入jar
struts-2.3.24\apps\struts2-blank\WEB-INF\lib\*.jar
2、配置web.xml Struts2的核心filter
<!-- Struts2的核心filter -->
<filter> <filter-name>Struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>Struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>3、创建Action
public class QuickAction {
public String execute(){ System.out.println("QuickAction execute runnging.. ..."); return null; } }4、配置struts.xml
位置:src下
约束位置:struts2-core-2.3.24.jar/struts-2.3.dtd <struts> <package name="test" namespace="/" extends="struts-default"> <action name="quick" class="com.itheima.action.QuickAction"></action> </package> </struts>5、测试
http://localhost:8080/Struts2Day01/quick
三、struts2的配置文件
1、入口Filter ---StrutsPrepareAndExecuteFilter
Prepare:准备 对应init方法 Execute:执行 对应doFilter PS:filter与生命周期相关方法:init destroy doFilter 准备工作: --->StrutsPrepareAndExecuteFilter --->public void init(FilterConfig filterConfig) --->dispatcher = init.initDispatcher(config); --->dispatcher.init(); ---> init_DefaultProperties(); // [1] 加载org/apache/struts2/default.properties文件 init_TraditionalXmlConfigurations(); // [2] 加载struts-default.xml,struts-plugin.xml,struts.xml init_LegacyStrutsProperties(); // [3] 加载src下的struts.properties文件 init_FilterInitParameters() ; // [6] 加载Struts2的核心Filter分初始化参数 总结: 服务器启动--->创建Filter--->初始化方法init执行---->加载一些列的配置文件 default.properties struts2内置 struts-default.xml struts2内置 struts-plugin.xml struts2内置 struts.xml 自定义 struts.properties 自定义 Filter的init 自定义 注意:如果加载的内容有冲突的话,后加载的内容可以覆盖先加载的内容 2、 default.properties 配置struts2默认常量 struts.i18n.encoding=UTF-8 设置struts2的编码是UTF-8 post不用解决乱码 struts.multipart.maxSize=2097152 限制上传文件大小 2M struts.action.extension=action,, 访问Action时的扩展名 struts.devMode = false 设置开发模式 默认不开启开发模式 设置为true 修改struts2的内容后不需要重启服务器 3、struts-default.xml 常量 struts-default包 结果跳转类型 interceptors拦截器 4、struts-plugin.xml 5、struts.xml 位置:类加载路径下(src) 见struts.xml文件 6、struts.properties src自定义properties文件 该文件作用配置常量(等同于struts.xml中的constant) 7、Filter的init 只能配置常量 <filter> <filter-name>Struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>struts.action.extension</param-name> <param-value>action,,</param-value> </init-param> </filter>四、struts2的常用API
Action定义的三种方式:
1、POJO充当Action 2、Action类实现Action接口 Action接口提供5个常量 SUCCESS:成功 ERROR:报错 NONE:不进行视图跳转 相当于null INPUT:跳转到输入视图 LOGIN:跳转登录视图 3、Action类继承ActionSupport类 ActionSupport功能强大