Webx框架:Pipeline基本介绍

Pipeline。

它是管道的含义。一个管道阀门可以安装非常多。有许多可能的分支。它是用来控制页处理。它需要在被定义pipeline.xml文件。该文件是为每个阀的标签。该文件可以放一些简单的控制语句。在项目。这条管线有以下配置足够好。


<services:pipeline xmlns="http://www.alibaba.com/schema/services/pipeline/valves"><!-- 初始化 turbine rundata,并在 pipelineContext 中设置可能会用到的对象(如rundata、utils),以便 valve 取得。 --><prepareForTurbine /><!-- 设置日志系统的上下文,支持把当前请求的详情打印在日志中。

--> <setLoggingContext /> <!-- 分析URL,取得target。

--> <analyzeURL homepage="homepage" /> <!-- 检查 csrf token,防止 csrf 攻击和反复提交。假如 request 和 session 中的 token 不匹配,则出错,或显示 expired 页面。 --> <checkCsrfToken /> <!-- 这里为什么要用循环呢? --> <loop> <choose> <when> <!-- 运行带模板的screen,默认有layout。 --> <pl-conditions:target-extension-condition extension="null, vm, jsp" /> <performAction /> <performTemplateScreen /> <renderTemplate /> </when> <when> <!-- 运行不带模板的screen,默认无layout。

--> <pl-conditions:target-extension-condition extension="do" /> <performAction /> <performScreen /> </when> <otherwise> <!-- 将控制交还给 servlet engine。 --> <exit /> </otherwise> </choose> <!-- 假如 rundata.setRedirectTarget() 被设置,则循环,否则退出循环。

--> <breakUnlessTargetRedirected /> </loop> </services:pipeline>


为什么要引入Pipeline?这是由于传统的Filter受到限制,仅仅能訪问或者改动HttpServletRequest、HttpServletResponse、ServletContext三个对象,不能訪问应用程序中的状态。流程控制过于简单,仅仅能继续运行或者终止运行,没有循环、分支等机制。还有Filter无法訪问其它Filter的状态,在性能优化的时候比較困难。


为了克服Filter的缺点。Webx引入了RequestContext和Pipeline。当中RequestContext负责訪问和改动request和response对象,和Pipeline负责控制运行的进程的请求。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/gcczhongduan/p/4678675.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fpga摄像头模块_FPGA开源项目:双目测距(一)之双目图像采集显示以及图片保存...

1.简述这个项目是大三下学期暑假(也就是2019年8份)完成的&#xff0c;当时的视频效果已发布在bilibili上&#xff0c;这是我们的省级的科研立项&#xff0c;其实就我一个人负责完成。发布bilibili后很多人比较感兴趣&#xff0c;打算年初回学校完成毕设期间开源的&#xff0c;一…

python查找公共前缀_Python实现查找字符串数组最长公共前缀示例

本文实例讲述了Python实现查找字符串数组最长公共前缀。分享给大家供大家参考&#xff0c;具体如下&#xff1a;编写一个函数来查找字符串数组中的最长公共前缀。 class Solution:def longestCommonPrefix(self, strs):""":type strs: List[str]:rtype: str&quo…

博客搬家了

新博客&#xff1a;http://lindawhite.gq转载于:https://www.cnblogs.com/linda586586/p/4682027.html

github ssh 配置_Github远程仓库克隆更新本机,SSH协议免密操作配置和注意事项

Github远程仓库-克隆远程仓库到本机 【重点】目标如何克隆远程仓库到本机呢&#xff1f;小结下载项目的命令&#xff1a;git clone https://gitee.com/kekesam/sassweb777.git注意&#xff1a;1&#xff1a;它会自动创建本地仓库&#xff1b;2&#xff1a;它也会自动和远程仓库…

mysql查询库表变更信息_PythonMySQL进行数据库表变更和查询

这篇文章主要介绍了Python MySQL进行数据库表变更和查询的相关资料,需要的朋友可以参考下Python连接MySQL&#xff0c;进行数据库表变更和查询&#xff1a;python mysql insert delete query&#xff1a;#!/usr/bin/pythonimport MySQLdbdef doInsert(cursor,db):#insert# Prep…

CSS实现不固定宽度和高度的自动居中

有时候我们需要实现下面这种效果&#xff1a;嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#…

golang中文文档_【译】Go 语言源码贡献官方指导文档

以前给 Go 语言项目源码提交过一些 commits&#xff0c;期间阅读他们的官方指导文档的时候觉得这篇指导文档可以作为绝佳的关于大型软件项目的规范管理的参考&#xff0c;因为最近又提交了几个 commits&#xff0c;就又把这篇文档再看了一遍&#xff0c;有感于 Go 团队在项目管…

mysql增加最大连接数_mysql最大连接数怎么设置

