网页入口ControlServlet分析
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分析的更多相关文章
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- Jquery事件汇总、网页入口
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- TI IPNC Web网页之流程分析
流程 Appro IPNC使用的web服务器是boa. 请仔细理解下面这段话. boa这个web服务器是GUI界面和IPNC应用程序之间的通信的桥梁.它的责任是从web GUI中接收HTTP请求,并且 ...
- 腾讯ISUX网页前端代码分析
看了一下腾讯ISUX网页,无论是pc端还是移动端,展示都挺好看的,先对其代码进行分析如下: 1,先看前三行代码 <!DOCTYPE html> <!-- 腾讯 ISUX 是腾讯集团核 ...
- weui 多网页切换效果分析
weui的文档写的不怎么详尽,简单的来讲WeUI 为微信 Web 服务量身设计的h5框架. WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户 ...
- tampermonkey,采用js解析自定义脚本,实现网页列表数据采集分析
最近一直在做数据采集的事情,目的是使用java开发一套分析指定采集规则,模拟用户动作做数据提取.因此定义了一套动作脚本,open,click,get,list,opentab,closetab...j ...
- node入口文件分析和目录初始化
1.需要安装的模块 npm install express npm install jade npm install mongoose npm install bower -g npm install ...
- laravel5.5入口文件分析
入口文件 public/index.php 1.加载composer的自动加载器 require __DIR__.'/../vendor/autoload.php'; 自动加载,不用再各种requir ...
- [慕课笔记]Node入口文件分析和目录初始化
1:我们要在根目录下安装这些模块 2:然后来编写这些入口文件,这几行代码的大概意思是说,我引入一个express的模块,然后生成一个webview 的实例,将这个实例的监听端口设置成3000,然后就可 ...
随机推荐
- JavaScript跨浏览器处理事件以及相关对象
主流的浏览器和IE浏览器在处理事件和事件对象上是有所区别的,我们一般会通过EventUtil进行封装,这样,就可以正常的跨浏览器处理事件了,本文的主要内容总结自<JavaScript高级程序设计 ...
- c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9601511.html c++ 网络编程(一)TCP/UDP 入门级客户端与服务端交互代码 网 ...
- idea开发环境中maven控制台乱码解决
在pom文件中加入 红色那行, <properties> <project.build.sourceEncoding>UTF-8</project.buil ...
- React.js 小书 Lesson26 - 实战分析:评论功能(五)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson26 转载请注明出处,保留原文链接和作者信息. (本文未审核) 持久化评论 同样地,可以通过类 ...
- xmanager连接redhat(centos)
1.以连接Centos6.5为例,先关闭防火墙 service iptables stop chkconfig --level 345 iptables off 2.安装XDM,通过 XDMCP 支持 ...
- Expression Blend实例中文教程(13) - 控件模板快速入门ControlTemplates
上篇,介绍了控件样式(Style)和模板(Template)的基础概念,并且演示了使用Blend设计控件样式.本篇将继续介绍使用Blend设计自定义控件模板 - ControlTemplate.Con ...
- http所有请求头在Console中打印
1.目标:将http中的请求头全部打印在Console中 2.基本语句 //1.获得指定的头 String header = response.getHeader("User-Agert&q ...
- 新手学习Java,该从哪里学起?
最近在入坑Java,Java基础知识了解的差不多了,听过很多人的建议,但是从别人那里听到的都是一些比较琐碎的东西,根据打听来的,结合网上自己找到的建议,开始详细地记录一下初学Java,应该掌握哪些具体 ...
- Linux pip 安装模块时,一直黄字错误:Could not find a version that satisfies the requirement
参考原文:https://blog.csdn.net/u012592062/article/details/51966649 这时我们用国内的镜像源来加速 pip install 包名-i http: ...
- PHP支持多线程吗?
https://zhidao.baidu.com/question/2053529640037778107.html