WebX框架使用说明
前言
标准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.执行如下命令:
- 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框架使用说明相关推荐
- Jackson 框架使用说明,轻易转换JSON【转】
Jackson 框架 使用说明 Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在线博文: ...
- Webx框架:Spring Schema 和 Spring Ext
webx诞生的原因是当时市面上没有好用的web框架.如今的Web框架有非常多.然后它们背后的思想都是相似的,并且越来越趋同. Spring Schema 在传统的spring中,配置bean时须要手动 ...
- .net的轻量级ORM -- PetaPoco/NPOCO框架使用说明
.net的轻量级ORM -- PetaPoco/NPOCO框架使用说明 (具体参看:http://www.toptensoftware.com/petapoco/) 从11年就开始尝试使用轻量级ORM ...
- WebX框架的页面授权
WebX框架的页面授权 什么是页面授权,简单来说就是对于一个Web应用程序里,哪些页面可以被哪些人在什么情况下访问进行限制.举个简单的例子,有些页面只有用户登录以后才能访问,而另外一些页面无论是否用户 ...
- webx 框架入门一
来阿里实习一个多月了,被拉着直接上新项目.由于新项目要使用webx,webx框架是淘宝的框架,比较厚重又复杂,但是性能毋庸置疑(毕竟每年双十一都挺过来了).由于webx文档较少,基本都是阿里内部使用. ...
- Webx框架:Pipeline基本介绍
Pipeline. 它是管道的含义.一个管道阀门可以安装非常多.有许多可能的分支.它是用来控制页处理.它需要在被定义pipeline.xml文件.该文件是为每个阀的标签.该文件可以放一些简单的控制语句 ...
- spring-retry框架使用说明
spring-retry技术是spring框架中的调用重试技术实现,通过retry技术,可以对当前调用失败的请求重新发起重试机制,重试成功即返回,若继续失败,是否再次重试依代码配置决定. 示例工程 示 ...
- webx mysql_idea使用Maven启动maven项目、 webx框架项目
一.打开 二.点击+号选择maven 三. (1).Working directory : 选择项目路径 (2).Command line: clean jetty:run-war -Djetty.p ...
- Spring 框架的设计理念与设计模式分析
Spring 的骨骼架构 Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图: 图 1 .Spring 框架的总体架构图 从上图中可以看出 Spring ...
- 企业级 php框架,kfzphp: 致力于为企业和个人创造出大道至简的企业级PHP开发框架...
KfzPHP 框架使用说明 http://www.kfzphp.com 致力于为企业和个人创造出大道至简的企业级PHP开发框架 一.平台需求 1.Windows 平台: IIS/Apache/Ngin ...
最新文章
- 在windows上解压linux文件夹,Win10如何使用命令行来解压缩文件?
- 复习(一)—— Shell基本编程
- AB1601spi传输慢的问题
- 设计师必备的html工具
- 使用系统的CoreLocation定位
- (转)shiro权限框架详解02-权限理论介绍
- CF962E Byteland, Berland and Disputed Cities
- pythonexecquery_python 进程信息
- python中线程里面多线程_Python中的线程和多线程是什么
- 转-从早到晚被工作追着跑? 10招提高你的工作效率
- APIcloud启动页
- i9507 android8.1,三星I9507V官方原版固件rom系统刷机包下载
- typora下载百度网盘
- Steam游戏上线初期的总结与思考
- win7蓝屏0x0000003b解决教程
- 两个坚持是什么_坚持跑步八年,90后大学生告诉你,坚持锻炼的意义
- C语言编程 - 推箱子小游戏源码分享 (含过关)
- 证书有效性验证、根证书
- matlab蚁群算法解决vrp过程,蚁群算法MATLAB解VRP问题
- Windows 无线上外网并通过共享让其它电脑用有线连接后也能上外网
热门文章
- Matlab2016及以上版本设置VS编译器
- linux+ssh+备份固件,【原创首发】斐讯K2T官方固件开telnet、ssh及备份说明
- win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
- 一起话单业务量下降问题的排查过程
- linux下实现getch()函数的功能,linux下有没有和windows下的getch函数功能基本一样的函数?...
- ERP操作手册要不要做?
- 软考(计算机软件水平考试)程序员介绍
- 计算机教师辞职,(多篇)教师辞职报告汇总八篇
- 计算机组成原理与系统结构裘雪红课后答案,计算机组成原理与系统结构课后作业答案(包健_冯建文章复嘉版).doc...
- 数组操作 from《FORTRAN95 程序设计》