网页入口ControlServlet分析
2015-10-06 14:38
239 查看
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()
无特殊处理相关文章推荐
- (不错) 大数据驱动的金融业务创新(用户画像-数据架构-标签建模)
- 输出字符串中只出现一次的字符
- 启动入口Start.java分析
- C++模板
- 并查集
- Debug Assertion Failed! File:cmdtarg.cpp Line:52
- http的报文结构和状态码的含义
- extern用法
- java springmvc 定时器方法执行两次问题
- KMP 求next数组
- 利用jdk的wsimport.exe生成WebServices客户端代码
- http的报文结构和状态码的含义
- VMware虚拟机运行时出错:cannot open the disk xxxxxxxxxxx.vmdk. failed to lock the file
- 大数据机器学习系统研究进展
- android:theme和app:popupTheme的作用,以及在android 3.0以下不起作用问题的解决
- UVA 10256 The Great Divide
- C++中的struct和class的区别
- OFBiz部署与运行
- java进销存总结
- POJ 2752 KMP中next数组的理解