Day46 Servlet-1 tomcat服務器以及web.xml

Servlet學習大綱:

Tomcat服務器中運行的是處理瀏覽器請求的代碼。
實現技術:
Servlet
學習內容:
第一個Servlet程序
myEclipse集成Tomcat
Servlet的運行原理
web.xml講解
Servlet的生命週期
Http協議
Request對象
Response對象
中文亂碼問題解決
請求轉發和重定向
Cookie和Session
ServletConfig和ServletContext對象

瀏覽器和服務器交互模式(B/S)

前端知識:
        使用HTML文檔將數據進行有效的組織起來,然後使用css和js以及jQuery讓文檔可以更加的美觀並和
    用戶之間可以進行交互。
    問題:
        問題1:
              在本地編寫好HTML文檔後,使用瀏覽器直接打開。並且在編寫時,HTML文檔的數據是直接寫死的。無法動態的變更。
        如果要改變數據,必須修改HTML源碼
        要求:
            HTML文檔應該存儲在運行商的電腦中。HTML的中的數據需要動態的更新。    
        解決:
            使用瀏覽器和服務器交互模式(B/S模式)
            特點:
                URL:統一資源定位符
                HTTP:超文本傳輸協議
                HTML:超文本標記語言。
        使用:
            主流服務器:tomcat服務器。 web service等   
        開發工具:
            myEclipse           
        jdk版本:
            1.7版本
        數據庫:

第一個Servlet程序

工具準備:

第一個Servlet程序:
    1 安裝myeclipse開發工具
    2 安裝Tomcat服務器
        驗證安裝:
            雙加bin目錄下的startup.bat文件,如果命令窗口正常顯示則沒有問題
            閃退問題解決:
                https://jingyan.baidu.com/article/9f7e7ec0be98b56f281554e9.html
    3 創建並運行第一個servlet程序
        1 在myeclipse中創建web project
            注意:選擇級j2EE5.0 jdk版本選擇1.7
        2 在src下創建包com.bjsxt.servlet
            在包下創建一個繼承了HttpServlet的java類
            覆寫service方法
            清空service方法中的內容。
            寫:
                //告訴瀏覽器響應的內容格式
                resp.setContentType("text/html");
        //輸出到瀏覽器
        resp.getWriter().write("<u>this is my first servlet.</u>");
        //輸出到控制檯
        System.out.println("這是我的第一個Servlet程序");
3 在webRoot下的web-inf文件夾下的web.xml中配置servlet
    <!-- 配置Servlet -->
    <!-- 配置servlet路徑 -->
    <servlet>
        <servlet-name>first</servlet-name>
        <servlet-class>com.bjsxt.servlet.MyServlet</servlet-class>
    </servlet>
    <!--配置Servlet的訪問路徑-->
    <servlet-mapping>
        <servlet-name>first</servlet-name>
        <url-pattern>/f</url-pattern>
    </servlet-mapping>
4 在Tomcat的webapps目錄下創建一個文件夾,名字爲myFirst
    將myeclipse工作空間中剛纔創建的項目的webRoot目錄先的東西全部複製到此文件夾中
5 啓動tomcat服務器
6 在瀏覽器中輸入:http://localhost:8080/myFirst/f  訪問即
------

知識點:

知識點:
    1  web poject目錄結構介紹
        src:                存儲java源代碼的位置
        src和webRoot之間:  項目相關的jar包
        webRoot:            存儲靜態資源和jsp文件
        WEB-INF:            存儲項目的編譯文件和jar包的文件夾 以及web.xml配置文件
        lib文件夾:         存儲項目導入的jar包的位置,例如 :jabc.jar2 tomcat目錄結構介紹:
        bin目錄:      tomcat服務器的程序入口 startup.bat
        conf目錄:     存錯了tomcat服務器啓動所需的配置信息
                    主要的 server.xml和web.xml  
        lib目錄:      tomcat自帶的開發先關的jar包
        logs目錄:     存儲的是tomcat服務器運行期間相關的日誌信息
        temp目錄:     緩存目錄
        webapps目錄:  存儲了tomcat服務器運行的web項目
        work目錄:     存儲的是jsp的編譯文件
    3 tomcat和瀏覽器的交互流程:
        http://localhost:8080/a/f
        localhost:  服務器所在的電腦的ip地址,如果服務器和瀏覽器在同一臺電腦寫localhost即可。
        8080:   tomcat服務器的端口號

        a:      告訴服務器要請求的web項目。服務器會在webapps目錄下查找一個叫“a”的文件夾或者壓縮包(.war)
                如果找到了則繼續執行,如果未找到則直接返回404給瀏覽器----(虛擬項目名)

        f:      要執行的servlet的別名。tomcat服務器會根據此別名查找項目下的web.xml文件。然後執行f映射的servlet文件。
                注意:
                    提升安全級別。方便程序員使用。



    注意:
        IP+端口號可以在網絡中唯一的定位一個應用程序。但是因爲難於記憶,所以
        使用網址的形式提供給普通用戶。
    注意2:
        服務器開啓後不要關閉。
    總結:
        最簡單的servlet開發流程
            第一步
                創建一個繼承了HttpServlet的java類,並覆寫service方法。
                在service方法中書寫業務處理代碼
            第二步:
                在web.xml中配置servlet
            第三步:
                將寫好的項目webRoot下的內容複製到tomcat下的webapps下的虛擬項目中
            第四步:
                    啓動服務器,訪問即可。
                    url格式:IP:端口號/虛擬項目名/servlet別名?請求數據

myeclipse集成tomcat

