• 网页入口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()

    无特殊处理

  • 相关阅读:
    java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized...
    Spring Security 自定义 登陆 权限验证
    springboot中使用spring security,登录url就出现403错误
    RocketMQ最佳实践
    JS 中获取服务器时间的注意点
    许小年:中国经济刚入寒冬,四万亿也救不了
    RestTemplate发送GET请求
    String类的format方法的用法
    参数的打包和解包实例
    16.return 返回值
  • 原文地址:https://www.cnblogs.com/syjkfind/p/4857117.html
Copyright © 2020-2023  润新知