第5天:Servlet相關知識(一)

來源:互聯網
上載者:User

Servlet相關知識1
    1.什麼是Servlet?能做什嗎?
        Sun公司制定的用於擴充web伺服器功能的組件規範(早期CGI:Common Gateway Interface)
        擴充:
            web伺服器本身沒有計算能力,也就是說,不能處理動態資源的請求。servlet可以處理動態資源的請求。
        組件規範:
            組件是符合規範,完成一定功能,並可以單獨部署的軟體模組。一般不能獨立運行,需要依賴容器才能運行。
            JSR:Java Specification request
            JCP:Java Communication process
        容器:
            是一種程式,提供組件的運行環境,並且管理組件的運行周期。
        Servlet容器:
            提供Servlet啟動並執行環境,並且管理Servlet的運行周期。一般常見的web伺服器,比如Tomcat,除了是
            一個servlet容器以外,同時也是一個web伺服器。
        能做什嗎?
            servlet只能採用java語言開發,servlet可以作java類能做的所有的事件。
    2.如何開發一個Servlet?
        step1:  寫一個java類,實現Servlet介面或者繼承HttpServlet類。
        step2:  編譯(依賴servlet api)
        step3:  打包(定義一個特定的目錄結構,將相應的位元組碼,設定檔,相關的jar檔案放到對應的目錄結構裡)
                appname(名稱任意,一般稱為應用程式名稱)
                    WEB-INF(必須以該名稱命名)
                        classes(放.class檔案)
                        lib(可選,放.jar檔案)
                        web.xml(部署描述檔案)
        step4:  部署(將step3中的結果放到特定的目錄,對於tomcat是webapps)
        step5:  啟動伺服器
                windows ->  startup.bat ->  shutdown.bat
                linux   ->  startup.sh  ->  shutdown.sh
                啟動成功:http://localhost:8080/
        step6:  訪問servlet
                http://localhsot:8080/appname/url-pattern
    3.Servlet是如何啟動並執行?
        假如我們在瀏覽器欄輸入了如下地址:http://ip:port/appname/servletname
        step1:  瀏覽器依據ip,port串連伺服器。
        step2:  瀏覽器將請求資料按http協議打成一個http請求資料包(包含了appname/servletname)
        step3:  伺服器當中的一個負責通訊的模組(一般稱為servlet引擎)會建立HttpServletRequest的一個執行個體
                (HttpServletRequest實際上是一個介面,由伺服器提供者來實現),該執行個體包含了請求資料包中的
                資料。另外,還建立了一個HttpServletResponse的一個執行個體。
        step4:  伺服器依據appname/url-pattern找到web.xml依據資訊找到對應的servlet類名。會查看該servlet
                有沒有對應的執行個體,如果沒有,則建立執行個體,有的話,則不建立,使用現成的執行個體。接下來,調用service()
                方法,service方法裡面的代碼可以通過HttpServletRequest提供的方法來獲得請求中的資料,並且,也
                可以將處理之後的結果通過HttpServletRequest提供的方法設定返回的結果。
        step5:  Servlet引擎會從HttpServletResponse擷取資料,產生http響應資料包,發送給瀏覽器。
    4.使用MyEclipse開發servlet
        (1) 安裝MyEclipse
        (2) 開發步驟
            step1:  建立一個web project
            step2:  在src下面編寫java類
            step3:  在web.xml中配置servlet
            step4:  部署
                    a.讓MyEclipse管理Tomcat
                        window -> preferences -> MyEclipse -> Servers -> Tomcat -> Tomcat 6.X
                    b.部署
            step5:  訪問
                    http://ip:port/appname/url-pattern
    5.web.xml檔案內容
        <?xml version="1.0" encoding="UTF-8"?>
        <!-- 檔案的第一行一定是上面的資訊,說明xml檔案的版本和字元編碼 -->
        <!-- 下面用來配置web工程 -->
        <web-app version="2.4"
                xmlns="http://java.sun.com/xml/ns/j2ee"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
                http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <servlet>
            <description>HelloServlet</description>
            <display-name>HelloServlet</display-name>
            <!-- 一般是定義Servlet時的名字 -->
            <servlet-name>HelloServlet</servlet-name>
            <!-- 該Servlet的全名 -->
            <servlet-class>ttwork.servlet.HelloServlet</servlet-class>
        </servlet>
        <servlet>
            ...
        </servlet>

        <servlet-mapping>
            <!-- 和上面Servlet使用的名字一樣 -->
            <servlet-name>HelloServlet</servlet-name>
            <!-- 訪問Servlet時的相對路徑 -->
            <url-pattern>/servlet/HelloServlet</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            ...
        </servlet-mapping>

        <error-page>
            <error-code>500</error-code>
            <location>/error.html</location>
        </error-page>

        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
        </web-app>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.