Webx学习

article/2025/9/29 7:45:37

六月中就要去阿里巴巴实习了,部门使用的web框架是Webx,喜大普奔的发现Webx是开源的,所以认真学习一下。主要参考指导手册

Webx总体介绍

设计理念

这里有许多框架设计的真知灼见!
一个框架的好坏,往往并不是由他所实现的具体功能好坏所决定的,而是由其所使用的基础框架的好坏所决定的。
现在的软件设计都提倡模块化,扩展性,典型的例子就是Spring框架。

SpringExt

Webx Framework

Webx Framework才真正涉及WEB技术,它只负责一系列基础性的任务,并提供pipeline机制以定制WEB处理流程。

初始化Spring容器

<listener-class>com.alibaba.citrus.webx.context.WebxContextLoaderListener</listener-class>
以WebxContextLoaderListener代替Spring的ContextLoaderListener

初始化日志系统

Webx响应请求

增强request、response、session

调用pipeline进行进一步的处理

详细流程

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd ">
...
<filter>
<filter-name>webx</filter-name> <filter-class>com.alibaba.citrus.webx.servlet.WebxFrameworkFilter</filter-class> <init-param><param-name>excludes</param-name>
<param-value><!-- 需要被“排除”的URL路径,以逗号分隔,前缀!表示“包含”。例如/static, *.jpg, !/ uploads/*.jpg --></param-value></init-param><init-param><param-name>passthru</param-name>
<param-value><!-- 需要被“略过”的URL路径,以逗号分隔,前缀!表示“不要略过”。例如/myservlet, *.jsp --></param-value></init-param></filter><filter-mapping><filter-name>webx</filter-name><url-pattern>/*</url-pattern></filter-mapping>
...
</web-app>

如上所示,所有的请求都会经过WebxFrameworkFilter的处理
详细处理流程如下图:
Webx请求详细处理流程
如上图所示,具体的处理流程由WebxRootController和WebxController决定。

定制Webx Framework

  1. 定制WebxRootController
    WebxRootController是被所有子应用所共享的逻辑,WebxRootController的默认处理是增强request、response、session等
  2. 定制WebxController
    WebxController和具体的子应用相对应。WebxController默认的逻辑是调用Pipeline的处理

Webx Turbine

页面驱动
约定胜于配置

页面布局

页面一般由Screen、[Controller]、[Layout]部分组成
页面布局

处理页面的基本流程

<services:pipeline xmlns="http://www.alibaba.com/schema/services/pipeline/valves">
<!-- 初始化turbine rundata,并在pipelineContext中设置可能会用到的对象(如rundata、utils),以便valve取得。 --><

http://chatgpt.dhexx.cn/article/CqZwLc0R.shtml

相关文章

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

一、打开 二、点击号选择maven 三、 (1)、Working directory : 选择项目路径 (2)、Command line: clean jetty:run-war -Djetty.port8086 -Dautoconfig.charsetUTF-8 -Dmaven.test.skip (3)、VM Options: -server -XX:PermSize256M -XX:MaxPermSize512M (4)、点击Environment V…

webx mysql_Webx项目的获取与验证

在JavaWeb环境配置后就可进行Webx实例项目的获取与研读了。 1.创建一个初始的Demo工程。 1)下载 Webx Maven 项目的目录结构Artifact插件。 2) 创建WebxDemo项目 打开命令行工具(Windows cmd或Unix/Linux bash)&#xff0c;输入如下命令&#xff1a; mvn archetype:generate -D…

Webx框架

Webx是一个框架&#xff0c;它可用来做下面的事情&#xff1a; 创建一个全功能的Web应用 Webx提供了创建一个Web应用所需要的所有必要功能. 创建一个新的Web框架 Webx允许你定制、甚至重写大部分的Webx框架逻辑&#xff0c;从而实现全新的功能&#xff0c;或者和其它应用框…

Webx简介(转)

经常会到博客来看看大家的一些文章&#xff0c;都写的相当精彩&#xff0c;有水平&#xff0c;感觉大家好像都写了&#xff0c;自己没什么写的&#xff0c;后来跟师傅婉佩沟通&#xff0c;才了解到这样想是错的&#xff0c;每个人针对每个东西可能想法观点都不同&#xff0c;写…

WebX入门指南

[说明] 本文围绕WebX的Web框架展开&#xff0c;试图将整个开发中使用的软件栈或者说生态系统串联起来。本文中不讲解原理性的东西&#xff0c;只是讲解各种场景下如何使用WebX相关的技术。入门指南中涉及到的实践指南和原理指南&#xff0c;不会展开&#xff0c;在后续博文中&a…

WebX框架解析及使用教程

WebX框架是阿里巴巴集团开发的&#xff0c;它建立在SpringEx的基础上&#xff0c;具有超强的扩展能力。 一、Webx的层次结构&#xff08;从里到外&#xff09; &#xff08;1&#xff09;SpringExt&#xff1a;基于Spring&#xff0c;提供扩展组件的能力 &#xff08;2&#xf…

VSCode中Emmet使用

文章目录 HTML部分1. 添加类&#xff0c;id&#xff0c;文本和属性2. 嵌套和分组3. 隐式标签4. 定义多个元素* 和 编号$5. 添加虚拟文字6. 其它 CSS部分1. 属性和属性值的缩写2. 属性值的单位其它 HTML部分 1. 添加类&#xff0c;id&#xff0c;文本和属性 div.box#box > …

linux vim emmet,emmet-vim

最近啊&#xff0c;我投奔了网页的开发&#xff0c;看了一本《head first HTML and CSS》的书&#xff0c;感觉非常不错&#xff0c;然后又配置了一些vim里面用到的插件&#xff0c;现在我把学习到的东西记录下来&#xff01; 首先&#xff0c;我不会在这里写emmet 的具体操作方…

Emmet 语法

Emmet语法前身是Zen coding&#xff0c;来提高html和css的编写速度&#xff0c;vscode内部已经集成该语法了 1、快速生成html结构语法 生成标签&#xff1a; 直接输入标签名&#xff0c;再按TAB键&#xff0c;such as 你打个 div 再按tab&#xff0c;就会直接生成 (这里打不出…

emmet写法

1.写一个递增的img路径 img[srcimage/com/$$.png]*10 效果

6.Emmet 语法与快速格式化代码

Emmet语法可以让我们在写网页的时候速度更快&#xff0c;我当前写网页的工具是pycharm&#xff0c;在pycharm中使用Emmet&#xff0c;我们需要点击File,然后点击Setting 搜索emmet&#xff0c;保证这里是勾选状态 安装后如果不进行其他设置&#xff0c;emmet自动被勾选 目录 …

Emmet语法总结

1 Emmet简介 Emmet是一个Web开发工具&#xff0c;用于加快HTML和CSS代码的编写速度。使用Emmet能够通过简短的表达式生成HTML或CSS代码片段。另外&#xff0c;截至2022年&#xff0c;主流的编辑器工具如Visual Studio Code、WebStorm都已经集成了Emmet工具&#xff0c;无需手动…

Linux 配置全面讲解(安装JDK、Mysql、Nginx)

1 Linux概述 1.1 Linux介绍 Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思…

【JAVA秒会技术之ConcurrentHashMap】JDK1.7与JDK1.8源码区别

前言 以前写过介绍HashMap的文章&#xff0c;文中提到过HashMap在put的时候&#xff0c;插入的元素超过了容量&#xff08;由负载因子决定&#xff09;的范围就会触发扩容操作&#xff0c;就是rehash&#xff0c;这个会重新将原数组的内容重新hash到新的扩容数组中&#xff0c;…

安装笔记--eclipse+jdk+neo4j安装与配置

1.eclipse安装2.JDK安装3.环境变量配置4.在eclipse中创建与导入项目4-1 eclipse导入项目 5.neo4j配置 1.eclipse安装 第一步&#xff1a;下载eclipse&#xff0c;并安装。 下载链接: http://www.eclipse.org/downloads/. 点击 Download Packages; 如图&#xff1a;根据自己的…

JDK7与JDK8中HashMap的实现

JDK7中的HashMap HashMap底层维护一个数组&#xff0c;数组中的每一项都是一个Entry transient Entry<K,V>[] table;我们向 HashMap 中所放置的对象实际上是存储在该数组当中&#xff1b; 而Map中的key&#xff0c;value则以Entry的形式存放在数组中 static class En…

VirtualBox虚拟机安装CentOS,安装jdk

CentOS 安装&#xff0c;安装jdk 1. CentOS 简介 CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持&#xff08;通过安全更新方式&#xff09;。新版本的 CentOS 大约每两年发行一次&#xff0c;而每个版本…

JDK1.7安装及校验

JDK的全称是JavaSE Development Kit&#xff0c;即java开发工具包&#xff0c;是sun公司提供的一套用于开发java应用程序的开发包&#xff0c;它提供了编译、运行java程序所需的各种工具和资源&#xff0c;包括java编译器、java运行时环境&#xff0c;以及常用的java类库等。 …

JVM调优(jdk8)与垃圾回收器详解

JVM调优与垃圾回收器详解 这张是jdk8的jvm模型&#xff1a; 黄色框的是线程共享区域、蓝色框的是线程私有(也就是每个线程单独一份) jvm模型从大的角度说有&#xff1a;类装载子系统、字节码执行引擎、运行时数据区。我这里主要讲运行时数据区。 一、JVM内存模型 1、名词解释…

下载并安装JDK7

JDK的全称是JavaSE Development Kit&#xff0c;即java开发工具包&#xff0c;是sun公司提供的一套用于开发java应用程序的开发包&#xff0c;它提供了编译、运行java程序所需的各种工具和资源&#xff0c;包括java编译器、java运行时环境&#xff0c;以及常用的java类库等。 …