一、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. java获取本月第一天和最后一天

    public class CalendarTest { public static void main(String[] args) { // 获取当前年份.月份.日期 Calendar cale = ...

  2. DNS隧道实战&&cobaltstrike利用dns隧道

    前言 使用 dns 隧道进行 tcp 通信. 正文 首先配置域名 配置一个 A 记录指向我们的 vps, 然后配置几个 ns 记录,指向刚刚设置的 A 记录 然后在服务端安装 wget https:/ ...

  3. 【Python】Java程序员学习Python(八)— 基本类型的基本运算

    这一篇待写,毕竟基本运算都是通用的.

  4. LOCAL_LISTENER 引起的错误

    1. 如果你的LOCAL_LISTENER 指定的是一个别名 比如L2 *.local_listener='L2' 启动实例的时候 会先到 tnsnames.ora 文件里取查找定义名为L2的TNS服 ...

  5. BASE_DIR 拼接文件路径

    # C:/Disk_D/pycharm_stu/macboy/blog/views/tt.py 当前文件绝对路径 BASE_DIR = os.path.dirname(os.path.dirname( ...

  6. 1.创建maven 项目 动态web工程完整示例

    注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,说白了就是新建项目的时候已经可以找到maven了 没有的话需要安装maven 一.创建项目 1.新建maven项目,如果不在上 ...

  7. Ubuntu-18.04 下使用Nginx搭建高可用,高并发的asp.net core集群

    一.实现前的准备 以下是实现简单负载均衡的思路,图中的服务器均为虚拟机 三台Linux服务器,一台用作Nginx负载均衡(192.168.254.139),另外两台用作Asp.Net Core应用程序 ...

  8. Oracle EBS AR 客户取数SQL

    SELECT acct.cust_account_id, acct.party_id, acct.account_number, party.party_name, lkp1.meaning part ...

  9. springMVC入门-03

    接着上一讲介绍springMVC针对rest风格的支持. 查询数据 使用前:/user_show?id=120 使用后:/user/120 删除数据 使用前:/user_delete?id=123 使 ...

  10. 转:只能选择GridView中的一个CheckBox(单选CheckBox)

    方法1: protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e){CheckBox cbx = e.R ...