<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 理解B/S架構 B/S 是從 90 年代的客戶端 / 服務器端發展而來, 共同點都是由一個(或一組)服務器來服務多個客戶端。 差別在于:首先,C/S 結構的客戶端可能是由不同語言編寫的,例如 VB,Delphi, PowerBuilder 等, B/S 結構中瀏覽器成為了一個通用的客戶端, 程序以 Web 的方式呈現,不需要安裝,服務器端的升級就意味著所有客戶端的升級,這和 C/S 相比是個翻天覆地的變化。 其次 B/S 的訪問協議也標準化為 HTTP(s) ,而不是原來各種各樣的私有協議。 最后 B/S 結構中的服務器面向全球用戶訪問,而不像 C/S 那樣僅僅是局域網, 所以壓力更大, 挑戰更大。 ## Web 頁面是怎么組成的 簡單來說就是 HTML + CSS + Javascript , 我們看到的 Web 界面就是由這三者組成。 HTML 負責結構, CSS 負責展現, 而 Javascript 負責行為。 我們說的前端開發也主要是做這一塊, 對于前端工程師,需要能理解 DOM 模型,以及如何通過 javascript(例如 JQuery 等框架) 來操作 DOM 模型。 ## 瀏覽器與服務器如何打交道的 通過HTTP協議, HTTP 說穿了就是瀏覽器和服務器聊天是的一種約定, 這個約定確保雙方互相理解。 (1) GET 和 POST 。 GET 從服務器端獲取數據, POST 向服務器端發送數據 (由此引出圖片上傳問題) (2) HTTP 是個沒有狀態的協議,需要通過額外的機制來維持狀態(例如登錄狀態), 常用的方法就是 cookie。 (3) 理解 HTTP 狀態碼 (4) 理解 同步 vs 異步 (由此引出 AJAX,以及 JQuery 等框架) ## URL與代碼的映射 理解 url 和 代碼之間的關聯, 例如 www.xxx.com?action=login 這樣的 url 是怎么和后端的業務代碼關聯起來的? 這樣的規則是在哪里定義的? 用代碼、注解還是配置文件? 后端的業務代碼該如何組織? 相信現在不會有人把業務邏輯都寫到 Servlet 當中了, 所以需要很多 MVC 框架像 Struts , SpringMVC 來組織代碼,讓系統清晰易懂。 ## 數據的驗證、轉換和綁定 如何保證瀏覽器發過來的數據是符合要求的?比如不能為空,不能超過8個字符,兩個密碼必須相等,出錯了得給出錯誤提示 瀏覽器發過來的數據都是形如 username=liuxin&password=123456 這樣簡單的文本, 但是后臺程序卻有著豐富的數據類型,什么 String, Date ,Integer 等等。 所以需要把文本變成指定語言的類型。 類型轉換以后, 后端的業務代碼怎么才能有效的使用呢? 最簡單的就是弄一個 key : value 這個樣的 Map 出來, 業務代碼直接用 map.get(key) 即可。 高級一點的可以把頁面發來的數據直接綁定到對象的屬性上, 并且支持數組,嵌套等復雜的結構。 例如 user.name=liuxin&user.password=123456 可以綁定到一個叫 User 的對象, 其中有兩個屬性 userName 和 password。 ## Web 安全 如何防止黑客利用SQL注入、跨站腳本攻擊,跨站請求偽早等手段來攻擊系統 ## 數據庫訪問 對于簡單的應用, 直接寫點 JDBC 就夠用了,只需要掌握 Connection, Statement , Resultset 這三個基礎。 復雜點的需要用 O/R Mapping 框架來搞定,例如 Hibernate, MyBatis ,還有 RoR 的 ActiveRecord。 這其中比較棘手的就是表之間的關聯, 就是所謂的一對多, 一對一, 多對多這樣的關系, 如何在面向對象的世界里描述。 ## 用什么技術來生成Web 頁面 能不能直接用 Servlet 的 PrintWriter 直接輸出 HTML ? 當然可以,只是以后就沒有人看懂了。 現在用來創建 Web 頁面的技術多如牛毛:例如 JSP, Velocity, Freemaker, Groovy 等等, 他們都有一個共同點: 模板技術。 說白了就是有一個 HTML 的模板, 里邊可以嵌入代碼, 這個模板在運行時(例如在 Tomcat 當中)就可以根據輸入的不同而生成不同內容的 Web 界面了。 無論哪種模板,都需要面對一個重要問題:如何展示從業務邏輯層發送來的數據? 這一步驟其實和第 5 步中的數據綁定有密切關系。因為這一步需要確定諸如 user.name , user.password 這樣的字段名稱。 ## 如何把對象變成XML或者JSON字符串 由于 AJAX 以及手機端的存在,對于一個 URL 的請求, 他們要求的返回值通常不是 HTML 頁面, 而是 XML 或者 JSON 數據, 此時需要有框架把對象轉化成相應的字符串。 接下來需要學習的就是像高并發,緩存,搜索,分布式等高級的內容了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看