前言

标准MVC开源框架有很多(Struts、SpringMVC、Webx),对于生活在开源世界里面的码农来说SpringMVC、Struts是接触比较多,也是最熟悉的框架。

知己知彼

以配置SpringMVC为例,我们常常关注的点主要有以下几个方面:

1.web.xml文件里面请求分配器的配置(DispatcherServlet)。如下图:

拦截以do结尾的HTTP请求。

2.视图控制器(ViewResolver),velocity、freemarker、jsp等,以jsp为例。如下图:

配置了所有视图都到/WEB-INF/view里面去找。

3.拦截器(Interceptor)。如下图:

4.适配器(Handleradapter)。如下图:

配置url请求和处理函数间的mapping关系。

5.请求路径映射(HandlerMapping)。如下图:

通过HandlerAdapter来实际调用处理函数。

三两下配置就能够起工程成功访问了。

注:为什么以SpringMVC为例,这里主要有两个方面的原因

  • SpringMVC与后面我们要说到的Webx一样都是基于Spring容器。
  • SpringMVC比较简单

Webx框架

主页:http://openwebx.org/

框架说明书:http://openwebx.org/docs/Webx3_Guide_Book.html

框架搭建

执行环境:windows、maven

执行步骤:

1.新建一个目录,例如:D:\workspace。注意在盘符目录下是无法执行成功的。

2.执行如下命令:

Java代码  
  1. mvn archetype:generate -DgroupId=com.alibaba.webx -DartifactId=mywebx -Dversion=1.0-SNAPSHOT -Dpackage=com.alibaba.webx.mywebx -DarchetypeArtifactId=archetype-webx-quickstart -DarchetypeGroupId=com.alibaba.citrus.sample -DarchetypeVersion=1.0 -DinteractiveMode=false

命令执行完后,你会看见一个新目录:mywebx。这个项目其实是Maven从webx在中央库的原型生成的一个骨架,原型是archetype-webx-quickstart。

框架结构

Webx解决了单工程中包含不同架构配置,例如:根据业务需要在工程中区分同一会员用户不同权限、业务功能、页面展示时,可以通过业务角度切分工程并配置webx-account.xml、webx-gateway.xml等。方便业务并行开发。

(1)业务功能模块具体实现;

(2)业务功能模块的页面展示;

(3)针对业务功能模块后台简单校验;

(4)针对该业务功能的总配置;

WEB-INF文件夹下各个配置文件说明

  • logback.xml:日志配置;
  • web.xml:WEB工程初始化配置信息;
  • webx.xml:webx通用配置,webx容器初始化的Bean能够让所有子业务容器依赖。
  • webx-app1.xml:webx子业务配置,子业务配置能够创建spring容器,但子业务容器之间是不能互相注入的。

具体内容可以查看框架说明书《3.1. Webx的初始化》

WEB-INF/common文件夹下各个配置文件说明

  • pipeline.xml:拦截器配置文件,相当于SpringMVC(Struts)中的Interceptor。
  • pipeline-exception.xml:异常拦截配置文件。
  • resources.xml:资源文件加载配置,负责资源的重定向、重命名等。
  • uris.xml:外部地址url调用配置文件。
  • webx-component-and-root.xml:配置模板渲染引擎、映射规则等。
  • webx-component.xml:定义模板页面能够直接使用的工具类。

从这些配置可以看出,webx与我们接触的SpringMVC、Struts类似,只不过前者控制更加细粒度化,而后者我们更多的是使用开源的封装,所以配置量较少。

代码结构及编写

对于开发人员来说,最关心的莫过于上手去用这个框架。从工程接收请求到服务器响应并返回信息这整个过程,webx有自己的规则,与我们所接触的开源框架有所区别。如下图:

根据Http请求中所带参数中是否有action,Webx在代码层执行的内容也有所区别。

不带action参数请求

webx执行步骤如下:

步骤一、若控制层screen中存在Login.java代码,则执行Login.java代码。

步骤二、执行模板层layout中login.vm(若layout中没有对应名字的布局模板,则会调用默认模板default.vm)。

步骤三、执行模板层screen中的login.vm。

带action参数请求

webx执行步骤如下:

步骤一、执行控制层action中LoginController.java代码,指定类必须存在,否则会出现404异常。

步骤二、若控制层screen中存在Login.java代码,则执行Login.java代码。

步骤三、执行模板层layout中login.vm(若layout中没有对应名字的布局模板,则会调用默认模板default.vm)。

步骤四、执行模板层screen中的login.vm。

控制层action、screen层编写

Webx规定了action、screen层的默认入口函数为execute,即当类名与路径能够匹配的时候(路径与类名可以以驼峰命名方式,也可以中间以下划线“_”来连接,只有首字母能够忽略大小写),webx会执行类名下execute()方法。示例:

工程中常用的方法

控制层action:处理用户操作动作,比如登录、提交数据等。

控制层screen:处理页面展示所需内容。

在老版本的webx中(version小于webx3.0.9)screen层一个Java类只能处理一个页面。而action层可以处理多个不同业务动作。

action层代码有所变化,具体示例如下:

