zoukankan      html  css  js  c++  java
  • 阿里巴巴开源技术 WebX

    0. WebX项目目前已开源,

      项目开源地址:https://github.com/webx/citrus-sample.git

      项目参考文档:http://www.openwebx.org/docs/

    1. 为什么不使用SpringMVC,而是使用WebX?

      当初阿里巴巴建站的时候,并没有现在这么成熟的多种框架技术(springMVC等);其次,WebX这些年也已经经受住了诸如‘双十一’的大访问,高并发的考验;但我认为最为重要的一点还是为了安全。对于开源的代码,没有人能保证其安全性或对其进行严格的渗透测试。因此,漏洞可以通过「导入代码」的后门入侵到内部系统。造成了企业对这些漏洞一无所知,攻击者却对它们了如指掌的现状。[2014年注明的OpenSSL漏洞就是这种情况]。

    2. WebX简介

      WEBX就是把页面与Service层之间的一些Servlet等公共的东西抽象出来,提供相应的服务以提高开发效率,可以看出,webx和传统的servlet-action模式的HettpServlet为基础,对其中的公用的抽象整理后,得到一个轻量级的web开发框架。webx页面使用了velocity模板,WEB层使用的是WEBX框架里面的TemplateAction, TemplateScreen, AbstractModule, TemplateControl,解决了操作和页面的跳转。持久层使用ibatis,Bean容器使用的是Spring。

    Webx的层次

      如上图所示是WebX的层次结构,从内到外,springExt基于Spring,提供了扩展组件的能力;WebX Framework则基于Servlet API,提供基础服务。WebX Turbine基于WebX Framework,实现具体的网页功能。(turbine['tɜːbaɪn; -ɪn],涡轮机,涡轮)。

      一个好的框架,并不是实现了所有的功能,而是具有超强的扩展能力

    3. 项目结构简单介绍

      由于webx是基于准的JavaEE Web用范,因此它的目录结构是我们均熟悉的B/S构。

    4. WebX的请求执行流程

      1.对于URL:http://localhost:7001/petstore/user/account/edit.htm(htm是为了兼容过去的DOS命名格式存在的,在效果上没有区的,HTM 为DOS三字符文件扩展名时代而来;HTML为Windows时代支持多字符扩展名)

      我们知道http(协议)、localhost(Server name可以在C:WindowsSystem32driversetchosts中来配置)、7001(端口号)、petstore(context path)、user(conponent path)、account/edit.htm(servlet path)、account/edit.vm(target)。

      2.根据端口号,服务器把该请求交给petstore应用,再根据/account/edit.htm(Servlet Path路径)。在web.xml中把*.htm映射到Webx Controller Servlet,所以Webx Controller Servlet就接管了这个请求。

      3.Webx Controller Servlet激活pipeline,而用AnalyzeURLValve分析/edit.htm是什么意思。根据webx默认的映射,/edit.htm被映射成/ edit.vm。

      4.根据target查找screen模板:/screen/edit.vm,假如target的值:/xxx/yyy/edit.vm,那么,valve会:在/templates/screen目下,找到/xxx/yyy/edit.vm模板。然后依次查找screen类:xxx.yyy.Edit (如果找不到,下一个)xxx.yyy.Default (如果找不到,下一个)xxx.Default (如果找不到,下一个)Default (如果找不到,下一个)TemplateScreen (系统默screen,不可能找不到的)。

      5.screen类,渲染screen模板。如果存在layout布局,渲染layout,screen类,并渲染screen模板。根据target查找layout模板,渲染layout模板。

      6.渲染在layout模板中引用的两个control:head.vm:在head.car中查找/control/head.vm;bottom.vm :在bottom.car中查找/control/bottom.vm。

    5. WebX处理页面的基本流程

      http://www.cnblogs.com/goofy/articles/2115573.html

    6. WebX应用的启动流程

      http://www.cnblogs.com/logzhilong/p/3246476.html

      http://www.cnblogs.com/Vae1990Silence/p/4642919.html

      http://wutianyi.iteye.com/blog/1087887

    参考博客地址:

    [1] http://wenku.baidu.com/link?url=YYp1019ut60Mze1rKyjwtyoLzJwyBLZS97hHQk3eWHz1CGQBFgMt4qXOGfDUCUbcCeDcM18fO6iLLWD_voFpabLW2gEzvsd9G5JCQdH9uC3

    [2] http://www.openwebx.org/docs/logging.html

    [3] http://blog.csdn.net/free4294/article/details/38456003

  • 相关阅读:
    BZOJ 2653 middle
    BZOJ 3207 花神的嘲讽计划Ⅰ
    BZOJ 3689 异或之
    BZOJ 3037 创世纪
    BZOJ [1264] [ AHOI2006]基因匹配Match
    BZOJ 2186 [Sdoi2008]沙拉公主的困惑
    BZOJ 3362 Navigation Nightmare
    BZOJ 3209 花神的数论题
    BZOJ 1411 ZJOI2009 硬币游戏
    【HDU1573】X问题
  • 原文地址:https://www.cnblogs.com/RunForLove/p/5139511.html
Copyright © 2011-2022 走看看