javaWeb基礎知識
- javaWeb的虛拟目錄
虛拟目錄 是指在開發中用到的目錄結構層次,但這些在部署的時候有些并不真實存在;
比如在進行javaWeb項目開發的過程中,我們會用到的WebRoot : 是虛拟目錄 (存放jsp頁面)
和 src : 虛拟目錄 ,這些目錄名稱在javaWeb項目部署到web伺服器上的時候其實根本不存在,是以稱為虛拟目錄
Web項目部署到Tomcat後不存在 ,是以叫虛拟目錄。而實際通路過程中是按照實際路徑來通路 項目的
classpath: 代表WEB-INF/classes目錄下的
通路位址要按照部署web項目的實際路徑來進行通路
- HTTP常見錯誤碼:
404:伺服器已連接配接啟動,位址欄輸入錯誤,或者請求資源不存在
200:請求成功,正常獲得伺服器的傳回-OK
500:伺服器已連接配接啟動,請求資源存在,資源已被解析,但解析報錯
302:重定向的傳回狀态碼:—-sendRedirect();-屬于正常狀态碼
一般上傳回碼的定義
2開頭:成功
3開頭:重定向
4開頭:請求錯誤
5開頭:伺服器錯誤
- Request、Session、Application生命周期分析

Request:每次請求都會生成不同的request,
Response:每次響應都會生成不同的response,
Application:可以實作跨機通路,主要伺服器不停止,所有使用者都可以通路到
Session:與每個使用者的sessionId有關,有30分鐘的失效期(伺服器停止session會序列化到伺服器,伺服器重新開機session會反序列化到記憶體中,加載原來的session資料 是以Session的生命周期與伺服器停止不停止沒有關系)
Application和Session的生命周期有交集關系,不是并集關系
- *JDBC、JDBCTemplate、MyBatis、Hiberante 比較與分析
JDBC:java連接配接資料庫的API,可以為多種關系資料庫提供統一通路,它由一組用java語言編寫的類和接口組成,JDBC提供了一種基準,以此可以建構更進階的工具和接口,是資料庫開發人員能夠編寫資料庫應用程式
優點:
運作期快捷高效
缺點:
編輯器代碼量大,繁瑣異常處理,不支援資料庫跨平台
JDBCTemplate:
針對資料查詢提供了多個重載的模闆方法,你可以根據需要選用不同的模闆方法,如果你的查詢很簡單,僅僅是傳入相應的sql或相關參數,然後取得一個單一的結果,那麼你可以選擇一組便利的模闆方法
優點:運作期高效,内嵌在Spring架構中,支援基于AOP的聲明式事務
缺點:必須依賴于Spring架構結合在一起使用,不支援資料庫的跨平台、預設沒有緩存
MyBatis(中量級的封裝 比JDBCTemplate封裝的更好 優勢明顯) 使用最廣
前身就是Ibatis ,apache的開源項目
最主要的優點:動态、複雜的SQL建構 Dynamic
MyBatis主要完成兩件事
1.根據JDBC規範建立與資料庫的連接配接
2.通過Annotation/XML+JAVA反射技術,實作java對象與關系資料庫之間的互相轉化。resultMapClass
MyBatis優缺點
優點:高效,支援動态、複雜SQL的建構,支援與Spring整合和Aop事務、結果集也做了輕量級的Mapper封裝,支援緩存(支援第三方緩存架構)
缺點:不支援資料庫跨平台,還是需要自己寫SQL語句
資料庫的跨平台和資料庫的性能不可能同時滿足,正因為不支援資料庫跨平台,sql語句靠自己寫,是以寫起來比較靈活
Hibernate(Jboss公司)
Jboss 三大産品 :Jboss容器 、Hibernate、JPPM(工作流架構)
最大優勢:根據底層資料庫 可以自動生成SQL語句,在損害性能的基礎之上來實作跨平台移植
是一個開放源代碼的對象映射架構,它對jdbc進行了非常輕量級的對象封裝,使得java程式員可以随心所欲的使用對象程式設計思想來操縱資料庫,Hibernate可以應用在任何使用jdbc的場合,既可以在java的用戶端程式使用,也可以在Servlet/jsp的web應用中使用
Hibernate核心接口一個6個
Session、session多例
SessionFactory、通過Configuration生成 –單例
Transaction、事務
Query、基于HQL語言 使得查詢語言面向對象化
Criteria 主要基于面向對象的查詢語言(真正的)–開發人員比較生疏,使用都比hql要低
Configuration 加載hibernate配置檔案 加載完畢傳回一個對象
通過這些接口不僅可以對持久化對象進行存取,還能進行事務控制
Criteria是一種比hql更面向對象的查詢方式,它可使用Criterion和Projection設定查詢條件,可以設定FetchMode(聯合查詢抓取的模式)設定排序方式,還可以設定FlushMode(沖刷Session的方式)和LockMode
JTA:分布式事務(java事務API)
它和他的同胞java事務服務(JTS)為javaEE平台提供了分布式事務服務
以上架構同樣都支援分布式事務