(1)提交时必须指明访问的具体方法,且需要有“event_submit_”前缀。

(2)指定具体的action时,需要注意包路径。

拦截器

Webx中针对拦截器的配置主要集中在pipeline.xml中。在日常业务开发中免不了要进行登录、权限等验证,而这部分业务作为拦截器再适合不过了。详细配置方式可以查看框架说明书《6.3.3. Pipeline的使用》。

WebX框架使用说明相关推荐

  1. Jackson 框架使用说明,轻易转换JSON【转】

    Jackson 框架 使用说明 Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在线博文: ...

  2. Webx框架:Spring Schema 和 Spring Ext

    webx诞生的原因是当时市面上没有好用的web框架.如今的Web框架有非常多.然后它们背后的思想都是相似的,并且越来越趋同. Spring Schema 在传统的spring中,配置bean时须要手动 ...

  3. .net的轻量级ORM -- PetaPoco/NPOCO框架使用说明

    .net的轻量级ORM -- PetaPoco/NPOCO框架使用说明 (具体参看:http://www.toptensoftware.com/petapoco/) 从11年就开始尝试使用轻量级ORM ...

  4. WebX框架的页面授权

    WebX框架的页面授权 什么是页面授权,简单来说就是对于一个Web应用程序里,哪些页面可以被哪些人在什么情况下访问进行限制.举个简单的例子,有些页面只有用户登录以后才能访问,而另外一些页面无论是否用户 ...

  5. webx 框架入门一

    来阿里实习一个多月了,被拉着直接上新项目.由于新项目要使用webx,webx框架是淘宝的框架,比较厚重又复杂,但是性能毋庸置疑(毕竟每年双十一都挺过来了).由于webx文档较少,基本都是阿里内部使用. ...

  6. Webx框架:Pipeline基本介绍

    Pipeline. 它是管道的含义.一个管道阀门可以安装非常多.有许多可能的分支.它是用来控制页处理.它需要在被定义pipeline.xml文件.该文件是为每个阀的标签.该文件可以放一些简单的控制语句 ...

  7. spring-retry框架使用说明

    spring-retry技术是spring框架中的调用重试技术实现,通过retry技术,可以对当前调用失败的请求重新发起重试机制,重试成功即返回,若继续失败,是否再次重试依代码配置决定. 示例工程 示 ...

  8. webx mysql_idea使用Maven启动maven项目、 webx框架项目

    一.打开 二.点击+号选择maven 三. (1).Working directory : 选择项目路径 (2).Command line: clean jetty:run-war -Djetty.p ...

  9. Spring 框架的设计理念与设计模式分析

    Spring 的骨骼架构 Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图: 图 1 .Spring 框架的总体架构图 从上图中可以看出 Spring ...

  10. 企业级 php框架,kfzphp: 致力于为企业和个人创造出大道至简的企业级PHP开发框架...

    KfzPHP 框架使用说明 http://www.kfzphp.com 致力于为企业和个人创造出大道至简的企业级PHP开发框架 一.平台需求 1.Windows 平台: IIS/Apache/Ngin ...

最新文章

  1. 在windows上解压linux文件夹,Win10如何使用命令行来解压缩文件?
  2. 复习(一)—— Shell基本编程
  3. AB1601spi传输慢的问题
  4. 设计师必备的html工具
  5. 使用系统的CoreLocation定位
  6. (转)shiro权限框架详解02-权限理论介绍
  7. CF962E Byteland, Berland and Disputed Cities
  8. pythonexecquery_python 进程信息
  9. python中线程里面多线程_Python中的线程和多线程是什么
  10. 转-从早到晚被工作追着跑? 10招提高你的工作效率
  11. APIcloud启动页
  12. i9507 android8.1,三星I9507V官方原版固件rom系统刷机包下载
  13. typora下载百度网盘
  14. Steam游戏上线初期的总结与思考
  15. win7蓝屏0x0000003b解决教程
  16. 两个坚持是什么_坚持跑步八年,90后大学生告诉你,坚持锻炼的意义
  17. C语言编程 - 推箱子小游戏源码分享 (含过关)
  18. 证书有效性验证、根证书
  19. matlab蚁群算法解决vrp过程,蚁群算法MATLAB解VRP问题
  20. Windows 无线上外网并通过共享让其它电脑用有线连接后也能上外网

热门文章

  1. Matlab2016及以上版本设置VS编译器
  2. linux+ssh+备份固件,【原创首发】斐讯K2T官方固件开telnet、ssh及备份说明
  3. win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
  4. 一起话单业务量下降问题的排查过程
  5. linux下实现getch()函数的功能,linux下有没有和windows下的getch函数功能基本一样的函数?...
  6. ERP操作手册要不要做?
  7. 软考(计算机软件水平考试)程序员介绍
  8. 计算机教师辞职,(多篇)教师辞职报告汇总八篇
  9. 计算机组成原理与系统结构裘雪红课后答案,计算机组成原理与系统结构课后作业答案(包健_冯建文章复嘉版).doc...
  10. 数组操作 from《FORTRAN95 程序设计》