zoukankan      html  css  js  c++  java
  • Struts2知识点小结(一)

    一、struts2简介  

      1、Struts2是一个基于MVC设计模式的Web应用框架        只要是web层框架 一般就会遵守MVC设计模式
        2、struts2与struts1的关系?  没关系   WebWork基于xwork
        3、struts2是一个可插拔式框架(解耦)   ---通过filter与javaweb结合的

    二、struts2快速入门 

       1、导入jar        

      struts-2.3.24appsstruts2-blankWEB-INFlib*.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功能强大

  • 相关阅读:
    一步一步学Silverlight 2系列(16):数据与通信之JSON
    一步一步学Silverlight 2系列(15):数据与通信之ASMX
    谈一谈做iOS播放器库开发所涉及的知识点
    回顾大学生活
    iOS 简化冗余代码
    修正DejalActivityView在iOS8之前系统上存在的Bug
    2015年,你要做什么(一)
    iOS学习笔记
    IOS SDK详解
    iOS开发进阶
  • 原文地址:https://www.cnblogs.com/itworkerlittlewrite/p/9442167.html
Copyright © 2011-2022 走看看