init()

configureBsf(); //配置自定义bsf,即在bean script中注册ofbiz实现的脚本引擎

getRequestHandler(); //初始化request handler,即加载该模块的controller.xml

doPost()->doGet()

doGet()

操作

描述

设置请求头

设置charset,若ServletContext里有则取值,否则取request中的,再没有则设置为"UTF-8"

设置响应头

设置contentType为"text/html"和charset

GenericDelegator.pushUserIdentifier()

若有:从会话中取出userLogin的userLoginId存入Delegator

在request设置属性 _CONTROL_PATH_

for JSP dispatching

初始化delegator

若会话中已存在delegatorName,则从缓存中取得delegator。

会话没有则从ServletContext取delegator。

分别把对象写入request和把名称写入session。

再没有则记录错误后继续。

初始化dispatcher

从会话中取,若没有则从ServletContext取,存入request

初始化authz

从会话中取,若没有则从ServletContext取,存入request

初始化security

从会话中取,若没有则从ServletContext取,存入request

在request设置属性_REQUEST_HANDLER_

存入的对象为requestHandler,即加载controller.xml

在request设置属性ftlServletContext

即初始化freemarker的上下文

setInitialRequestInfo

将request一些请求头信息如locale、浏览器等存入会话

GenericDelegator.pushSessionIdentifier()

创建或取出visitId,类似于sessionId,存入会话

logRequestInfo(request)

记录日志

在request设置属性_FORWARDED_FROM_SERVLET_

标记是内部转发,让其他filter做相应的处理(比如不拦截)

requestHandler.doRequest()

处理请求

若errorPage非空则表示有错误

include到errorPage,若失败则直接输出错误信息

事务回滚处理

若有事务在做则回滚,若有事务挂起则清空

ServerHitBin处理

即负载均衡中本机的响应,追踪请求和时间等信息

清除delegator的会话信息

clearUserIdentifierStack()和clearSessionIdentifierStack()

destroy()

无特殊处理

网页入口ControlServlet分析的更多相关文章

  1. [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

    [python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...

  2. Jquery事件汇总、网页入口

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. TI IPNC Web网页之流程分析

    流程 Appro IPNC使用的web服务器是boa. 请仔细理解下面这段话. boa这个web服务器是GUI界面和IPNC应用程序之间的通信的桥梁.它的责任是从web GUI中接收HTTP请求,并且 ...

  4. 腾讯ISUX网页前端代码分析

    看了一下腾讯ISUX网页,无论是pc端还是移动端,展示都挺好看的,先对其代码进行分析如下: 1,先看前三行代码 <!DOCTYPE html> <!-- 腾讯 ISUX 是腾讯集团核 ...

  5. weui 多网页切换效果分析

    weui的文档写的不怎么详尽,简单的来讲WeUI 为微信 Web 服务量身设计的h5框架. WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户 ...

  6. tampermonkey,采用js解析自定义脚本,实现网页列表数据采集分析

    最近一直在做数据采集的事情,目的是使用java开发一套分析指定采集规则,模拟用户动作做数据提取.因此定义了一套动作脚本,open,click,get,list,opentab,closetab...j ...

  7. node入口文件分析和目录初始化

    1.需要安装的模块 npm install express npm install jade npm install mongoose npm install bower -g npm install ...

  8. laravel5.5入口文件分析

    入口文件 public/index.php 1.加载composer的自动加载器 require __DIR__.'/../vendor/autoload.php'; 自动加载,不用再各种requir ...

  9. [慕课笔记]Node入口文件分析和目录初始化

    1:我们要在根目录下安装这些模块 2:然后来编写这些入口文件,这几行代码的大概意思是说,我引入一个express的模块,然后生成一个webview 的实例,将这个实例的监听端口设置成3000,然后就可 ...

随机推荐

  1. orcale 之 初识数据库一

    数据库 数据库顾名思义数据的仓库,只不过这个仓库是在计算机的存储设备之中.一般来说,这些数据面向一个组织,部门或者整个企业,这些数据是按照一定的模型进行存放的数据集合,比如对于一个学生的管理系统来说, ...

  2. 关于80286——《x86汇编语言:从实模式到保护模式》读书笔记15

    一.80286的工作模式 80286首次提出了实模式和保护模式的概念. 实模式:和8086的工作方式相同: 保护模式:提供了存储器管理机制和保护机制,支持多任务. 二.80286的寄存器 (一)通用寄 ...

  3. 入门系列之在Nginx配置Gzip

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小铁匠米兰的v 发表于云+社区专栏 简介 网站加载的速度取决于浏览器必须下载的所有文件的大小.减少要传输的文件的大小可以使网站不仅加载 ...

  4. 【c++】动态绑定

    C++的函数调用默认不使用动态绑定.要触发动态绑定,必须满足两个条件: 只有指定为虚函数的成员函数才能进行动态绑定 必须通过基类类型的引用或指针进行函数调用 因为每个派生类对象中都拥有基类部分,所以可 ...

  5. Golang教程:接口

    什么是接口 在面向对象语言中,接口一般被定义为 :接口定义了一个对象的行为.它仅仅指定了一个对象应该做什么.具体怎么做(实现细节)是由对象决定的. 在 Go 中,一个接口定义为若干方法的签名.当一个类 ...

  6. bzoj 3512: DZY Loves Math IV

    Description 给定n,m,求 模10^9+7的值. Solution 设 \(S(n,m)\) 表示 \(\sum_{i=1}^{m}\phi(n*i)\) \(Ans=\sum_{i=1} ...

  7. 系统对象的使用——Cookie,ViewState,Session,Application

    Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable ...

  8. Java - 避免不必要的对象

    通常,我们更喜欢重用一个对象而不是重新创建一个.如果对象是不可变的,它就始终可以被重用. 下面是一个反面例子: String s = new String("stringette" ...

  9. JAVA中LinkedLockingQueue的简单使用

    1.相关知识的了解 阻塞队列:当队列为空时,去队列中取数据会被阻塞.当队列满时,往队列中放数据会被阻塞.   非阻塞队列:当队列为空时,去队列取数据会直接返回失败,队列满时,往队列中放数据会直接返回失 ...

  10. jquery echarts 饼状图

    var myChart = echarts.init(document.getElementById('myChart')); option = { title : { text: '某站点用户访问来 ...