阅读 99

框架模块,开发框架

前言

有很多标准的MVC开源框架。 (Struts、SpringMVC、Webx )对于生活在开源世界的循环农户来说,SpringMVC、Struts是接触较多、最亲近的框架。

知己知彼

例如,在SpringMVC配置中,主要关注以下内容:

1 .在1.web.xml文件中请求分发程序(dispatcher servlet )。 下图:

阻止以do结尾的HTTP请求。

2 .以jsp为例,如视图控制器、视图解析器、框架生成器、jsp等。 下图:

将所有视图配置为在/WEB-INF/view中查找。

3 .拦截。 下图:

4 .适配器。 下图:

配置url请求和处理函数之间的映射关系。

5 .请求路径映射。 下图:

在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-d groupid=com.Alibaba.webx-dartifactid=mywebx-d version=1.0-snapshot-dpackage=com upid=com.Alibaba.citrus.sample-darchetypeversion=1.0-dinteraction这个项目其实是Maven根据webx中央库原型生成的框架

框架结构

Webx解决了单个项目中包含的不同的体系结构配置。 例如,根据业务需要在项目中区分同一会员用户的不同权限、业务功能、页面展示时,可以从业务的角度划分项目并构成webx-account.xml、webx-gateway.xml等便于业务的并行开发。

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

)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的使用》。


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