<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    controller包提供了三個主要功能:

    如下圖:

    controller.bmp

    1、  mvc的主控制servlet

    Main Controller類提供了總體控制作用,所有的請求都先映射到此類上,然后在統一分發到各個部分控制類。由于servlet是支持多線程的,所以性能是可以保證的。

    MainController類繼承于HttpServlet類,主要方法有:

    1)        init()方法,初始化方法,在此方法里面主要初始化一些公共的資源、服務,過濾器和一些系統基礎配置參數等。初始化服務過程委托services包中的Service Manager類來完成,初始化各種filterfilter包下的Filter Manager來完成。

    2)        doPost()doGet()方法,接收各種請求并交給processRequest()方法統一處理,統一了post, get兩種請求方式。

    通過在web.xml中注冊和映射,使得各種符合要求的請求都直接轉發到此控制類上,配置如下:

           <servlet>

                  <servlet-name>mainCommand</servlet-name>

                  <servlet-class>

                         com.daosheng.blackfin.controller.MainController

                  </servlet-class>

                  <init-param>

                         <param-name>sysconfig</param-name>

                         <param-value>/WEB-INF/blackfin-config.xml</param-value>

                  </init-param>

                  <load-on-startup>1</load-on-startup>

           </servlet>

    <servlet-mapping>

                  <servlet-name>mainCommand</servlet-name>

                  <url-pattern>/command/*</url-pattern>

           </servlet-mapping>

           <servlet-mapping>

                  <servlet-name>mainCommand</servlet-name>

                  <url-pattern>/main/*</url-pattern>

           </servlet-mapping>

                  <servlet-mapping>

                  <servlet-name>mainCommand</servlet-name>

                  <url-pattern>*.cmd</url-pattern>

           </servlet-mapping>

    這樣碰到請求url.cmd結尾的或者以/command//main/開頭的都映射到此類上來做統一處理。實現了統一控制功能。

    2、filter的接口和管理類

    filter包主要包含filter接口和filter的管理類。FilterManager類負責初始化各注冊的filter(開發人員可以自己開發并注冊在注冊文件中),系統控制類接收到各種請求先按需要交給過濾類(filter)來進行過濾,然后在由各自業務處理類完成業務處理。

    統一過濾類可以用來完成一些需要每次請求都需要判斷的邏輯,比如說登入校驗(判斷用戶是否登入過,如果沒有直接跳轉到登入頁面)還有一個比較關鍵的過濾就是CodeFilter類。一般的http請求分為兩種類型,一種是普通類型,一種是為multipart 類型(formenctype="multipart/form-data",可以上傳文件)兩種類型導致在后面服務器端接收form中的參數使用的方法各不相同,multipart類型的用getParameter()方法是沒法取出提交上來的參數的,而是要得到一個Binary數組自己進行分拆才能得到。導致程序取參數的不一致性,可移植性減弱。所以使用CodeFilter對每個request進行過濾,將兩種情況上傳的各種參數都重新setAttributerequest中,這樣就能夠使后面的command類只使用getAttribute()方法就能取到實際的參數而不需要管是哪種方式提交的了,并且CodeFilter中還可以把一些字符過濾掉,比如說單引號等。

    3、請求輔助類

    請求輔助類(RequestHelper)主要有兩個作用,一是將requestresponse和配置參數封裝起來然后作為command的參數,使每個command都能夠獲取到前臺請求的各種信息,第二個作用是查找command的各種配置參數信息。


    posts - 9, comments - 27, trackbacks - 0, articles - 19

    Copyright © publisher luo

    主站蜘蛛池模板: 亚洲av永久无码精品网站| 亚洲一级特黄大片无码毛片| 中文字幕亚洲精品资源网| 免费av一区二区三区| 亚洲av永久无码精品网站| 99re这里有免费视频精品| 亚洲宅男永久在线| 1000部拍拍拍18免费网站| 色噜噜亚洲男人的天堂| 日韩在线看片免费人成视频播放| 最新亚洲人成无码网www电影| 哒哒哒免费视频观看在线www| 免费一级特黄特色大片| 中文亚洲AV片不卡在线观看| 久久久精品免费国产四虎| 亚洲第一页在线观看| 成全影视免费观看大全二| 美女视频黄a视频全免费网站一区| 亚洲日韩精品无码专区网站 | 亚洲人成人网站18禁| 国产极品美女高潮抽搐免费网站| 无人视频在线观看免费播放影院 | 亚洲国产另类久久久精品黑人| 免费黄色电影在线观看| 亚洲视频在线免费播放| 日韩视频在线免费| 成人免费av一区二区三区| 久久夜色精品国产噜噜噜亚洲AV| 国产人在线成免费视频| 免费国产a理论片| 久久精品亚洲精品国产色婷| 最近中文字幕mv免费高清电影| 牛牛在线精品观看免费正| 亚洲人成电影福利在线播放| 在线视频免费观看www动漫| 国产精品偷伦视频免费观看了| 亚洲成人免费电影| 亚洲国产一成久久精品国产成人综合| a级毛片免费观看视频| 亚洲综合伊人制服丝袜美腿| 久99精品视频在线观看婷亚洲片国产一区一级在线 |