Java菜鳥學習日記12

項目團隊的構成
  • 前段開發工程師
    • 把設計(效果)圖切成 HTML+CSS+image+js...
    • 使用前段框架(Vue.js、Angular、React)開發前端應用(手機、桌面)
      • 需要服務端提供接口
  • 美術設計師(美工)
    • 把產品經理/項目經理設計的原型 轉變成 效果圖(App、桌面網站、系統)
    • 設計宣傳資料(產品、公司、項目)
    • 雜事(名片、PPT...)
  • 項目經理
    • 管理項目需求,與客戶及項目團隊溝通,制定項目計劃、監管項目進度...
    • 一個項目經理可能同時管理多個項目
  • 產品經理
    • 自己研發產品的公司通常有產品經理,規劃、設計產品(面向什麼用戶、滿足什麼需要、如何在競爭中勝出、如何盈利)
    • 互聯網公司一般都有產品經理
  • 部門經理
    • 團隊組建(面試、招聘、優化)、培訓、日常行政管理(請假審批等)
    • 績效考覈
  • 測試工程師
    • 找BUG、管理BUG
    • 寫文檔(測試文檔,產品說明書<使用手冊、幫助文檔>)
絕對路徑和相對路徑
  • 絕對路徑:是以 / 開頭或者以協議開頭
    • 例:/api/user/login
    • http://www.baidu.com/abc
    • 主機根目錄爲固定參照點
    • 使用絕對路徑的代碼,可以在項目中隨意移動而不用修改地址
  • 相對路徑:是以 字母數字等非/開頭,或者以. .. 開頭
    • user/login
    • ../login
    • 當前目錄爲參照點
    • 使用相對路徑的代碼,移動位置時需要檢查地址是否正確
  • 在JSP中使用絕對路徑,首先要解決應用路徑(Content root)的問題
    • 獲取應用路徑可以使用代碼塊定義一個變量
<%
String basePath = request.getContextPath();
%>
<link rel="stylesheet" href="<%= basePath%>/css/index.css">

  • 使用JSTL
    • <link rel="stylesheet" href="<c:url value="/css/index.css">">
    • c:url:是一個特殊的標籤,它可以將value中的url變成包含應用路徑的絕對地址
    • 步驟
      • 導入Jar包
      • 把標籤庫tld文件都導入項目中(WEB-INF)
      • 在web.xml中配置jspl
      • 在jsp頁面上添加taglib指令

      • 實際上是命名空間聲明
      • prefix="c" 命名空間的前綴,前綴名稱可以隨意寫,越短越好
      • uri="uri":uri不是一個真實的網址,只是一個;以網址形式存在的唯一名稱
        • <c:url value>:當頁面上寫該標籤時,需要找到url標籤的解釋者。
        • 需要找url標籤的命名空間 c
        • 而c在頁面開頭由taglib指令聲明,而且它與後面的uri關聯起來、uri在jar包中有相應的聲明(tld中聲明瞭相應的標籤名,以及對應的類。)
        • 找到類之後會調用類中的渲染方法生成html
    • JSTL語法
      • 使用的是嚴格的xml語法,標籤需要閉合
        • <c:url ...../>
        • <c:when ...> .... </c:when>
    • JSTL常用的標籤大類是
      • 核心標籤:用來控制HTML的生成,提供了分支判斷、循環生成複雜HTML的功能(根據數據生成)、 還包括生成URL及跳轉
      • 格式化標籤:用來格式化數據
      • 函數:用來截取字符串等。
JNDI(Java Naming and Diectory Interface)
  • Java的名字和目錄服務的接口,JDK只定義了規範,而沒有給出具體實現。
    • 具體實現有Tomcat等應用容器實現。
  • 名字和服務的服務的目標是:
    • 通過提供字符串形式的名字即可獲得想要對象,對象已經被初始化好,初始化是通過配置文件中提供配置信息實現的。
    • 不需要程序員自己new一個對象,也不需要程序員自己給構造方法傳參,也不需要調用setter給屬性賦值
  • 它帶來的好處
    • 將對象的創建需要的信息轉移到配置文件中,從Java中脫離出來,方便之後的修改(不需要修改和編譯代碼)
  • JNDI底層有很多提供程序,可以支持創建多種對象,提供程序是可以擴展的
XML
  • 可擴展標記語言(Extensible Markup Language)
  • 標籤名可以自定義標籤標記語言
  • XML是語法嚴格的,如果語法不正確,就無法通過驗證器驗證。使用XML解析器解析數據時也會出錯
  • 因爲XML標籤是可擴展的,所以XML有文檔類型定義(DTD)語言和Schema語言兩種,幫助程序員定義新標籤
  • 既然XML可以自定義標籤,那麼如果出現A程序員定義的標籤和B程序員定義的標籤同名,怎麼解決?
    • 解決方法是:標籤都定義在命名空間中,命名空間相當於Java中的包
    • 每個XML都有一個默認命名空間,迷人命名空間不用加前綴,當引入其他命名空間的標籤時,必須加前綴
  • XML實體符號
    • SML Entities(Entity)
    • 因爲XML使用了:< > &
    • 當節點內部(標籤內容區域)需要表示< >這種語法符號時,需要寫實體代碼,而不能直接寫語法符合
      • 例:
        • <expr> a<b </expr>
        • 變成
        • <expr> a&lt;b </expr>
    • 實體符號以&開頭
    • &——>&amp;
從Servlet向JSP/Servlet傳數據
  • 使用轉發跳轉時,可以將數據放在request對象中
    • request.setAttribute("key","value");value可以是對象
  • 使用重定向時,需要將數據放在URL中
    • response.senfRedirect(".../index.jsp?errorMessage=xxxx");
    • 這種方法只能傳字符串,而且不能太長
try/with/resource
  • Java7支持新語法
  • 可與自動幫助我們調用close方法,close方法在AutoClosable這個接口中定義的
    • try(資源1;資源2;資源3;){
      • 資源3關閉
      • 資源2關閉
      • 資源3關閉
    • catch(){
    • }
WEB-INF和META-INF
  • 其中的文件或資源不能通過瀏覽器直接訪問
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章