• 基于MVC的应用框架之Struts前奏


    1.JSP&Servlet中的MVC

      MVC的关键是,业务逻辑要与表示分离。通过把业务逻辑放在一个“模型”中,这样业务逻辑本身就能作为一个可重用的JAVA类存在。

      在JSP&Servlet中,servlet充当cotroller的角色,它的工作流程如下:

    • 获取请求数据封装;
    • 调用服务方法;
    • 跳转(转发/重定向);

    2.通用的ActionServlet

      在JSP&Servlet中,用户的每个不同请求都需要一个servlet控制器处理,并且进行servlet的配置。由于servlet的工作流程的相似性,为了避免创建多个servlet,可以做一个通用的servlet(ActionServlet),它的工作流程如下:

    • 根据请求的URL,得到业务处理Action类方法;
    • 调用Action类中的方法,获得返回标记;
    • 根据返回标记得到转发方法以及转发页面;
    • 转发;

      原本需要针对每个请求创建多个servlet,现在只需要对应每个请求创建一个Action类,只用一个servlet就可以完成控制器的功能。URL对应的Action类和Action类中的方法,返回值标记对应的转发方法和转发页面都要写在配置文件中。这个配置文件结构如下:

      ActionServlet的具体工作流程如下:

    • 获取请求URL,得到路径名;
    • 根据路径名,读取配置文件,得到业务处理的Action的全名及处理方法;
    • 利用反射机制创建对象,调用方法获取返回标记;
    • 根据返回标记,读取配置文件,得到对应的转发类型和转发页面;
    • 转发;

    3.读取配置文件

      由于需要多次查询配置文件(每个请求),所以配置文件最好只读一次,可以在ActionServlet的init()方法中读取配置文件。因为servlet的init()只在servlet初始化时执行一次,而且是单例的。

      用JAVA类封装struts.XML

    • action节点--->ActionMapping(name,className,method,Map(String,Result) results属性)
    • result节点--->Result(name,type,page属性)
    • 所有action-->ActionMappingManager(Map(String,ActionMapping) allActions属性)

      ActionMappingManager类在构造函数中读取struts.XML文件,将其封装在一个Map(String,ActionMapping) allActions对象中,并提供一个返回ActionMapping的getActionMapping(String actionName)方法,使ActionServlet可以通过请求URL得到响应的ActionMapping对象。ActionServlet在init()方法中初始化ActionMappingManager对象,从而保证只读取struts.XML一次。

    4.struts开发步骤

      有了通用的ActionServlet,struts开发只需要两步:

    写Action类;

    配置Action;

  • 相关阅读:
    Linux 学习 step by step (1)
    ubuntu server nginx 安装与配置
    ubuntu server samba服务器配置
    iOS app集成支付宝支付流程及后台php订单签名处理
    mac 连接windows 共享内容
    linux 文件查找,which,whereis,locate,find
    ubuntu server vsftpd 虚拟用户及目录
    ubuntu server 安装 mantis bug tracker 中文配置
    ubuntu server vsftpd 匿名用户上传下载及目录设置
    linux 用户管理,用户权限管理,用户组管理
  • 原文地址:https://www.cnblogs.com/juaner767/p/5520341.html
Copyright © 2020-2023  润新知