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

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

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

    posts - 37, comments - 8, trackbacks - 0, articles - 0

    jsp程序設計:servlet

    Posted on 2008-10-20 07:29 夢與橋 閱讀(556) 評論(1)  編輯  收藏 所屬分類: jsp程序設計

    1、一個Servlet生命周期(Tomcat處理請求中)

    從Tomcat處理用戶請求,我們可以清晰的看到容器Servlet的生命周期管理過程:
    (1)、客戶發出請求—>Web 服務器轉發到Web容器Tomcat;
    (2)、Tomcat主線程對轉發來用戶的請求做出響應創建兩個對象:HttpServletRequest和HttpServletResponse;
    (3)、從請求中的URL中找到正確Servlet,Tomcat為其創建或者分配一個線程,同時把2創建的兩個對象傳遞給該線程;
    (4)、Tomcat調用Servlet的servic()方法,根據請求參數的不同調用doGet()或者doPost()方法;
    (5)、假設是HTTP GET請求,doGet()方法生成靜態頁面,并組合到響應對象里;
    (6)、Servlet線程結束,Tomcat將響應對象轉換為HTTP響應發回給客戶,同時刪除請求和響應對象。
    從該過程中,我們可以理解Servlet的生命周期:Servlet類加載(對應3步);Servlet實例化(對應3步);調用init方法(對應3步);調用service()方法(對應4、5步);調用destroy()方法(對應6步)。
    2、Servlet中doGet(),doPost(),service()函數的關系

    (1),三者之間的關系:doGet()和doPost()是由函數service()調用才執行的。也就是說,當從HttpServlet類繼承時可以繞過doGet()和doPost()直接override service()函數,也可以override doGet()和doPost()

    (2),service() 該函數使用起來不像duPost()與duGet()那樣有約束,但幾乎失去了HttpServlet的意義。很類似于GeneratServlet

    (3),doGet() 超鏈接時起作用 

    (4),doPost() form提交時起作用 

    如果兩者均有,則可用service() 或者
    protected void doGet(HttpServletRequest rst, HttpServletResponse resp) throws ServletException , java.io.IOException {
        doPost(req,resp);
    }

    3、為什么程序中覆蓋doGet()和doPost()等方法而不覆蓋service()方法?
    答:當服務器接收到servlet的請求時,服務器會產生一個新的線程調用service()方法。service()方法檢查HTTP請求類型,然后相應地調用doGet()、doPost()、doPut()、doDelete()等方法。如果servlet處理POST請示或GET請求方式相同,也可以嘗試覆蓋service()方法。但這樣做并不理想,更好的做法是在doPost()方法中調用doGet()方法,或者反過來。代碼多了一些,相比較直接覆蓋service()方法,有如下優點:
    (1)確保以后可以在子類中添加對其他請求服務的支持,如doPut()等。
    (2)可以通過實現getLastModified()方法來增加對修改日期的支持。如果調用了doGet()方法,標準service()方法會用getLastModified()方法設置header的最后修改日期,然后對GET請求作出回應(包括已修改過的header、If-Modified-Since header)。

    Feedback

    # re: jsp程序設計:servlet  回復  更多評論   

    2008-10-23 14:34 by softwave
    protected void doGet(HttpServletRequest rst, HttpServletResponse resp) throws ServletException , java.io.IOException {
    doPost(rst,resp);
    }
    主站蜘蛛池模板: 免费黄色小视频网站| 一级毛片aa高清免费观看| 东方aⅴ免费观看久久av| 国产女高清在线看免费观看| 亚洲精品无码国产片| 成年性生交大片免费看| 狠狠色香婷婷久久亚洲精品| 性xxxxx免费视频播放| 亚洲国产日韩在线| 我要看免费的毛片| 国产偷国产偷亚洲高清人| 亚洲国产成人五月综合网| 一级A毛片免费观看久久精品| 国产成人亚洲综合无码| 182tv免费视频在线观看| 久久青青草原亚洲av无码app| 久久综合九色综合97免费下载| 亚洲精品无码久久久影院相关影片| 国产99精品一区二区三区免费 | 久久久久av无码免费网| 亚洲综合av一区二区三区不卡| 全免费a级毛片免费看不卡| 日韩在线观看免费完整版视频| 亚洲综合熟女久久久30p| 久久久久国产精品免费网站| 亚洲字幕在线观看| 免费看小12萝裸体视频国产| www.xxxx.com日本免费| 久久亚洲AV无码精品色午夜麻豆| 国产91免费在线观看| 免费看黄福利app导航看一下黄色录像| 国产美女亚洲精品久久久综合| 久久99国产乱子伦精品免费| 亚洲午夜精品一区二区麻豆| 国产a v无码专区亚洲av| 2021在线观看视频精品免费| 久久国产亚洲精品| 黑人大战亚洲人精品一区 | 久久99热精品免费观看动漫| 亚洲中文字幕无码中文| 亚洲精品中文字幕乱码三区|