1.xml http

xml(瞭解)
    xml介紹
        可擴展標記語言,相似html
        xml的標籤能夠自定義
        宗旨:存儲數據
        xml的做用:
            1.交換數據--不一樣語言之間
            2.配置文件--項目開發和框架最多見的☆
    書寫規範
        xml必須有根元素(只有一個)
        xml標籤必須有關閉標籤
        xml標籤對大小寫敏感
        xml的屬性必須加引號
        特殊字符必須轉義 > < &
        空格/回車/製表符在xml中都是文本節點
        xml必須正確地嵌套
        咱們將符合上述書寫規則的XML叫格式良好的XML文檔
    xml的組成
        聲明:
            做用:告訴計算機我是一個xml文件、
            格式:
                <?xml version='1.0' encoding='utf-8'?>
            注意:
                必須是xml文檔第一行
                必須頂格寫
        元素:
            格式:    
                <xxx></xxx>
                <xxx/>
            注意:    
                xml元素必須遵循如下命名規則:
                    名稱能夠含字母、數字以及其餘的字符
                    名稱不能以數字或者標點符號開始
                    名稱不能以字符"xml"(或者XML、Xml)開始
                    名稱不能包含空格
                    可以使用任何名稱,沒有保留的字詞
        屬性:
            格式:
                <xxx key='value'/>
            注意:
                屬性值必須用引號
        註釋:
            和html同樣
            <!-- 
                
            -->
        CDATA:
            在頁面原樣輸出
            格式:
                <![CDATA[
                    原樣輸出的內容
                ]]>
    xml的約束:
        約束的做用:
            規定xml文檔中能夠出現哪些元素和屬性,且規定了他們出場順序了、
        約束的分類:
            DTD約束:struts hibernate
            SCHEMA約束:spring
        DTD約束:
            DTD和xml的關聯:
                三種:
                    內部關聯:
                        格式:<!DOCTYPE 根元素 [語法]>
                    外部關聯--系統關聯:
                        格式:在xml中寫法
                            <!DOCTYPE 根元素 SYSTEM "dtd的路徑">
                    外部關聯--公共關聯
                        格式:在xml中寫法
                            <!DOCTYPE 根元素 PUBLIC  "DTD名稱" "dtd的路徑">
                    注意:dtd文件的後綴名爲.dtd
            dtd的組成:
                元素:    
                    格式1:<!ELEMENT 元素名稱 (內容)>
                    格式2:<!ELEMENT 元素名稱 類別>
                    類別:
                        #PCDATA 元素的文本節點爲字符串,不能出現元素 用的時候通常用()引發來
                    符號:
                        *:出現的次數>=0
                        +:出現的次數>=1
                        ?:出現的次數0|1
                        |:或者
                        ():分組
                        ,:順序
                屬性:
                    格式:
                        <!ATTLIST 元素名稱 屬性名稱 屬性類型 默認值>
                    屬性的類型:
                        ID:惟一
                        CDATA:字符串
                    默認值:
                        #RUQUIRED:屬性必須出現
                        #IMPLIED:屬性可選出現
        SCHEMA約束:
            一個xml能夠出現多個schema約束,可是一個一個xml只能出現一個dtd約束
            後綴名.xsd
                a.xsd  table  width  height 
                b.xsd  table  row    col
                
            在一個xml文檔中若出現以上狀況,能夠 經過名稱空間解決。
            名稱空間的寫法:
                xmlns='aaa'    --指的是a.xsd
                xmlns:別名='bbb'    --指的是b.xsd
                例如:
                    xmlns:b='bbb'
                <table> 表明來自a.xsd文件中
                <b:table> 表明的是來自b.xsd文件
                注意:    
                    沒有別名的名稱空間只能出現一個。
                做用:肯定元素的約束來自哪一個約束文檔
            
            和xml文件的關聯:
                1.編寫xsd文件。 xsd文件本質也是一個xml文件,只是後綴名爲.xsd
                    targetNamespace="http://www.example.org/b1" --給本身的約束文件起個名稱,方便xml文件使用。
                    注意:    
                        名稱能夠自定義
                        建議使用惟一的,域名/自定義的內容
                        targetNamespace="http://www.example.com/taotao" 
                    再次肯定根元素是哪一個
                2.根據xsd編寫xml
                    首先寫根元素
                    而後添加約束
    xml的解析:
        經常使用的解析方式:
            DOM:一次性將xml文檔加載到內存中,造成一棵樹,能夠對節點進行crud操做
            SAX:逐行解析。只使用於R操做。查詢效率高
        經常使用的解析技術:
            JAXP(SUN) JDOM DOM4J pull xstream
        重點:dom4j的查詢操做
        使用步驟:
            1.導入jar包(解壓zip包 在項目中導入dom4j-1.6.1.jar)
            2.xml讀取到內存
                SAXReader reader=new SAXReader();
                Dodument doc=reader.read(xml文件路徑);
            3.先獲取根節點
                Element rootEle=doc.getRootElement();
            4.經過根節點獲取其餘的節點
                經常使用的方法:
                    List<Element> bookList=rootEle.elements();
                    遍歷list獲取到每個bookEle
                        String value=bookEle.attributeValue("category");
                        String text=booEle.elementText("author");
                    獲取子元素
                        Element title=bookEle.element("title");
                擴展方法(瞭解)
                    Iterator<Element> i=rootEle.elementIterator(); --獲取的每個子節點
                    獲取其餘的節點:
                        屬性:String value=book.attribure("category").getValue();
                        文本:String text=book.element("title").getText();
    xpath查詢操做
        使用步驟:
            1.導入jar包 (dom4j的jar包和jaxme-api-0.3.jar)
            2.獲取document
                Dodument doc=new SAXReader().read(xml路徑);
            3.能夠經過匹配表達式獲取其餘節點
                經常使用方法:
                    list selectNodes(匹配表達式):返回多個
                    element selectSingleNode(匹配表達式):返回第一個
        
        