Myeclipse集成Tomcat:
    1. myEclipse集成Tomcat
        https://jingyan.baidu.com/article/2a13832898c497074a134fdc.html
    2.myEclipese項目部署(冷部署)
        https://jingyan.baidu.com/article/a65957f4894faf24e67f9bbe.html
        注意:
                    選擇的項目部署到服務器成功後,默認在tomcat的webapps目錄下
                新建文件夾的名字爲myeclipse的項目名
        注意2:
            在myeclipse中保存代碼的時候會重新編譯並重新複製到tomcat中

    3發佈
        在myeclipse的servers窗口中選擇集成好的tomcat然後點擊啓動按鈕即可。
        注意:
            如果servlet文件發生了更改,需要重新啓動tomcat服務器才能看到效果。
            tomcat真正執行的servlet文件是從虛擬項目中加載到內存中的文件。
    4 自定義部署項目名:
        選中要部署的項目單擊右鍵選擇properties--->myEclipse-->project Facts-->web-->更改 web-Root的內容(注意保留/)
        然後部署項目即可。

Sevlet的web.xml配置學習

Servlet的web.xml配置文件學習:
    web.xml文件的作用:
        tomcat會調用此文件用來進行查找要執行的Servlet。
    使用:
        第一種配置方式:
            <servlet>
            <servlet-name>my</servlet-name>
            <servlet-class>com.bjsxt.servlet.MyServlet</servlet-class>
            </servlet>
            <servlet-mapping>
            <servlet-name>my</servlet-name>
            <url-pattern>/m</url-pattern>
            </servlet-mapping>
            作用:給servlet配置一個專門的別名,不能通用,訪問此servlet必須通過此別名。
        第二種配置方式:
            <servlet>
            <servlet-name>my2</servlet-name>
            <servlet-class>com.bjsxt.servlet.MyServlet2</servlet-class>
            </servlet>
            <servlet-mapping>
            <servlet-name>my2</servlet-name>
            <url-pattern>*.do</url-pattern>
            </servlet-mapping>
            作用:給servlet配置一個通配性較高的servlet,格式 *.do
        第三種配置方式:
            <servlet>
                <servlet-name>my3</servlet-name>
                <servlet-class>com.bjsxt.servlet.MyServlet3</servlet-class>
            </servlet>
            <servlet-mapping>
                <servlet-name>my3</servlet-name>
                <url-pattern>/a/*</url-pattern>
            </servlet-mapping>  
            作用:給servlet配置一個按照模塊訪問的url-pattern
    web.xml的加載時機:
            服務器啓動的時候即完成所有部署的項目的web.xml的加載。
    注意:
        1. url-pattern不可以重複,一個url-pattern只能對應一個servlet。
        否則服務器啓動報錯:Caused by: java.lang.IllegalArgumentException: The servlets named [my] and [my2] are both mapped to the url-pattern [/m] which is not permitted
        2  一個Servlet可以對象好幾個url-pattern

Servlet的生命週期

Servlet的生命週期:
    1 複寫init()方法:
        init()方法只會被執行一次,Servlet第一次被調用的時候執行
        先於service()方法執行
    2 複寫destory()方法:
        此方法在服務器關閉的時候會執行,說明Servlet是服務器關閉的時候才被銷燬的。

Servlet的生命週期1:
    從第一次調用到服務器關閉。
Servlet的生命週期2:
    如果在web.xml中配置了<load-on-startup>1</load-on-startup>,生命週期從服務器開啓到服務器關閉

小結

瀏覽器和服務器交互模式
第一個Servlet程序
myeclipse集成tomcat
Sevlet的web.xml配置學習
Servlet的生命週期

小知識點:

servlet  tomcat 
1.tomcat:
Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。
2.從servlet開始,使用myeclipse2014  tomcat   MySQL   navicat
3.使用Jdk1.7
4.myeclipse->project->clean…到底有什麼用:
其實主要作用就是把編譯好的class等文件刪除,激活eclipse的自動編譯。
解決的問題就是,有時候你把代碼改了,但因爲一些未知的原因,eclipse的自動編譯沒有成功,導致運行結果不正常。
當你的工程出現一些莫名其妙的錯誤時(當然不是語法錯誤),用一下這個功能,效果不錯的
5.因爲安裝了oracle XE 版本,其中有一個服務佔用了8080端口,所以把OracleServiceXE、OracleXETNSListener服務禁用並關閉,若用oracle 11g 企業版 就不會出現這個問題。
6.xml是處理虛擬目錄的別名和真正的包的全限定路徑之間的映射關係。讓自己的web項目安全
7//告訴瀏覽器響應的內容格式
      res.setContentType("text/html;charset=utf-8");
8、servlet:
Servlet(Server Applet)是Java Servlet的簡稱,稱爲小服務程序或服務連接器,用Java編寫的服務器端程序,主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。
狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般情況下,人們將Servlet理解爲後者。Servlet運行於支持Java的應用服務器中。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基於HTTP協議的Web服務器。
Servlet 的命名可以看出 sun 命名的特點,如 Applet 表示小應用程序;Scriptlet = Script + Applet,表示小腳本程序;同樣 Servlet = Service + Applet,表示小服務程序。

9、靜態網頁與動態網頁:

所謂的動態網頁,是指跟靜態網頁相對的一種網頁編程技術。靜態網頁,隨着html代碼的生成,頁面的內容和顯示效果就基本上不會發生變化了——除非你修改頁面代碼。而動態網頁則不然,頁面代碼雖然沒有變,但是顯示的內容卻是可以隨着時間、環境或者數據庫操作的結果而發生改變的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章