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

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

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

    對Servlet的初始化的理解

    版權所有,轉載請聲明出處 zhyiwww@163.com

    在讀我自己的認識之前 , 我們先來看一下 servet 的結構圖 :

    servlet.png
    以下是我自己的一點淺見:

    ①  Servlet 在初始化的時候 , 是通過 init(ServletConfig? config) init() 來執行的。

    ServletConfig 是一個接口,它怎樣傳遞給他一格對象來進行初始化呢?其實,是這個對象是由 servlet 容器來實例化的,由容器產生一格 ServletConfig 的實現類的對象,然后傳遞給 Servlet

    結論: ServletConfig 由容器實例化

    ②  我們有些時候可能在 Servlet 初始化時給它一些固定的配置參數,那么這些參數是怎樣傳遞到 Servlet 呢?

    其實,我們在 web.xml 中給 servlet 配置啟動參數,在容器對 servlet 進行初始化的時候,會收集你所配置的參數,記錄在 ServletConfig 的實現類中,所以你才可以通過 ServletConfig 對象的

    ??? public String getInitParameter(String name);

    ??? public Enumeration getInitParameterNames();

    方法來取得你已經配置好的參數,也就是說,你對 servlet 的配置都已經記錄在 ServletConfig 對象中了。

    結論:你對 Servlet 的配置,在 Servlet 的初始化時都由容器來收集并且記錄到 ServletConfig 的實現類中。

    ?

    ③  我們來看一個 Servlet 的配置

    ? <servlet>

    ??? <servlet-name>index</servlet-name>

    ??? <servlet-class>org.zy.pro.sw.servlet.IndexServlet</servlet-class>

    ??? <init-param>

    ????? <param-name>dbconfig</param-name>

    ????? <param-value>/WEB-INF/dbconfig.xml</param-value>

    ??? </init-param>

    ? </servlet>

    在此,我們實現對數據庫的配置文件的加載。

    Servlet 初始化完成后,我們可以通過

    String? dbconf=this.getServletConfig().getInitParameter("dbconfig")

    來取得我們的配置的參數的值。

    但是,我們僅能得到一個配置的字符串。之后我們可以通過配置文件取得我們的數據庫的配置參數,然后對數據庫進行初始化。

    其實我們也可以通過傳遞一個類的名字串,然后再實例化。

    ??? <init-param>

    ????? <param-name>dbconfig</param-name>

    ????? <param-value>org.zy.util.db.DBUtil</param-value>

    ?? ?</init-param>

    我們先取得配置參數:

    String? dbconf=this.getServletConfig().getInitParameter("dbconfig")

    然后通過

    Class.forName(dbconf).getInstance();

    來實例化對象,就可以實現對數據庫的調用了。

    結論:在 web.xml 中對 Servlet 的初始化,只能傳遞字符串類型的數據

    ④  ServletContext

    ServletContext 是負責和 Servlet 的上文和下文交互,上面和 Servlet 容器交互,下面和 Servlet 中的請求和相應進行交互。

    ServletConfig 中, ???

    public ServletContext getServletContext(); 方法實現取得當前 ServletContext 的對象。

    你可能要問, ServletContext 是一個接口,那么你如何取得他的對象呢?

    其實這個問題和 ServletConfig 相同,都是在 Servlet 進行初始化的時候產生的對象,是由容器來初始化的。



    posted on 2006-06-12 11:53 nbt 閱讀(309) 評論(0)  編輯  收藏 所屬分類: Servele&JSP和js

    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導航

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java技術網站

    友情鏈接

    國內一些開源網站

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧美日韩综合久久久久| 亚洲白色白色永久观看| 亚洲AV无码成人精品区狼人影院 | 国产免费爽爽视频免费可以看| 亚洲综合小说久久另类区| 91精品啪在线观看国产线免费| 亚洲AV无码一区二区二三区入口| 99久久国产精品免费一区二区 | 97无码免费人妻超级碰碰夜夜| 欧洲 亚洲 国产图片综合| 成人在线免费观看| 无码色偷偷亚洲国内自拍| 免费v片视频在线观看视频| 新最免费影视大全在线播放| 亚洲精品乱码久久久久久按摩 | 亚洲w码欧洲s码免费| 亚洲无圣光一区二区| 免费看的一级毛片| 麻豆91免费视频| 亚洲爆乳无码一区二区三区| 99久久国产免费中文无字幕 | 国产精品亚洲一区二区三区| 免费成人午夜视频| 日韩精品无码免费专区午夜不卡| 久久亚洲精品中文字幕无码| 99ee6热久久免费精品6| 中日韩亚洲人成无码网站| 又大又粗又爽a级毛片免费看| 丝袜足液精子免费视频| 亚洲成人一级电影| 亚洲国产aⅴ综合网| 污污网站免费观看| 亚洲爆乳无码专区www| 久久久久噜噜噜亚洲熟女综合| 久久这里只精品国产免费10| 亚洲日本成本人观看| 久久精品国产亚洲Aⅴ蜜臀色欲| 88xx成人永久免费观看| 真正全免费视频a毛片| 亚洲一区二区在线免费观看| 国产精品免费电影|