目 錄 第 1章網頁制作與瀏覽原理................................................................................................ 1 1.1 我們所理解的網頁 ........................................................................................................ 1 1.1.1 靜態網頁 ........................................................................................................... 2 1.1.2 動態網頁 ........................................................................................................... 2 1.1.3 瀏覽器和服務器對應的 b/s模式....................................................................... 2 1.2 常見的動態網頁開發語言.............................................................................................. 3 1.2.1 jsp................................................................................................................... 3 1.2.2 php.................................................................................................................. 4 1.3 網頁的瀏覽原理 ............................................................................................................ 4 1.3.1 web是什么 ...................................................................................................... 4 1.3.2 http超文本傳輸協議是什么 ........................................................................... 5 1.4 用 jsp進行網頁開發.................................................................................................... 6 1.4.1 jsp與其他語言相比的優勢.............................................................................. 6 1.4.2 jsp網頁的執行順序......................................................................................... 7 1.4.3 實例:**個 hello jsp網頁 ........................................................................... 8 1.5 上機實踐............................................................................................................. 9 第 2章搭建 jsp開發環境 ................................................................................................ 10 2.1 安裝并配置 java環境................................................................................................. 10 2.1.1 下載并安裝 jdk.............................................................................................. 10 2.1.2 配置環境變量.................................................................................................. 11 2.1.3 測試 java配置結果 ........................................................................................ 12 2.2 安裝并配置 tomcat服務器......................................................................................... 13 2.2.1 下載并安裝 tomcat服務器............................................................................. 13 2.2.2 tomcat的文件結構 ........................................................................................ 14 2.2.3 tomcat的工作原理 ........................................................................................ 15 2.3 使用 myeclipse開發工具 ........................................................................................... 16 2.3.1 下載并安裝 myeclipse .................................................................................... 16 2.3.2 在 myeclipse中配置 j2ee環境 ..................................................................... 18 2.3.3 在 myeclipse中配置 tomcat.......................................................................... 19 2.3.4 myeclipse使用技巧........................................................................................ 20 2.3.5 其他 ide ......................................................................................................... 25 2.4 實例:使用 myeclipse開發一個完整的 java web網頁 ............................................. 25 2.5 **次運行 jsp文件的兩個常見問題......................................................................... 30 2.6 在 myeclipse中導入原來的項目................................................................................. 31 2.7 上機實踐........................................................................................................... 33 第 3章 jsp的基礎語法..................................................................................................... 34 3.1 jsp的注釋和聲明 ...................................................................................................... 34 3.1.1 jsp中的注釋 ................................................................................................. 34 3.1.2 jsp中的聲明 ................................................................................................. 36 3.2 jsp表達式 ................................................................................................................. 38 3.3 jsp指令..................................................................................................................... 40 3.3.1 與頁面屬性相關的 page指令 ......................................................................... 40 3.3.2 引入文件的 include指令 ................................................................................. 41 3.3.3 與標簽相關的 taglib指令 ................................................................................ 42 3.4 jsp動作..................................................................................................................... 45 3.4.1 <jsp:include>動作........................................................................................... 45 3.4.2 <jsp:forward>動作 .......................................................................................... 48 3.4.3 <jsp:param>動作 ............................................................................................ 49 3.5 上機實踐........................................................................................................... 53 第 4章 jsp的內置對象..................................................................................................... 54 4.1 request對象 ............................................................................................................... 54 4.1.1 request對象的常用方法 ................................................................................. 54 4.1.2 使用 request對象接收請求參數...................................................................... 55 4.1.3 請求中文亂碼的處理 ....................................................................................... 57 4.1.4 獲取請求的頭部信息 ....................................................................................... 58 4.1.5 獲取主機和客戶機信息 ................................................................................... 60 4.2 response對象 ............................................................................................................ 62 4.2.1 response對象的常用方法 .............................................................................. 62 4.2.2 設置頭信息 ..................................................................................................... 62 4.2.3 設置頁面重定向 .............................................................................................. 65 4.3 session對象 ............................................................................................................... 66 4.3.1 獲取 session id .............................................................................................. 67 4.3.2 登錄用戶信息的保存 ....................................................................................... 71 4.4 application對象 .......................................................................................................... 76 4.4.1 application對象的常用方法 ............................................................................ 76 4.4.2 獲取指定頁面的路徑 ....................................................................................... 77 4.4.3 設計一個網站計數器 ....................................................................................... 78 4.5 out對象 .......................................................................................................... 79 4.5.1 out對象的常用方法 ........................................................................................ 79 4.5.2 out對象的使用示例 ........................................................................................ 79 4.6 page對象 ................................................................................................................... 81 4.6.1 page對象的常用方法 ..................................................................................... 82 4.6.2 page對象的使用示例 ..................................................................................... 82 4.7 config對象.................................................................................................................. 83 4.7.1 config對象的常用方法.................................................................................... 83 4.7.2 config對象的使用示例.................................................................................... 83 4.8 上機實踐.......................................................................................................... 85 第 5章 servlet技術的應用................................................................................................ 86 5.1 servlet是什么 ............................................................................................................ 86 5.2 servlet的技術特點 ..................................................................................................... 87 5.3 servlet的生命周期 ..................................................................................................... 88 5.4 編寫和部署 servlet ..................................................................................................... 92 5.4.1 編寫 servlet類 ............................................................................................... 92 5.4.2 部署 servlet類 ............................................................................................... 96 5.5 servlet與 jsp的比較 ................................................................................................ 97 5.6 servlet進階 api ......................................................................................................... 98 5.6.1 servlet、servletconfig與 genericservlet...................................................... 99 5.6.2 使用 servletconfig........................................................................................ 101 5.6.3 使用 servletcontext...................................................................................... 104 5.7 應用程序事件、監聽器 ............................................................................................. 107 5.7.1 servletcontext事件、監聽器 ....................................................................... 107 5.7.2 httpsession事件監聽器 ............................................................................... 111 5.7.3 httpservletrequest事件、監聽器................................................................ 116 5.8 過濾器 ........................................................................................................ 119 5.8.1 過濾器的概念................................................................................................ 119 5.8.2 實現與設置過濾器......................................................................................... 120 5.8.3 請求封裝器 ................................................................................................... 122 5.8.4 響應封裝器 ................................................................................................... 125 5.9 異步處理................................................................................................................... 135 5.9.1 asynccontext簡介 ....................................................................................... 135 5.9.2 模擬服務器推送 ............................................................................................ 138 5.10 上機實踐................................................................................................................. 143 第 6章 el標簽的應用..................................................................................................... 144 6.1 認識 el標簽............................................................................................................. 144 6.1.1 el標簽的語法 .............................................................................................. 144 6.1.2 el標簽的功能 .............................................................................................. 145 6.1.3 el標簽的操作符 .......................................................................................... 149 6.2 el標簽的隱含變量................................................................................................... 151 6.2.1 隱含變量 pagescope、requestscope、sessionscope、applicationscope.......... 151 6.2.2 隱含變量 param、paramvalues ................................................................... 151 6.2.3 其他變量 ....................................................................................................... 153 6.3 禁用 el標簽............................................................................................................. 154 6.3.1 在整個 web應用中禁用 ............................................................................... 154 6.3.2 在單個頁面中禁用......................................................................................... 155 6.3.3 在頁面中禁用個別表達式.............................................................................. 155 6.4 上機實踐................................................................................................................... 155 第 7章網頁的請求、響應與會話管理.............................................................................. 156 7.1 從容器到 httpservlet ................................................................................................ 156 7.1.1 web容器做了什么 ....................................................................................... 156 7.1.2 doxxx()方法有什么用 .................................................................................. 158 7.2 httpservletrequest對象的應用 ............................................................................... 159 7.2.1 使用 getreader()、getinputstream()讀取 body內容 ................................... 159 7.2.2 使用 getpart()、getparts()取得上傳文件 ...................................................... 164 7.2.3 使用 requestdispatcher調派請求 ............................................................... 168 7.3 httpservletresponse對象的應用 ............................................................................ 174 7.3.1 使用 getwriter()輸出字符.............................................................................. 174 7.3.2 使用 getoutputstream()輸出二進制字符 ...................................................... 177 7.3.3 使用 sendredirect()、senderror()方法......................................................... 179 7.4 會話管理基本原理 .................................................................................................... 182 7.4.1 使用隱藏域 ................................................................................................... 182 7.4.2 使用 cookie .................................................................................................. 182 7.4.3 使用 url重寫 .............................................................................................. 183 7.5 httpsession會話管理的應用.................................................................................... 184 7.5.1 使用 httpsession管理會話 .......................................................................... 184 7.5.2 httpsession管理會話的原理........................................................................ 187 7.5.3 httpsession與 url重寫 ............................................................................. 187 7.5.4 httpsession中禁用 cookie .......................................................................... 188 7.5.5 httpsession的生命周期 ............................................................................... 188 7.5.6 httpsession的有效期................................................................................... 189 7.6 實例:用 servlet實現網站的注冊和登錄.................................................................. 190 7.6.1 實現網站注冊功能......................................................................................... 190 7.6.2 實現網站登錄功能......................................................................................... 196 7.7 實例:使用 httpsession實現猜字游戲 .................................................................... 199 7.8 上機實踐................................................................................................................... 201 第 8章使用 java bean讀取數據庫 ................................................................................ 202 8.1 mysql數據庫入門 .................................................................................................. 202 8.1.1 mysql的安裝和配置................................................................................... 202 8.1.2 啟動 mysql服務 ......................................................................................... 211 8.1.3 登錄 mysql數據庫...................................................................................... 213 8.2 mysql數據庫的基本操作........................................................................................ 215 8.2.1 創建數據庫 ................................................................................................... 215 8.2.2 刪除數據庫 ................................................................................................... 217 8.2.3 創建數據庫表................................................................................................ 217 8.2.4 修改數據庫表................................................................................................ 218 8.2.5 修改數據庫表字段名 ..................................................................................... 219 8.2.6 刪除數據庫表................................................................................................ 220 8.3 mysql數據庫的數據管理........................................................................................ 220 8.3.1 插入數據 ....................................................................................................... 221 8.3.2 修改數據 ....................................................................................................... 221 8.3.3 刪除數據 ....................................................................................................... 222 8.4 java bean的使用..................................................................................................... 223 8.4.1 認識 java bean ............................................................................................ 223 8.4.2 在 jsp中使用 bean ..................................................................................... 224 8.4.3 訪問 bean屬性............................................................................................. 226 8.4.4 bean的作用域.............................................................................................. 233 8.5 實例:利用 java bean實現用戶登錄驗證................................................................ 239 8.6 dao設計模式 .......................................................................................................... 244 8.6.1 dao設計模式簡介 ....................................................................................... 244 8.6.2 dao命名規則 .............................................................................................. 245 8.6.3 dao開發 ..................................................................................................... 245 8.6.4 jsp調用 dao.............................................................................................. 252 8.7 上機實踐................................................................................................................... 255 第 9章 jstl標簽庫........................................................................................................ 257 9.1 jstl標簽概述.......................................................................................................... 257 9.1.1 jstl的來歷 ................................................................................................. 257 9.1.2 一個標簽實例帶你入門 ................................................................................. 258 9.2 jstl的 core標簽庫................................................................................................. 259 9.2.1 <c:set>標簽、<c:out>標簽 ........................................................................... 259 9.2.2 <c:if>標簽 ..................................................................................................... 259 9.2.3 <c:choose>、<c:when>、<c:otherwise>標簽 .............................................. 261 9.2.4 <c:set>標簽 .................................................................................................. 262 9.2.5 <c:foreach>標簽........................................................................................... 262 9.2.6 <c:fortokens>標簽 ....................................................................................... 264 9.2.7 <c:remove>標簽 ........................................................................................... 264 9.2.8 <c:catch>標簽 .............................................................................................. 265 9.2.9 <c:import>標簽與<c:param>標簽 ................................................................. 265 9.2.10 <c:redirect>標簽 ......................................................................................... 265 9.2.11 <c:url>標簽 ................................................................................................. 266 9.3 jstl的 fmt標簽庫................................................................................................... 266 9.3.1 <fmt:requestencoding>設置編碼.................................................................. 267 9.3.2 <fmt:setlocale>顯示所有地區的數據格式 .................................................... 267 9.3.3 <fmt:bundle>、<fmt:message>、<fmt:param>資源國際化.......................... 267 9.3.4 <fmt:setbundle>標簽.................................................................................... 269 9.3.5 <fmt:formatnumber>顯示不同地區的各種數據格式 ..................................... 270 9.3.6 <fmt:parsenumber>解析數字 ....................................................................... 270 9.3.7 <fmt:formatdate>格式化日期 ....................................................................... 271 9.3.8 <fmt:parsedate>解析日期 ............................................................................ 272 9.3.9 <fmt:settimezone>標簽和<fmt:timezone>標簽........................................... 272 9.4 jstl的 fn方法庫..................................................................................................... 273 9.4.1 fn:contains()函數與 fn: containsignorecase()函數 ....................................... 273 9.4.2 fn:startswith()函數與 fn:endswith()函數....................................................... 273 9.4.3 fn:escapexml()實現 html編碼 ................................................................... 273 9.4.4 fn:indexof()函數與 fn:length()函數 ............................................................... 274 9.4.5 fn:split()函數與 fn:join()函數.......................................................................... 275 9.5 jstl的 sql標簽庫................................................................................................. 275 9.5.1 <sql:setdatesource>標簽 ............................................................................ 276 9.5.2 <sql:query>標簽 ........................................................................................... 276 9.5.3 <sql:update>標簽 ......................................................................................... 277 9.5.4 <sql:dateparam>標簽與<sql:param>標簽 .................................................... 277 9.5.5 <sql:transaction>標簽事務管理 .................................................................... 280 9.6 jstl的 xml標簽庫 ................................................................................................ 280 9.6.1 <x:parse>獲取新浪 rss新聞 ...................................................................... 281 9.6.2 <x:out>輸出指定元素.................................................................................... 282 9.6.3 <x:foreach>遍歷新浪 rss新聞 ................................................................... 282 9.6.4 <x:if>標簽 ..................................................................................................... 282 9.6.5 <x:choose>、<x:when>、<x:otherwise>標簽 .............................................. 283 9.6.6 <x:set>標簽 .................................................................................................. 283 9.6.7 <x:transform>轉化 xml為 html ................................................................ 283 9.7 上機實踐................................................................................................................... 284 第 10章實現自定義標簽................................................................................................. 285 10.1 編寫自定義標簽 ...................................................................................................... 285 10.1.1 版權標簽 ..................................................................................................... 285 10.1.2 tld標簽庫描述文件 ..................................................................................... 287 10.1.3 tagsupport類簡介..................................................................................... 289 10.1.4 帶參數的自定義標簽 ................................................................................... 290 10.1.5 帶標簽體的自定義標簽 ............................................................................... 293 10.1.6 多次執行的循環標簽 ................................................................................... 297 10.1.7 帶動態屬性的自定義標簽............................................................................ 299 10.2 嵌套的自定義標簽 .................................................................................................. 300 10.2.1 實例:表格標簽 .......................................................................................... 300 10.2.2 嵌套標簽的配置 .......................................................................................... 302 10.2.3 嵌套標簽的運行效果 ................................................................................... 303 10.3 jsp 2.x標簽........................................................................................................... 305 10.4 上機實踐................................................................................................................. 307 第 11章使用 jdbc連接數據庫...................................................................................... 308 11.1 jdbc簡介.............................................................................................................. 308 11.1.1 查詢實例:列出人員信息............................................................................ 308 11.1.2 各種數據庫的連接....................................................................................... 311 11.2 mysql的亂碼解決 ................................................................................................ 312 11.2.1 mysql的亂碼解決 .................................................................................... 312 11.2.2 從控制臺修改編碼....................................................................................... 313 11.2.3 從配置文件修改編碼 ................................................................................... 314 11.2.4 利用圖形界面工具修改 ............................................................................... 314 11.2.5 url中指定編碼方式 .................................................................................. 315 11.3 jdbc基本操作:crud......................................................................................... 315 11.3.1 查詢數據庫 ................................................................................................. 315 11.3.2 插入人員信息.............................................................................................. 316 11.3.3 注冊數據庫驅動 .......................................................................................... 321 11.3.4 獲取自動插入的 id...................................................................................... 321 11.3.5 刪除人員信息.............................................................................................. 322 11.3.6 修改人員信息.............................................................................................. 323 11.3.7 使用 preparedstatement ............................................................................ 329 11.3.8 statement與 preparedstatement批處理 sql .......................................... 331 11.4 處理結果集 ............................................................................................................. 332 11.4.1 查詢多個結果集 .......................................................................................... 332 11.4.2 可以滾動的結果集....................................................................................... 333 11.4.3 帶條件的查詢.............................................................................................. 333 11.4.4 resultsetmetadata元數據 ........................................................................ 338 11.4.5 直接顯示中文列名....................................................................................... 340 11.5 上機實踐................................................................................................................. 340 第 12章 xml文件格式.................................................................................................... 341 12.1 初識 xml................................................................................................................ 341 12.1.1 什么是 xml ................................................................................................ 341 12.1.2 xml的用途 ................................................................................................ 342 12.1.3 xml的技術架構 ......................................................................................... 343 12.1.4 xml開發工具............................................................................................. 343 12.2 xml基本語法......................................................................................................... 344 12.2.1 xml文檔的基本結構.................................................................................. 344 12.2.2 標記必須閉合.............................................................................................. 345 12.2.3 必須合理地嵌套 .......................................................................................... 345 12.2.4 xml元素.................................................................................................... 345 12.2.5 xml屬性.................................................................................................... 346 12.2.6 只有一個根元素 .......................................................................................... 346 12.2.7 大小寫敏感 ................................................................................................. 347 12.2.8 空白被保留 ................................................................................................. 347 12.2.9 注釋的寫法 ................................................................................................. 347 12.2.10 轉義字符的使用 ........................................................................................ 347 12.2.11 cdata的使用 ......................................................................................... 348 12.3 jdk中的 xml api ................................................................................................. 348 12.4 *常見的 xml解析模型 ......................................................................................... 349 12.4.1 dom解析................................................................................................... 349 12.4.2 sax解析 .................................................................................................... 352 12.4.3 dom4j解析 ................................................................................................ 355 12.5 xml與 java類映射 jaxb ..................................................................................... 357 12.5.1 什么是 xml與 java類映射........................................................................ 357 12.5.2 jaxb的工作原理 ....................................................................................... 358 12.5.3 java對象轉化成 xml................................................................................. 359 12.5.4 xml轉化為 java對象................................................................................ 360 12.5.5 更為復雜的映射 .......................................................................................... 362 12.6 上機實踐................................................................................................................. 365 第 13章資源國際化 ........................................................................................................ 367 13.1 資源國際化簡介 ...................................................................................................... 367 13.1.1 國際化編程 i18n......................................................................................... 367 13.1.2 本地化編程 l10n........................................................................................ 367 13.2 資源國際化編程 ...................................................................................................... 368 13.2.1 資源國際化示例 .......................................................................................... 368 13.2.2 資源文件編碼.............................................................................................. 369 13.2.3 顯示所有 locale代碼 ................................................................................. 370 13.2.4 帶參數的資源.............................................................................................. 372 13.2.5 resourcebundle類 .................................................................................... 373 13.2.6 servlet的資源國際化.................................................................................. 375 13.2.7 顯示所有 locale的數字格式....................................................................... 377 13.2.8 顯示全球時間.............................................................................................. 378 13.3 上機實踐................................................................................................................. 380 第 14章簡易的網上購物系統.......................................................................................... 381 14.1 系統需求分析.......................................................................................................... 381 14.2 系統總體架構.......................................................................................................... 382 14.3 數據庫設計 ............................................................................................................. 383 14.3.1 e-r圖......................................................................................................... 383 14.3.2 數據物理模型.............................................................................................. 383 14.4 系統詳細設計.......................................................................................................... 384 14.4.1 系統包的介紹.............................................................................................. 385 14.4.2 系統的關鍵技術 .......................................................................................... 385 14.4.3 過濾器 ........................................................................................................ 392 14.5 系統首頁與公共頁面............................................................................................... 393 14.6 用戶登錄模塊.......................................................................................................... 395 14.7 用戶管理模塊.......................................................................................................... 397 14.7.1 用戶注冊 ..................................................................................................... 397 14.7.2 修改用戶信息.............................................................................................. 400 14.7.3 查看用戶信息.............................................................................................. 403 14.7.4 修改用戶密碼.............................................................................................. 404 14.8 購物車模塊 ............................................................................................................. 406 14.8.1 添加購物車 ................................................................................................. 406 14.8.2 刪除購物車 ................................................................................................. 410 14.8.3 查看購物車 ................................................................................................. 410 14.8.4 修改購物車 ................................................................................................. 412 14.8.5 刪除購物車所有商品 ................................................................................... 413 14.8.6 購物車中的頁面 .......................................................................................... 414 14.9 商品模塊................................................................................................................. 416 14.9.1 查看商品列表.............................................................................................. 416 14.9.2 查看單個商品.............................................................................................. 420 14.10 支付模塊............................................................................................................... 421 14.10.1 支付商品................................................................................................... 421 14.10.2 查看已支付商品 ........................................................................................ 422 14.10.3 查看已支付商品頁面 ................................................................................. 423 14.10.4 支付中的頁面............................................................................................ 423 14.11 實戰總結............................................................................................................... 426