controller包提供了三個主要功能:
如下圖:
1、mvc的主控制servlet
main controller類提供了總體控制作用,所有的請求都先對映到此類上,然後在統一分發到各個部分控制類。由於servlet是支援多執行緒的,所以效能是可以保證的。
maincontroller類繼承於httpservlet類,主要方法有:
1)
init()方法,初始化方法,在此方法裡面主要初始化一些公共的資源、服務,過濾器和一些系統基礎配置引數等。初始化服務過程委託services包中的service manager類來完成,初始化各種filter由filter包下的filter manager來完成。
2)
dopost()和doget()方法,接收各種請求並交給processrequest()方法統一處理,統一了post, get兩種請求方式。
通過在web.xml中註冊和對映,使得各種符合要求的請求都直接**到此控制類上,配置如下:
maincommand
com.daosheng.blackfin.controller.maincontroller
sysconfig
/web-inf/blackfin-config.xml 1
maincommand
/command/*
maincommand
/main/*
maincommand
*.cmd
這樣碰到請求url以.cmd結尾的或者以/command/或/main/開頭的都對映到此類上來做統一處理。實現了統一控制功能。 2、
filter的介面和管理類
filter包主要包含filter介面和filter的管理類。filtermanager類負責初始化各註冊的filter(開發人員可以自己開發並註冊在註冊檔案中),系統控制類接收到各種請求先按需要交給過濾類(filter)來進行過濾,然後在由各自業務處理類完成業務處理。
統一過濾類可以用來完成一些需要每次請求都需要判斷的邏輯,比如說登入校驗(判斷使用者是否登入過,如果沒有直接跳轉到登入頁面)還有乙個比較關鍵的過濾就是codefilter類。一般的http請求分為兩種型別,一種是普通型別,一種是為multipart 型別(form的enctype="multipart/form-data",可以上傳檔案)兩種型別導致在後面伺服器端接收form中的引數使用的方法各不相同,multipart型別的用getparameter()方法是沒法取出提交上來的引數的,而是要得到乙個binary陣列自己進行分拆才能得到。導致程式取引數的不一致性,可移植性減弱。所以使用codefilter對每個request進行過濾,將兩種情況上傳的各種引數都重新setattribute到request中,這樣就能夠使後面的command類只使用getattribute()方法就能取到實際的引數而不需要管是哪種方式提交的了,並且codefilter中還可以把一些字元過濾掉,比如說單引號等。
3、請求輔助類
請求輔助類(requesthelper)主要有兩個作用,一是將request,response和配置引數封裝起來然後作為command的引數,使每個command都能夠獲取到前台請求的各種資訊,第二個作用是查詢command的各種配置引數資訊。
J2EE輕量級框架 4 05學習心得
lc然後 id lc 是在上面lc中的lc value 等於 webroot value jsp 是以.jsp結尾 在controller包中,實現controller介面,實現 方法string username arg0.getparameter username 得到表單資料,與request...
tmsp輕量級J2EE框架第一次壓測
由於資源的有限,j2ee傳統的框架已經超過了我們對資源的預期,無奈只能轉向底層的原始開發,自己寫了輕量級的框架。其實這個框架我們一直說輕量級,到底能多輕,另外我們能不能保證服務保證。今天做了一下壓力測試。系統centos5.7 記憶體256m cpu intel r xeon r cpu e3123...
J2EE框架知識清單
1 struts mvc jvc 2 struts action 3 struts 1.0和2.0區別 4 spring 核心機制 依賴注入 5 使用spring容器 6 aop的概念與應用 7 ioc的原理與缺點 8 spring的模組結構 9 hibernate體系結構 10 hibernate...