为爱奔跑


无论在家出家。必须上敬下和。忍人所不能忍。行人所不能行。代人之劳。成人之美。静坐长思己过。闲谈不论人非。行住坐卧。穿衣吃饭。从幕至朝。一名佛号。不令间断。或小声念。或默念。除念佛外。不起别念。若或妄念一起。当下就要教他消灭。当生惭愧心及忏悔心。从有修持。总觉我工夫很浅。不自矜夸。只管自家。不管人家。只看好样子。不看坏样子。看一切人都是菩萨。唯我一人是凡夫!

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:\Windows\System32\drivers\etc\hosts中来配置)、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

 

posted on 2016-01-18 15:51  RunforLove  阅读(9448)  评论(0编辑  收藏  举报