Spring Boot情境式網站開發指南|使用Spring Data JPA、Spring Security、Spring Web Flow

    使用全Spring框架建構新一代企業級網站!

    Collecting
    US$18.11
    使用全Spring框架建構新一代企業級網站!
    本書一次蒐錄所有技能!

    如何讓網站使用者有更佳的體驗一直是歷久不衰的話題。使用Spring Web Flow框架讓使用者在預先定義好的情境裡,逐步被引導完成複雜操作,我們稱為情境式網站。

    伴隨企業資料上雲,物聯網、智慧型手機的普及,資安事件也逐年攀升;網路攻擊的頻率不再屈指可數,已經成為企業營運的日常威脅。OWASP統計的TOP 10攻擊模式提供企業資安防禦的方向,使用Spring Security框架加上簡易設定就可以築起堅實城牆。

    Spring框架是Java語言裡最熱門的框架。打造一個功能強大、資訊安全的網站,使用Spring MVC、Spring Security、Spring Data JPA,再搭配Spring Boot以簡化設定並快速布署幾乎已經是業界開發標準。

    本書介紹Spring框架模組的運作機制,書末專案實作結合Spring Web Flow以提升使用者操作體驗,完整呈現新一代企業網站的建置策略。

    Content

    • 1-1
      封面
    • 1-2
      書名頁
    • 1-3
      推薦序一
    • 1-4
      推薦序二
    • 1-5
      推薦序三
    • 1-6
    • 1-7
      目錄
    • 1-8
      範例下載頁
    • 1-9
      CH1 使用Maven管理Java專案
    • 1-10
      1.1 認識Maven的專案管理思維與架構
    • 1-11
      1.1.1 Maven的安裝和設定
    • 1-12
      1.1.2 Maven儲存庫(Repositoty)
    • 1-13
      1.2 使用Maven指令建立專案
    • 1-14
      1.2.1 使用maven-archetype-quickstart模板建立Java SE專案
    • 1-15
      1.2.2 使用maven-archetype- webapp模板建立Java Web專案
    • 1-16
      1.2.3 Maven專案的生命週期
    • 1-17
      1.3 結合Maven與Eclipse
    • 1-18
      1.3.1 Eclipse內建Maven
    • 1-19
      1.3.2 使用Eclipse以Maven建立Java SE專案
    • 1-20
      1.3.3 使用Eclipse以Maven建立Java Web專案
    • 1-21
      1.3.4 使用Eclipse匯入Maven專案
    • 1-22
      CH2 JPA與資料庫
    • 1-23
      2.1 JPA介紹
    • 1-24
      2.2 JPA基礎
    • 1-25
      2.2.1 Persistence Unit與persistence.xml
    • 1-26
      2.2.2 Persistent Context、EntityManager與Entity生命週期管理
    • 1-27
      2.2.3 第一級快取(L1 Cache)
    • 1-28
      2.2.4 EntityManager與Transaction
    • 1-29
      2.3 Entity的繼承(Inheritance)設計
    • 1-30
      2.3.1 使用SINGLE_TABLE策略
    • 1-31
      2.3.2 使用JOINED策略
    • 1-32
      2.3.3 使用TABLE_PER_CLASS策略
    • 1-33
      2.3.4 比較SINGLE_TABLE、JOINED、TABLE_PER_CLASS差異
    • 1-34
      2.4 Entity的關聯(Relationships)設計
    • 1-35
      2.4.1 使用OneToOne設計
    • 1-36
      2.4.2 使用OneToMany設計
    • 1-37
      2.4.3 使用ManyToMany設計與自定義的欄位型態
    • 1-38
      2.4.4 FetchType與CascadeType
    • 1-39
      2.5 指定主鍵(Primary Key)值
    • 1-40
      2.5.1 主鍵(Primary Key)使用單一欄位且內容為流水號
    • 1-41
      2.5.2 主鍵(Primary Key)使用複合欄位
    • 1-42
      CH3 使用JPQL查詢語言
    • 1-43
      3.1 使用JPQL基本語法
    • 1-44
      3.1.1 WHERE敘述的條件值使用字面常量(Literal)
    • 1-45
      3.1.2 ORDER BY
    • 1-46
      3.1.3 DISTINCT
    • 1-47
      3.1.4 WHERE敘述的條件值使用繫結變量(Bind Variable)
    • 1-48
      3.1.5 使用建構子敘述封裝複數欄位查詢結果
    • 1-49
      3.1.6 使用TUPLE封裝複數欄位查詢結果
    • 1-50
      3.1.7 使用具資料庫特色的SQL語句
    • 1-51
      3.2 使用JOIN
    • 1-52
      3.2.1 INNER JOIN
    • 1-53
      3.2.2 LEFT OUTER JOIN
    • 1-54
      3.2.3 FETCH JOIN
    • 1-55
      3.2.4 欄位型態為Map的Join
    • 1-56
      3.3 在WHERE敘述使用比較關鍵字
    • 1-57
      3.3.1 BETWEEN
    • 1-58
      3.3.2 IN
    • 1-59
      3.3.3 LIKE
    • 1-60
      3.3.4 NULL
    • 1-61
      3.3.5 EMPTY
    • 1-62
      3.3.6 MEMBER OF
    • 1-63
      3.4 使用聚合(Aggregation)函式
    • 1-64
      3.4.1 AVG()、COUNT()、MAX()、MIN()、SUM()
    • 1-65
      3.4.2 GROUP BY
    • 1-66
      3.5 使用子查詢(Subquery)
    • 1-67
      3.5.1 子查詢
    • 1-68
      3.5.2 EXISTS
    • 1-69
      3.5.3 ALL與ANY
    • 1-70
      3.6 使用JPQL函式
    • 1-71
      3.6.1 字串函式
    • 1-72
      3.6.2 數學函式
    • 1-73
      3.6.3 日期函式
    • 1-74
      3.6.4 資料庫內建函式
    • 1-75
      3.7 其他
    • 1-76
      3.7.1 集合物件型態的欄位處理方式
    • 1-77
      3.7.2 CASE WHEN
    • 1-78
      3.8 隱含(Implicit)的JOIN
    • 1-79
      3.9 使用UPDATE敘述
    • 1-80
      3.10 使用DELETE敘述
    • 1-81
      CH4 Criteria API入門
    • 1-82
      4.1 Criteria API簡介
    • 1-83
      4.1.1 Criteria API的使用方式
    • 1-84
      4.1.2 使用Metamodel API塑模Entity類別
    • 1-85
      4.2 使用Criteria API建立型態安全(Typesafe)的查詢
    • 1-86
      4.2.1 使用CriteriaQuery物件建立查詢
    • 1-87
      4.2.2 使用from()建立查詢基礎
    • 1-88
      4.2.3 使用join()查詢Entity間的關聯性
    • 1-89
      4.2.4 使用Expression/Path物件瀏覽查詢欄位
    • 1-90
      4.2.5 使用Expression/Predicate物件限制查詢條件
    • 1-91
      4.2.6 使用orderBy()與groupBy()管理查詢結果
    • 1-92
      4.2.7 使用TypedQuery物件執行查詢
    • 1-93
      CH5 使用Spring Data JPA讓ORM更聰明
    • 1-94
      5.1 Spring與ORM
    • 1-95
      5.2 Spring與JPA
    • 1-96
      5.2.1 設定EntityManagerFactory
    • 1-97
      5.2.2 建立Entity類別
    • 1-98
      5.2.3 開發JPA基礎的Repository/DAO類別
    • 1-99
      5.3 使用Spring Data JPA自動建立Repository物件
    • 1-100
      5.3.1 定義查詢方法
    • 1-101
      5.3.2 定義客製查詢
    • 1-102
      5.3.3 混合客製與基礎查詢
    • 1-103
      5.4 交易與傳播(Propagation)
    • 1-104
      5.4.1 使用標註類別@Transactional進行交易
    • 1-105
      5.4.2 使用交易的傳播機制
    • 1-106
      CH6 OWASP高風險資安漏洞介紹
    • 1-107
      6.1 OWASP組織與OWASP TOP 10介紹
    • 1-108
      6.2 OWASP資安工具介紹
    • 1-109
      6.2.1 WebGoat
    • 1-110
      6.2.2 WebScarab
    • 1-111
      6.3 OWASP TOP 10介紹
    • 1-112
      6.3.1 注入攻擊(Injection)
    • 1-113
      6.3.2 不當的對話管理(Broken Session Management)
    • 1-114
      6.3.3 不當的身分驗證(Broken Authentication)
    • 1-115
      6.3.4 跨站腳本攻擊(Cross-Site Scripting/XSS)
    • 1-116
      6.3.5 不當的存取控制(Broken Access Control)
    • 1-117
      6.3.6 不當的安全性設定(Security Misconfiguration)
    • 1-118
      6.3.7 暴露機敏資料(Sensitive Data Exposure)
    • 1-119
      6.3.8 對於攻擊自覺不足(Insufficient Attack Protection)
    • 1-120
      6.3.9 跨站請求偽造(Cross-Site Request Forgery, CSRF)
    • 1-121
      6.3.10 使用不安全的元件(Using Components with Known Vulnerabilities)
    • 1-122
      6.3.11 Under-protected APIs (未受防護的APIs)
    • 1-123
      6.3.12 XML外部解析器漏洞(XML External Entity, XXE)
    • 1-124
      6.3.13 不安全的反序列化漏洞(Insecure Deserialization)
    • 1-125
      6.3.14 記錄與監控不足風險(Insufficient Logging & Monitoring)
    • 1-126
      CH7 使用Spring Security建構安全的網站
    • 1-127
      7.1 Spring Security入門
    • 1-128
      7.1.1 了解Spring Security模組
    • 1-129
      7.1.2 啟用Spring Security
    • 1-130
      7.1.3 建立簡單的安全設定
    • 1-131
      7.2 選擇使用者資訊儲存機制
    • 1-132
      7.2.1 使用IN-MEMORY儲存機制驗證身分
    • 1-133
      7.2.2 使用關聯式資料表進行身份驗證
    • 1-134
      7.2.4 使用客製方式驗證使用者身分
    • 1-135
      7.3 資源請求的攔截處理
    • 1-136
      7.3.1 使用Spring Expressions Language限制資源存取
    • 1-137
      7.3.2 使用HTTPS加密通道
    • 1-138
      7.3.3 防護跨站請求偽造(cross-site request forgery, CSRF)
    • 1-139
      7.4 客製登入表單頁面
    • 1-140
      7.4.1 指定登入頁面
    • 1-141
      7.4.2 啟用記憶使用者(remember-me)功能
    • 1-142
      7.4.3 登出(logout)機制
    • 1-143
      7.5 保護JSP呈現的資訊
    • 1-144
      7.5.1 使用Spring Security的JSP標籤函式庫
    • 1-145
      CH8 使用Spring Boot簡化Spring開發
    • 1-146
      8.1 Spring Boot簡介
    • 1-147
      8.2 使用Spring Boot開發專案
    • 1-148
      8.2.1 以Spring Initializr建立Spring Boot的WAR專案
    • 1-149
      8.2.2 以啟動器(Starter)簡化專案關聯(Dependencies)
    • 1-150
      8.2.3 以自動化設定(Auto-configuration)簡化專案設定
    • 1-151
      8.2.4 啟動Spring Boot的WAR專案
    • 1-152
      8.2.5 以設定的日誌(Logging)參數輸出紀錄
    • 1-153
      8.2.6 建立Spring Boot的JAR專案並啟動
    • 1-154
      8.2.7 Spring Boot的JAR、WAR專案差別
    • 1-155
      8.3 使用Spring Boot執行器取得網站執行狀況
    • 1-156
      8.3.1 執行器(Actuator)簡介
    • 1-157
      8.3.2 啟用和設定Spring Boot執行器
    • 1-158
      8.3.3 使用Spring Boot執行器預設端點(Endpoints)
    • 1-159
      8.3.4 建構Spring Boot執行器客製端點(Endpoints)
    • 1-160
      使用Spring Web Flow打造情境式網站
    • 1-161
      9.1 情境式系統設計
    • 1-162
      9.2 設定Spring Web Flow
    • 1-163
      9.2.1 設定流程建構者(Flow Builder)
    • 1-164
      9.2.2 設定流程登錄檔(Flow Registry)
    • 1-165
      9.2.3 設定流程執行器(Flow Executor)
    • 1-166
      9.2.4 處理流程請求
    • 1-167
      9.3 建構Spring Web Flow
    • 1-168
      9.3.1 狀態(States)
    • 1-169
      9.3.2 轉換(Transitions)
    • 1-170
      9.3.3 資料(Data)
    • 1-171
      9.4 綜合實做:蛋糕訂購流程
    • 1-172
      9.4.1 定義蛋糕(Cake)訂購的主流程
    • 1-173
      9.4.2 定義客戶(Customer)相關的子流程
    • 1-174
      9.4.3 定義訂單(Order)相關的子流程
    • 1-175
      9.4.4 定義付款(Payment)相關的子流程
    • 1-176
      9.4.5 以Spring Security實作存取管控
    • 1-177
      版權頁
    • 1-178
      封底

    Preview

    | No Content

    FAQ

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    Recommendations

    Reviews

    | Collecting

    Pre-Purchase Q&A

    | No Content

    Sales Plans