FilterDispatcher处理流程
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
前身是:org.apache.struts2.dispatcher.FilterDispatcher
请求被web.xml中定义的过滤器拦截。
3层过滤器处理:ActionContextCleanUp,其他过滤器(Other Filters, SiteMesh),FilterDispatcher。
——FilterDispatcher中首先询问ActionMapper是否需要调用某个Action。
——如果调用,把请求交给ActionProxy。
——ActionProxy通过struts.xml找到Action类。
——ActionProxy创建一个ActionInvocation实例。并调用Action。调用之前ActionInvocation会加载Action的所有拦截器。
执行完ActionInvocation负责根据struts.xml中的配置找到相应的返回结果result。
==========================================================================
【Servlet中过滤器概念】【StrutsPrepareAndExecuteFilter 】
过滤器API包括3个简单的接口:Filter,FilterChain,FilterConfig。
Filter接口:
——init():容器实例化过滤器的时候调用。容器为这个方法传入FilterConfig,配置信息。
——doFilter():处理请求和响应请求。接受3个参数:ServletRequest,ServletResponse,FilterChain。
调用FilterChain的doFilter()方法。
设置ValueStack。获取ActionMapping。
——destroy()方法。
FilterDispatcher处理流程的更多相关文章
- Struts框架核心工作流程与原理
		1.Struts2架构图 这是Struts2官方站点提供的Struts 2 的整体结构. 执行流程图 2.Struts2部分类介绍 这部分从Struts2参考文档中翻译就可以了. ActionM ... 
- Struts2 核心流程
		1.Struts2架构图 这是Struts2官方站点提供的Struts 2 的整体结构. 执行流程图 2.Struts2部分类介绍 这部分从Struts2参考文档中翻译就可以了. ActionM ... 
- 深入浅出Struts2+Spring+Hibernate框架
		一.深入浅出Struts2 什么是Struts2? struts2是一种基于MVC的轻量级的WEB应用框架.有了这个框架我们就可以在这个框架的基础上做起,这样就大大的提高了我们的开发效率和质量,为公司 ... 
- Java框架Struts2
		struts2的核心和工作原理 在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于we ... 
- Struts2(一)入门及工作原理
		Apache Struts 2 是一种流行的 Java模型 - 视图 - 控制器(MVC)框架,成功地结合了 WebWork和Struts1.x 两种 web 框架. Apache Struts2与S ... 
- Struts2(二):工作原理
		struts可查看源码:https://github.com/apache/struts 在学习struts2之前,我先看了一些比较早版本对struts2的工作原理相关的介绍,顺便抄写过来,用来帮助自 ... 
- Struts2 原理
		.Struts2原理 .Struts 1 原理 .Struts1 和webwork的关系 .HttpServletRequest Struts2原理 
- strut2的原理
		Struts2 在项目中用到的核心是拦截器interceptor,OGNL(Object Graph navigation Language)对象图导航语言(用来操作ValueStack里面的数据), ... 
- Struts2体系结构图以及详解
		Strut2的体系结构如图所示: 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求: 2.这个请求经过一系列的过滤器(F ... 
随机推荐
- Linux中的流程控制语句
			if语句 if [ 条件判断式 ] then 程序elif [ 条件判断式 ] then 程序else 程序fi 注意: a.使用fi结尾 b.条件判断式和中括号之间需要有空格 [root@local ... 
- vnc server配置、启动、重启与连接
			目前有两种比较流行的方式:XDM(X display manager)方案和VNC方案,而我个人比较倾向于VNC方案,一是因为VNC方案配置起来相对比较容易,二是VNC方案支持多种连接方式,比如通过浏 ... 
- 爬虫,如何防止被ban之策略大集合
			话说在尝试设置download_delay小于1,并且无任何其他防止被ban的策略之后,我终于成功的被ban了. 关于scrapy的使用可参见之前文章: http://blog.csdn.net/u0 ... 
- requirejs源码分析:  config中shim
			shim处理的源码: //Merge shim if (cfg.shim) { eachProp(cfg.shim, funct ... 
- Linux Graphic DRI Wayland 显示子系统
			转:https://blog.csdn.net/u013165704/article/details/80709547 1. 前言 上篇文章(Linux graphic subsytem(1)_概述) ... 
- Struts2笔记03——架构(转)
			原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm 架构(很重要!尤其是图!) 从一个比较高的层次来看,St ... 
- 0801 RESTAPI设计,DRF 序列化
			1.内容回顾 1.restframework serializer(序列化)的简单使用 QuereySet([obj,obj,obj]) --> JSON ... 
- node做验证码
			使用了ccap插件 1.安装: 通用方法:npm install ccap 2. cnst ccap= require('ccap')({ width: 128, height: 40, offset ... 
- memcpy与memmove
			函数原型: void* memcpy(void *dst,void const *src,size_t count) void* memmove(void *dst,void const *src,s ... 
- Android LCD(二):常用接口原理篇【转】
			本文转载自:http://blog.csdn.net/xubin341719/article/details/9125799 关键词:Android LCD TFT TTL(RGB) LVDS E ... 
