struts2——快速入门

1.struts框架准备工作

 1.导入包

    

  在这个下面的WEB-INF/lib里的全部的包

 2.书写Action类

public class HelloWord {
    public String hello() {
        System.out.println("Hello World");
        return "success";
    }
}

 3.书写src/strurs.xml的配置文件

<struts>
    <!-- package:分类
         namespace:命名空间
         extend:继承 -->
    <package name="hello" namespace="/test" extends="struts-default" >
    <!-- name:访问路径名,class:处理类的全类名 method:要这此类调用的方法 -->
        <action name="helloWorld" class="cn.test.deno.HelloWord" method="hello">
            <!-- 处理结果集,默认是转发 -->
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>

   4.配置struts2核心过滤器到web.xml

<!-- 配置struts核心过滤器 -->
  <filter>
      <filter-name>struts2</filter-name>
      <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>

   5.测试

   

2.struts流程图


 

  1.  首先客服端游览器会发送一个请求
  2. 接着程序会调用StrutsPrepareAndExecuteFilter,然后访问ActionMapper这个请求是否需要调用某个Action
  3. 如果ActionManager决定需要调用某个Action,StrutsPrepareAndExecuteFilter会把请求交给ActionProxy
  4. ActionProxy会通过配置管理器(Configuration Manager) 从配置文件(struts.xml)中读取框架信息,从而找到需要调用的Action类
  5. ActionProxy会创建一个ActionInvcation的实例
  6. ActionInvcation使用命名模式调用Action,在调用Action之前会先依次调用拦截器(intercepter1,intercepter2..)
  7. 一旦执行完Action,则返回结果字符串,ActionInvcation就会负责查找字符串对应的Result,然后执行这个Result。通常情况下Result会调用一下模板jsp
  8. 产生的Result信息返回给ActionInvcation,在此过程中拦截器会被再次执行(顺序与之前的相反)
  9. 最后产生一个HttpServletResponse的响应行为,通过StrutsPrepareAndExecuteFilter返回给客户端游览器

 

原文地址:https://www.cnblogs.com/FlyBlueSky/p/9163661.html