網頁入口ControlServlet分析

2022-07-18 19:30:19 字數 1912 閱讀 1285

configurebsf(); //配置自定義

bsf,即在

bean script

中註冊ofbiz

實現的指令碼引擎

getrequesthandler(); //初始化

request handler

,即載入該模組的

controller.xml

操作描述

設定請求頭

設定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()

無特殊處理

Google另類入口

搜尋引擎老大google是我們最常用的搜尋 它的首頁從一開始到現在都幾乎沒有什麼變化,首頁風格已深深印在了我們的腦海中。其實大家有所不知,google的首頁除了有各種語言版本的以外,還有不少另類的首頁風格呢 google另類入口 搜尋引擎老大google是我們最常用的搜尋 它的首頁從一開始到現在都幾...

yii 入口指令碼

入口指令碼是處理使用者的初始引導php指令碼。它是唯一乙個終端使用者可直接請求執行的php指令碼。多數情況下,乙個 yii 應用的入口指令碼包含像下面這樣簡單的指令碼 在生產環境中請刪除此行 defined yii debug ordefine yii debug true 包含yii引導檔案 re...

main函式入口

最近在弄boost test單元測試的時候,遇到了乙個執行程式後就閃退掉的問題,找了好久才發現,原來是沒有進入到boost 自己的main函式中,因為鏈結的其他lib中,有乙個檔案也定義了main函式,編輯器最終是選擇了那個main函式作為程式的入口。在vs下 main函式 通常是 int tmai...