前言
标准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/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及框架简介 ppt 格式
阿里开源框架webx的文档,想要学习webx或者维护webx的开发者可以下载
WEBX框架详解,更好的了解Taobao的开发过程,对于新手更容易上手。
基于Webx框架的Web应用架构的研究与设计,杨翔,闫丹凤,在互联网技术高速发展的今天,现在的Web应用有着比过去更好的用户体验、更高的稳定性,更强大的性能。市场对互联网产品越来越高的
阿里巴巴内部J2EE平台 Webx框架简介,现在是webx3.0,而且已经开源!
webx页面使用了velocity模板,WEB层使用的是WEBX框架里面的TemplateAction,TemplateScreen,AbstractModule,TemplateControl,解决了操作和页面的跳转。持久层使用ibatis,Bean容器使用的是Spring。
webx3.0框架指南,是一套基于Java Servlet API的通用Web框架,它在Alibaba集团内部被广泛使用。超清晰...
webx框架(淘宝框架),webx+spring+ibatis
webx框架是淘宝开发的比较流行的框架,这个是webx框架的入门介绍
通用WEB框架 Webx ,Webx是建立在Java Servlet API基础上的的通用WEB框架。用Webx搭建的应用可以...
阿里软件的技术开发框架 统一的开发模式,分布式开发,提高开发效率
快速使用 webx 开发web 应用 Webx框架指南 Michael Zhou
阿里巴巴开源框架webx ,技术文档,内涵部分java实现代码
淘宝开源Web开发框架Webx3.0介绍,内附宠物店程序作为例子详细解说webx框架的方方面面。
该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用。
阿里巴巴公司的开发框架webx3介绍 Webx3_Guide_Book.pdf
webx3 PDF(阿里巴巴 前端web框架)
webx3 启动顺序,webx使用总结,webx表单提交(感觉你还是看webx文档 貌似更加好哦!那个表单提交写的很是详细)
因此,当你使用Webx的时候,你会觉得在很多方面,它和其它开源的框架非常类似。我并不是说所有的框架都一样好,而是说只要假以时日,所有的框架在发展过程中,必然会积聚好的方面,淘汰坏的方面,从而变得足够好。从...
• 2004年11月,Webx 2.0和Spring框架整合。 • 从那以后,Webx 2.0一直在进化,但没有作根本性的改动。 • 2010年,Webx 3.0发布。Webx 3.0抛弃了Webx 2.0中过时的、从Turbine中发展而来的 Service框架,直接采用...