[Struts2]4-struts2开发流程

先来简单说说MVC架构设计,在MVC架构中,Servlet作为前端中枢控制器(Controller),负责接收客户端发送过来的请求,在Servlet中只包含控制逻辑和简单的前端处理。Struts2就起了这样一个作用,为了最大程度的将Model、View和Controller这三部分进行解耦,从而提高应用的可扩展性及可维护性,struts2在这个当中占据着关键的Controller的位置,它就好比整个应用的指挥官,井井有条的打理着整个应用的运行。

对于基于struts2开发Java Web应用,我们就必须知道Struts2的工作流程,运行轨迹;对于此,先看一副图:

  1. 用户通过浏览器访问Java Web应用
  2. 用户的请求到达服务器以后,被配置在web.xml中的Struts2的核心Filter所拦截:
    <filter>
        <filter-name>action2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>action2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

由于Web应用都是基于请求—响应架构的应用,所以不管哪个MVC WEB框架,都需要在web.xml中配置该框架的核心Servlet或Filter,这样才可以让该框架介入Web应用中。

  1. 定义处理用户请求的Action类;这一步是非常重要的,这里定义的Action类就是MVC中的“C”,就是所谓的控制器,该控制器负责调用Model里的方法来处理请求,对于一些非常简单的请求可以在Action中直接处理。
    Struts2根据对应的请求,在struts.xml中找到对应的Action处理类:
<action name="loginAction" class="cc.xxxxx.service.Login">
           <result name="ok">/index.jsp</result>
          <result name="err">/login.jsp</result>
</action>
  1. Action根据业务返回结果,返回对应的逻辑视图名,例如下列代码中的return ok和return err:
    public String execute() throws Exception {
        if ("user1".equals(user.getName()) && "pwd1".equals(user.getPwd())){
            return "ok";
        }
        return "err";
    }
  1. Struts2根据Action返回的逻辑视图名,在配置文件中对应物理视图资源,例如:
<action name="loginAction" class="cc.xxxxx.service.Login">
        <result name="ok">/index.jsp</result>
       <result name="err">/login.jsp</result>
</action>

当Action控制器返回ok字符串时,则进入/index.jsp页面;当返回err字符串时,则进入/login.jsp页面;就是通过这种方法,将View和Controller进行解耦。

  1. 服务器将对应的页面响应给用户,从而完成一次请求—响应。这就是关于Struts2的整体开发流程。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 概述 什么是Struts2的框架Struts2是Struts1的下一代产品,是在 struts1和WebWork的...
    inke阅读 2,269评论 0 50
  • 一. Java基础部分.................................................
    wy_sure阅读 3,832评论 0 11
  • 1、struts2工作流程 Struts 2框架本身大致可以分为3个部分: 核心控制器FilterDispatch...
    重山杨阅读 1,540评论 0 38
  • 如果不幸我们没有走到最后,但是我们都曾付出真心,以不同的方式。我们只是当时理解不了彼此,谁也不欠谁,爱情无需缅怀...
    幸福的阶梯阅读 293评论 0 0