一、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功能强大

Struts2知识点小结(一)的更多相关文章

  1. Struts2知识点小结汇总

    Struts2部分 1. JavaEE软件三层结构和MVC的区别? JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层).业务逻辑层.数据持久层.[其中WEB层会使用前 ...

  2. Struts2知识点小结(四)--拦截器与注解开发

    一.Struts2的拦截器(interceptor) 作用:当请求进入struts2框架后(进入之前可以用filter进行拦截),想对请求进行拦截操作(功能增强.权限控制),需要拦截器组件 1.str ...

  3. Struts2知识点小结(三)--值栈与ognl表达式

    1.问题一 : 什么是值栈 ValueStack        回顾web阶段 数据交互问题?        客户端提交数据  到  服务器端    request接受数据+BeanUtils实体封装 ...

  4. Struts2知识点小结(二)

    一.结果视图的配置    <result name="success">/success.jsp</result>        1.局部结果视图      ...

  5. C++重要知识点小结---3

    C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:http://www.cnblogs.co ...

  6. C++重要知识点小结---2

    C++重要知识点小结--1 :http://www.cnblogs.com/heyonggang/p/3246631.html 1.C++允许程序员声明一个不能有实例对象的类,这样的类惟一的用途是被继 ...

  7. React及Nextjs相关知识点小结

    React及Nextjs知识点小结 函数式组件和类组件区别是什么 1.函数式组件是用于创建无状态的组件,组件不会被实例化,无法访问this中的对象,无法访问生命周期方法,是无副作用的,相比于类组件函数 ...

  8. 【SpringBoot MQ 系列】RabbitMq 核心知识点小结

    [MQ 系列]RabbitMq 核心知识点小结 以下内容,部分取材于官方教程,部分来源网络博主的分享,如有兴趣了解更多详细的知识点,可以在本文最后的文章列表中获取原地址 RabbitMQ 是一个基于 ...

  9. SpringBoot 系列教程之事务隔离级别知识点小结

    SpringBoot 系列教程之事务隔离级别知识点小结 上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上 ...

随机推荐

  1. Spring Boot—07应用application.properties中的配置

    方法1 @Value("${test.msg}") private String msg; 方法2 @Autowired private Environment env; Stri ...

  2. 将ArcGIS Server的JSON转化为SHP文件

    # -*- coding: utf-8 -*- # -------------------------------------------------------------------------- ...

  3. Android上实现视频录制

    首先,我们肯定要用到摄像头,因此需要在Manifest文件中声明使用权限: <uses-permission android:name="android.permission.CAME ...

  4. oracle 用户创建、修改、删除

    创建用户: create user test identified by test; 修改密码: 1.alter user test identified by mima; 2.passw[ord]  ...

  5. Sql Server tempdb原理-启动过程解析实践

    我们知道在SqlServer实例启动过程中数据库会进行还原(Redo,Undo)然后打开提供服务,但我们知道tempdb是不提供重做机制的(Redo)那tempdb是如何还原的呢?如果tempdb损坏 ...

  6. 单独配置 Ehcache

    package com.shy.ehcache; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net ...

  7. Script:when transaction will finish rollback

    ------------------------------------------------------------------------------- -- -- Script: rollin ...

  8. Linux chkconfig命令详解

    chkconfig命令检查.设置系统的各种服务.这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务.谨记chkconfig不是 ...

  9. HTTP 头 Connection:close 作用

    有的网站会在服务器运行一段时间后down掉,有很多原因可能造成这种现象:比如tomcat堆和非堆内存设置不足,程序没能释放内存空间造成内存溢出,或者某些进程一直运行没能释放,造成cup资源大量消耗. ...

  10. 0x01 现阶段目标

    现阶段目标: 1.完成前端知识基础的学习. 具体如下: 在目前学习的基础上(html,css,JavaScript+BOM基础已经大致了解).针对DOM进行学习,个人在http://how2j.cn? ...