• 初识struts2


    Struts2  框架:

    1、作用:封装了 jsp servlet ,按照 mvc 的开发模式 进行了封装。

    2、Mvc: model one model two (mvc) model view controller 控制层

    3、Struts1 struts2xwork webwork framework))

    这里面这个故事的版本貌似是这样的:显示 apache 开发了 struts1 然后 渐渐地另一拨人开发了xwork ,然后 不断地升级,越来越多的人发现这个好用,于是apache就把  这个 xwork连人带东西 都并购了。然后 改了个名字 叫做 struts1.

     

    4、搭建一个struts2环境:

    1)导入struts2 jar

    2)Web.xml  进行struts2 的核心控制 配置, 用来 告诉 tomcat 有一个mvc框架

    3)下一个 普通的 aciton类,里面必须有 execute 而且这个方法必须有一个 string的返回值

    4)Struts2的核心配置文件,:请求路径action之间的关系,返回字符串和jsp页面之间的关系

    5)这个配置文件就由 核心控制器 读取,并且使用。

    5、在struts2 请求的流程中,携带数据,在相应的过程中,也携带数据回来。

     

    总结:

    1、struts框架概述

    2、搭建环境(工作机制)重点

    3、这样的环境下 数据的传递:属性驱动 对象驱动

    4、作业:1struts2登录  新增 修改 展现  删除

    定义 action的方式 ,在 action中访问 servlet api ,在 action中 如果有多个方法的话,可以进行方法调用配置

    1、导入jar包。

     

    2

     

    <!-- 配置struts2 核心控制器 -->
    
      <filter>
    
       <filter-name>struts2</filter-name>
    
       <!-- 这个 应该 是高级版本的。 -->
    
       <!-- org.apache.struts2.dispatcher.FilterDispatcher    好像是说这个也行,回头试试  -->
    
       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    
      </filter>
    
      <filter-mapping>
    
       <filter-name>struts2</filter-name>
    
       <url-pattern>/*</url-pattern>
    
      </filter-mapping>

     

    //这控制台上的输出有毒【囧】

    这个当然是行。不过人家不建议使用了

    这个 约束文件是要加上的。就是 那个 dtd文件。

    工作原理:

     

     

    Struts 工作原理:

     

    From letben 先自己写一遍再抄老师的。

     

    配置流程:

    1、导入对应的jar

    2、到web.xml 中进行配置,配置时候,是以过滤器的形式。

    3、写对应的action

    4、为相应的action配置 struts.xml 文件。

     

    工作原理:

    1、启动tomcat服务器。加载配置文件。发现在web.xml 中配置了对应的struts的核心控制器。并且让struts的核心控制器接管每一个当前工程目录结构下的路径。【如果没有配置,则struts不可以工作。】

     

    1、随着请求的到来,【通常都是jsp页面的请求,当然也有来自 action。】tomcat服务器会去对应当前这个 请求是否对应到核心控制器的范围。【显然我们配置过了,会走这个配置器的工作路径】,页面一般会直接响应。【因为本质上struts是对servlet的封装。当然也包括一部分的jsp的封装。使之应用起来更加方便。】1)当请求的路径对应到struts.xml里面对应的package 里面namespace下的 action下的name 这样一个路径的时候,action对应的class的对象将被创建。2)随后执行里面的execute方法。然后返回一个string类型的结果。如果该结果对应到了action里面resultname,那么就会跳转到对应标签体那个里面的路径。如果是一个页面,那么就反馈新的这个页面给客户端。否则的话就继续到新的action里执行对应的方法。

     

     

     

    来自老师:

    1、当向tomcat发送请求的时候【通常都是jsp】。Tomcat接收到这个请求,并把这个请求给核心控制器

    2、核心控制器拿到这个请求路径。通过过滤器,判定一次这个上面是否以.action结尾。如果有就把.action 去掉。

    3、核心控制器就用这个掐头去尾的路径到struts.xml里面的action配置中做对应,匹配到之后,创建路径对应的action的对象

    4、调用action中的execute()方法

    5、调用该方法前,要经过一系列的过滤器,【做很多的通用功能,比如转码,参数拦截,checkbox拦截 等等。】

    6、通过方法名进行对应,进入指定的方法,并执行相应的函数。执行这个函数时,当前action里面的各个属性已经根据反射得到了从页面或者 对应action的值。

    7、在execute方法中,可以使用封装的model做数据的处理

    8、根据处理结果作出相应,这个响应实质上是一个string类型的标识

    9、经过拦截器把action中所有的属性,都存储到Request的作用域中

    10、把标识给控制器。

    11、核心控制器通过这个标识到struts.xml中找到一个 跟action里面resultname对应的结果,并执行这个结果。如果是.jsp就到对应页面,如果action,就到对应的action中继续执行。继续对应,直到反馈一个界面给客户端。

     

    李飞和这个描述,差一个 参数拦截器。差一个method的对应

     

    定义action的方式:

    1、就是一个普通类,必须要有一个String返回值类型的 execute

    2、必须实现一个 action的接口。在这个接口中,有五个常量【分别是 successerrornonelogininput】,和一个 execute方法

    3、必须集成一个 Actionsupport类。它实现【还是继承?】了actionvalidateI18n 等 一共5个大类。还有一个 序列化,还有一个 忘记了

    【方法3最多见,毕竟是继承,方法 提供的全面】

     

    在 action中访问 servlet api:也提供了3种方式

    1、ActionContext 直接通过该类 进行访问  因为是 map的集合形式,所以应用也不是很多。但是这种封装的确是还不错。

    2、Implements ServletRequestAware ServletResponseAware 实现这两个接口进行访问,但是弊端在于这个方法的冗余太大。本身我们这个 action就有对应的 接受信息和反馈,现在又多了这两个,的接口,所以 实现起来很是冗余。不过确实有这样的方法。

    3、ServletActionContext,这就体现了这个 ActionSupport 的优势了。这个里面封装了这个ServletActionContext这个对象。

     

    如果在action中有多个 方法,可以通过 方法调用配置  利用 属性:method来对应

    分别采用符号 ! * {}

    一共三种

     

     

  • 相关阅读:
    用于图片处理的10个超级jQuery插件
    [VS2010].NET4.0环境下使用.NET2.0程序集,出现“混合模式程序集异常”
    对企业虚拟化应用的一些感受[原创]
    留学生不回国:中国物价超美国 没车没房没尊严!
    Research Assembly Setting!
    [转] 微软的软件测试方法(附读后感)
    应用 ZedGraph
    [转] LOGIGEAR SECURITY POLICIES
    一道程序运行结果题
    VS05 与 VS08并存时编译出现 The binding handle is invalid.
  • 原文地址:https://www.cnblogs.com/letben/p/5185919.html
Copyright © 2020-2023  润新知