tomcat(☆)
    web的相關概念:
        web:
            單詞:網絡資源
            web資源分類:
                靜態的web資源:內容不發生改變的資源
                動態的web資源:內容可能發生改變的資源
            資源的開發技術:
                靜態的開發技術:html css
                動態的開發技術:servlet jsp 
        軟件的架構:
            c/s:客戶端和服務器 例如:qq feiq
            b/s:瀏覽器和服務器 例如:網頁遊戲 網頁qq 
            
        web通訊基於請求響應機制。
        
    常見web服務器:
        服務器:硬件服務器和軟件服務器
        常見的web服務器:
            服務器名稱        公司        特色
            weblogic       oracle    大型收費web服務器,支持javaee全部規範
            websphere        IBM        大型收費web服務器,支持javaee全部規範
            tomcat            apache    中小型免費web服務器,支持servlet和jsp規範
        
    下載:apache
    安裝:解壓zip文件
    運行:D:\apache-tomcat-7.0.77\bin\startup.bat 雙擊
    測試:localhost:8080 瀏覽器出現湯姆貓
    常見問題:
        JAVA_HOME配置
        端口衝突:
          a)
            修改tomcat安裝目錄下conf文件夾中server.xml
            <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443" useBodyEncodingForURI="true" IEncoding="utf-8" URIEncoding="UTF-8"/>
            有時候,會把端口改爲80
          b)
            在cmd打開的窗口中輸入 netstat -aov
    關閉:
        方式1:關閉cmd窗口
        方式2:執行命令 shutdown.bat  
        方式3:ctrl+c 
        
    tomcat目錄結構:
        bin:存放可執行程序的目錄
        conf:存放配置文件的目錄
        lib:存放tomcat運行和項目運行所需的jar包
        logs:存放日誌文件的目錄,主要查看catalina
        temp:臨時文件
        webapps: ☆項目存放的目錄
        work:☆jsp運行時產生的java文件和字節碼文件
        
    web項目目錄結構:
        myweb(目錄)
            |
            |---WEB-INF(目錄:經過瀏覽器訪問不到,可是能夠經過java程序訪問到。)
            |      |
            |      |--lib(目錄:存放項目所用的jar包)
            |      |--classes(目錄:存放java文件對應的class文件)
            |      |--web.xml(文件,項目的核心配置文件)
            |
            |---html js css
            |
            
    web項目部署(發佈項目):也叫虛擬目錄映射
        方式1.將項目放在tomcat/webapps下便可(最經常使用)
        
        方式2.修改tomcat/conf/server.xml 在125行左右 host標籤下,添加以下代碼(不推薦)
            <Context path="/項目名" docBase="項目的路徑"/>
            例如:    
                <Context path="/my" docBase="d:/myweb"/>
            訪問路徑:
                localhost:8080/項目名/資源
                例如:localhost:8080/my/html/1.html
                
        方式3.在tomcat/conf/catalina/localhost下新建一個xml文件,文件的名稱即爲項目名稱
            先寫xml文件,添加下面的代碼
                <Context docBase="項目的路徑"/>
                例如:    
                    <Context docBase="d:/myweb"/>
                    文件名稱爲m.xml
                訪問的路徑:
                    localhost:8080/m/html/1.html
    tomcat和eclipse整合
    
    war包:
        特色:tomcat能夠自動解壓war包
        後綴名:.war包
        方式1:經過eclipse
        方式2:進入項目目錄,選擇全部文件,添加到壓縮文件,選擇zip格式,將後綴名改爲.war包
        方式3:在cmd中進入項目目錄,運行 jar -cvf 名稱 .war */
    
http(理解)
    超文本傳輸協議。
    http協議的默認端口:80
    http是一個無狀態的協議。
    請求:
        瀏覽器發送到服務器
        組成部分:請求行 請求頭 請求體
        請求行:請求信息的第一行
            格式:請求方式  請求的資源路徑  協議/版本
            例如:GET/javaee_day08/1.html HTTP/1.1
        請求頭:
            格式:key:value
            重點:
                Cookie 
                Referer(防盜鏈)
                IF-Modified-Since Accept-Encoding
        請求體:和請求頭以前有一個空行
            只有post請求才有請求體
            get:localhost/web?username=zhangsan&password=1234
            post:localhost/web    
                請求體中就會出現:username=zhangsan&password=1234
                
    響應:
        服務器返回瀏覽器
        組成部分:響應行  響應頭  響應體
        響應行:
            響應信息第一行
            格式:協議/版本  狀態碼  狀態碼的說明
            例如:HTTP/1.1 200 OK
            狀態碼:
                1xx:正在處理
                2xx:響應成功
                3xx:還需進一步處理
                    常見的3xx:
                        302:跳轉
                        304:沒有修改,讀緩存
                4xx:客戶操做錯誤
                    常見的404:
                5xx:服務器錯誤
                    常見的500(代碼錯誤)
        響應頭:
            格式:key:value
            重點:
                Set-Cookie
                Location:跳轉方向
                Content-Type
                Refresh:刷新
                Content-Disposition:上傳下載
        響應體:響應體和響應頭之間有一行空行
                就是頁面要顯示的內容
        
        
        
        
相關文章
相關標籤/搜索