zoukankan      html  css  js  c++  java
  • 网页入口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()

    若有:从会话中取出userLoginuserLoginId存入Delegator

    request设置属性 _CONTROL_PATH_

    for JSP dispatching

    初始化delegator

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

    会话没有则从ServletContextdelegator

    分别把对象写入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非空则表示有错误

    includeerrorPage,若失败则直接输出错误信息

    事务回滚处理

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

    ServerHitBin处理

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

    清除delegator的会话信息

    clearUserIdentifierStack()clearSessionIdentifierStack()

     

    destroy()

    无特殊处理

  • 相关阅读:
    十一招解决:系统IE部分网页打不开怎么办(转载)
    基于阿里云server搭建SVNserver
    hdu 2825 Wireless Password(ac自己主动机&dp)
    压力单位MPa、Psi和bar之间换算公式
    hdu4506小明系列故事——师兄帮帮忙 (用二进制,大数高速取余)
    图像处理之霍夫变换(直线检測算法)
    hdu1171 Big Event in HDU 01-背包
    [视频] x264 压缩笔记
    UVALive 4043 Ants
    关于游戏手柄按键的设计
  • 原文地址:https://www.cnblogs.com/syjkfind/p/4857117.html
Copyright © 2011-2022 走看看