框架之struts2(一)

一.struts2位于三层架构中的表现层(struts2 MVC框架),是基于MVC设计模式的WEB层框架
    1.MVC框架
        *M:Model模型,封装数据,javabean
        *V:view视图,展示界面,jsp页面
        *C:controller控制器,控制程序流程,servlet
    2.Servlet与Filter
        *Servlet能做的事情,过滤器也能做到,并且过滤器比者Servlet还多了一个放行的功能,因此过滤器比着Servlet更强大,过滤器也同样适合做控制器
二.在web.xml中配置struts2的核心控制器(前端控制器)
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.strutsPreparedAndExcuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    2.struts2的核心控制器会默认拦截以.action为后缀的url,如果不写任何的后缀,默认情况下,也会进入核心控制器
    3.编写动作类和动作方法
        *动作方法:1.必须是public的     2.返回值必须是字符串     3.不能有参数
    4.开发struts2应用要做的三件事情就是:
            *写配置文件
            *写动作类和动作方法
            *写结果视图
三.struts2的配置文件
    1.加载时机:当应用被tomcat加载的时候,struts2的配置文件就已经被加载过了
    2.加载顺序:
        default.properties --> struts-default.xml --> struts-plugin.xml(这三个是jar包中的,不能修改) --> struts.xml  -->  struts.properties --> web.xml(后三个在我们的应用中,可以修改,按照加载顺序对相同配置进行覆盖)
        
        注:web.xml文件中内容在和应用相关时,是在服务器启动的时候被加载的,当和struts2配置相关时,是在最后一个被加载的

    3.struts2提供了两种配置方式,一种是key=value的方式,即使用.properties文件,另一种是.xml配置,,推荐使用.xml配置,他能描述层级关系
    4.struts2中的常量
        *常量名:struts.action.extension    说明:能够进入struts2框架内部的url地址的后缀名,多个值用逗号分开
        *常量名:struts.devMode  说明:是否是开发者模式
   5.在配置文件中常量的修改:
        <constant name="struts.action.extension" value="action"></constant>
四.struts2配置文件详解:
    1.package元素
        *作用:在struts2的配置文件中引入了面向对象的思想,使用了分包管理,易于管理动作类,便于模块化开发动作类
        *属性:
            *name:包的名称,必须写,并且必须是唯一的
            *extends:一般情况下需要继承"struts-default"包,但不是必须的,如果不继承的话,将无法使用struts2提供的核心功能
            *abstract:把包声明为抽象包,抽象包就是用来被继承的,只要是没有action的包,就可以定义为抽象包
            *namespace:名称空间:  名称空间+动作路径=访问路径
                动作类的搜索顺序:先找名称空间,再找动作名称
    2.action元素
        *作用:配置动作用的
        *属性:
            name:动作名称,需要和jsp页面上的url对应
            class:动作类全名,默认的动作类是com.opensymphony.xwork2.ActionSuppert
            method:动作类中的方法名称,默认是public String execute(){}
        *关于动作类的定义方式:
            方式一:动作类就是一个POJO,非常简单的javabean
            方式二:动作类实现Action接口,可以使用接口中的常量,使你的应用规范和统一
 

常量变量名

对应的值

说明

SUCCESS

success

动作方法执行一切OK

ERROR

error

动作方法执行时遇到了异常

INPUT

input

回显

LOGIN

login

一般转向登陆页面

NONE

none

不转向任何的视图


            方式三:动作类继承ActionSupport,推荐使用
        *通配符的使用(*)
            通配符用的是*来表示,{1}就是来表示通配符第一个出现的位置
    3.result元素:
        *作用:为动作指定结果视图
        *属性:
            name:逻辑视图的名称,对应着动作方法的返回值,默认值是success,
            type:结果类型,指的是用什么方式转到定义的页面,默认的是dispatcher
                *type属性的常用取值:
                    *dispatcher:使用请求转发,转向一个界面
                    *redirect:使用重定向,转向一个界面
                    *redirectAction:使用重定向,转向另一个动作
                    *stream:文件下载的结果类型
    4.局部视图与全局视图:
            局部视图只能当前动作使用,全局视图:所有动作都可以使用

五.struts2参数的封装
    1.参数的封装有两种:
        *静态封装:是把参数写在struts.xml文件中的.
        *动态封装
            *属性驱动:.动作类和模型在一起,也就是在动作类中提供属性和get/set方法  
            *模型驱动:动作类和模型分开,单独定义一个实体类保存数据
    2.封装参数是由拦截器为我们完成的
        *静态参数封装是staticParams的拦截器为我们做的
        *动态参数封装是params拦截器为我们做的
六.知识点
    1.分文件编写struts2的配置文件
        在配置文件中引入其他配置文件:<include  file="struts_customer.xml"></include>
    2.手动指定struts2配置文件的位置
   
   
  1. <!--配置Struts2的核心控制器-->
  2. <filter>
  3. <filter-name>struts2</filter-name>
  4. <filter-class>
  5. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  6. </filter-class>
  7. <init-param>
  8. <!--过滤器初始化参数名称必须叫:config-->
  9. <param-name>config</param-name>
  10. <!--指定配置文件位置,从类的根路径下的包名称开始写起
  11. 需要注意的是:如果手动指定了配置文件,必须写上
  12. struts-default.xml
  13. 这个可写可不写:strust-plugin.xml
  14. -->
  15. <param-value>
  16. struts-default.xml,strust-plugin.xml,struts/sturts.xml
  17. </param-value>
  18. </init-param>
  19. </filter>























 






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿人小郑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值