设置mysql最大连接数的方法&#xff1a;首先打开mysql的控制台&#xff1b;然后输入语句【set GLOBAL max_connections1000;】即可直接设置最大连接数。通常&#xff0c;mysql的最大连接数默认是100, 最大可以达到16384&#xff1b;如果我们想修改mysql的最大连接数&#xff0c…

Hbase Interface HConnection

HTablePool 在Hbase 0.94、0.95、0.97被废弃&#xff0c;在0.98中被清除&#xff08; HTablePool 对比HConnection.getTable&#xff09;&#xff0c;hbase0.98 HTablePool会被逐渐废弃&#xff0c;直到0.98的发行版本中会被清楚。使用新的API&#xff0c;HConnection.getTable…

让一个动画一直执行的属性是_iOS 动画 一

View AnimationsAnimatable properties• bounds: 改变 bounds 属性可以在当前 view 内改变子视图等的相对位置。• frame: 改变 frame 可以移动或者缩放 view 。• center: 当你想移动 view 到屏幕的新位置时&#xff0c;可以改变此属性。• backgroundColor: 背景颜色。• al…

阿里云java mysql环境_阿里云搭建centos java mysql nginx环境

1.上传下载yum install lrzszsz下载rz上传2.安装压缩命令yum install -y unzip zip;3.安装javarpm -ivh jdk-8u161-linux-x64.rpm4.安装mysqlyum install libaioyum -y remove mariadb-libs-5.5*rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpmrpm -ivh mysql-commun…

ide快捷键_一款好用的IDE怎么可以没有代码提示?

我在使用过IntelliJ IDEA(一款Java开发工具)之后&#xff0c;感觉Delphi的IDE在编写代码方面尤其是代码提示方面和IntelliJ IDEA相比真的天差地别&#xff0c;所以决定认真的研究一下Delphi的代码提示功能一般情况下我们使用Delphi的开发工具都会安装cnpack专家包&#xff0c;但…

IOS开发学习记录第4天之C语言学习

&#xff08;一&#xff09;、今天我们要学习的主要包括一下内容&#xff1a; 1、标示符概念及其命名原则 在C语言中&#xff0c;符号常量&#xff0c;变量&#xff0c;数组&#xff0c;函数等都需要一定的名称&#xff0c;我们把这种名称称之为标识符。 标识符划分&#xff1a…

mysql pmm 布署_给 mysql 安装 pmm 监控

PMM 说明PMM(Percona Monitoring and Management) 是一款监控和分析 MySQL 服务的一套工具&#xff0c;可以从图形化的方式看到 MySQL 服务的各种性能指标&#xff0c;慢查询分析、连接数、线程状态、查询信息、缓存信息等等&#xff0c;对分析 MySQL 运行时问题很有帮助。PMM …

java 自定义注解_Java注解

前言近日在阅读开源项目&#xff0c;发现项目里好多奇奇怪怪的注解(DataScope、Log...)看得我一脸懵&#xff0c;不知道大家是否也有过这样的经历&#xff0c;回想了一下&#xff0c;发现自己对于注解的知识&#xff0c;好像只停留在Override。。。异常尴尬&#xff0c;所以今天…

JS 判断滚动底部并加载更多效果。。。。。。。。。

JS 判断滚动底部并加载更多效果。。。。。。。。。 <html lang"zh-cn"> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <title>js网页滚动条滚动事件 </title> <style type"…

mysql 格林时间转换_oracle中将格林威治时间转化为一般时间

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家&#xff0c;也给大家做个参考。to_char(trunc(b.starttime/1000/60/60/24)TO_DATE(1970-01-01 00:00:00,yyyy-MM-dd hh24:mi:ss),yyyy-mm-dd)|| ||lpad(mod(trunc(b.starttime/1000/60/60),24)…

java开发和基于asp.net开发有什么优越性?_java语言的入门开始介绍

java编程语言是目前世界最流行的编程语言&#xff0c;它是在c的基础上开发出来的语言&#xff0c;它取其精华去其糟粕让java语言具有功能强大和简单易用的特征。java具有&#xff1a;面对对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。java可以编写…

响应性web设计实战总结(二)

响应性web设计实战总结(二) 阅读目录 背景知识&#xff1a;Gulp-less安装及配置如下对响应性web总结&#xff0c;之前总结过2篇文章&#xff1b;可以看如下&#xff1a; http://www.cnblogs.com/tugenhua0707/p/4147569.html http://www.cnblogs.com/tugenhua0707/p/4598657.h…

uploadify java 上传_jquery使用uploadify插件实现多文件的上传(java版)

2、安装&#xff0c;由于下载下来的例子是php版本的&#xff0c;所以我只留下了主要的几个文件。如图&#xff1a;4、使用前台页面&#xff1a;pageEncoding"UTF-8"%>html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR…