《JavaWeb實訓》PPT課件.ppt
《《JavaWeb實訓》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《JavaWeb實訓》PPT課件.ppt(237頁珍藏版)》請在裝配圖網(wǎng)上搜索。
JavaWeb項目實訓 2011 12 HTMLJSPServletJavaBeanJDBCMySQL TrainingofJavaWebProject 2 1 課程介紹 3 1 課程介紹 課程的性質(zhì)和目標本實訓課程是在學生具備了Java程序設計知識與面向?qū)ο蠹夹g的基礎上 為進一步提高項目實踐能力 開拓創(chuàng)新能力而設置的實踐性環(huán)節(jié)課程 本課程的目的掌握使用JSP應用程序設計的基本技能 熟練使用Eclipse進行Web應用程序的編寫 調(diào)試 結合案例詳細說明JavaWeb軟件項目的整個開發(fā)過程 在項目開發(fā)過程中逐步熟悉知識點 掌握JavaB S結構程序的運行原理和應用技能 最后完成一個完整的軟件開發(fā)項目 先修課程 Java語言程序設計 計算機網(wǎng)絡 數(shù)據(jù)庫原理 4 1 課程介紹 課程的基本要求掌握Java集成開發(fā)環(huán)境 IDE Eclipse的使用和調(diào)試方法利用JSP Servlet JavaBean實現(xiàn)Web應用開發(fā)掌握分層體系結構開發(fā)的技巧完成教師指定的開發(fā)任務 5 1 課程介紹 課程的基本內(nèi)容本實訓課程是圍繞一個完整的Java項目而展開的 雖然每部分內(nèi)容相對獨立 但通過幾次迭代開發(fā)后 最后形成一個完整的軟件系統(tǒng) 在軟件項目選擇上遵循的原則是 技術上必須覆蓋Java技術應用最為普遍的編程領域等 項目的選擇具有良好的伸縮性 既要難易適中又能充分調(diào)動學生的創(chuàng)新能力 讓學生有發(fā)揮的空間 項目 Web電子相冊 6 1 課程介紹 考核方法每個學生按照實訓項目要求完成實訓報告 教師對實訓的各項內(nèi)容進行綜合考核 比例為平時考勤20 實訓項目考核80 提交源代碼和實訓報告 7 1 課程介紹 教學思想教師精煉地講解理論知識教師做例子示范教師布置任務學生的任務課前自己學習相關的基礎知識上課聽基礎知識上課看例子上課做例子課下餓補基礎知識課下設計項目每次上課前檢查進度 8 1 課程介紹 參考書目 1 邱加永 卞志城 鄭經(jīng)煜 JSP基礎與案例開發(fā)詳解 清華大學出版社 2009 2 溫尚書 陳石華 萬欣 JavaWeb編程入門與實戰(zhàn) 人民郵電出版社 2010 9 2 Java軟件項目要求與編程環(huán)境 10 2 Java軟件項目要求與編程環(huán)境 項目要求前臺查看圖片下載圖片發(fā)表評論用戶登錄新用戶注冊后臺管理管理員登錄修改管理員密碼添加圖片管理圖片管理分類刪除評論 11 2 Java軟件項目要求與編程環(huán)境 軟件項目開發(fā)的基本過程需求獲取畫出用例圖用例描述系統(tǒng)分析架構設計初步的類設計和類圖初步的界面設計利用分析類描述用例 順序圖 系統(tǒng)設計類細化 類圖細化順序圖 活動圖細化系統(tǒng)實現(xiàn)利用開發(fā)工具實現(xiàn) 12 2 Java軟件項目要求與編程環(huán)境 客戶端用戶需求 13 2 Java軟件項目要求與編程環(huán)境 服務器端用戶需求 14 2 Java軟件項目要求與編程環(huán)境 服務器端用戶需求細化 15 2 Java軟件項目要求與編程環(huán)境 邏輯結構 16 2 Java軟件項目要求與編程環(huán)境 關于用戶管理的功能 軟件的構架示例如下 17 2 Java軟件項目要求與編程環(huán)境 符合MVC模式 18 2 JavaWeb項目實訓的要求與編程環(huán)境 我們所使用的工具JDK1 6 編譯 解釋器 MyEclipse 集成開發(fā)工具 Tomcat6 JSP Servlet容器 MySQL5 1 數(shù)據(jù)庫服務器 安裝 配置Connector J mySQL的JDBC驅(qū)動 NavicatLite MySQL客戶端工具 19 2 JavaWeb項目實訓的要求與編程環(huán)境 MyEclipseTomcat配置Web工程創(chuàng)建Web項目的結構 20 2 JavaWeb項目實訓的要求與編程環(huán)境 JavaWeb應用程序工程制作流程設計目錄結構編寫Web應用程序代碼編寫部署描述文件Web xml編譯代碼將Web應用程序打包 war 部署Web應用程序 deploy 執(zhí)行Web應用程序 21 2 Java軟件項目要求與編程環(huán)境 Java編程基本規(guī)范為GUI上的每個控件起一個規(guī)范的Name包 類 變量的命名命名規(guī)則包 Java包的名字都是由小寫單詞組成類 類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫 如果類名稱由多個單詞組成 則每個單詞的首字母均應為大寫方法 方法的名字的第一個單詞應以小寫字母作為開頭 后面的單詞則用大寫字母開頭 22 2 Java軟件項目要求與編程環(huán)境 常用類型縮寫對照 變量 變量命名的方法采用匈牙利命名法 它使用3字符前綴來表示數(shù)據(jù)類型 3個字符的前綴必須小寫 前綴后面是由表意性強的一個單詞或多個單詞組成的名字 而且每個單詞的首寫字母大寫 其它字母小寫 23 2 Java軟件項目要求與編程環(huán)境 任務1 熟悉開發(fā)環(huán)境開發(fā)環(huán)境的搭建在MyEclipse中配置好Tomcat服務器配置好MySQL數(shù)據(jù)庫在MyEclipse中利用jdbc驅(qū)動訪問MySQL數(shù)據(jù)庫利用MyEclipse部署Web應用程序在MySQL創(chuàng)建用戶表提示MySQL的數(shù)據(jù)庫編碼設置為UTF 8 這樣有利于Web項目開發(fā)時 中文編碼的一致性MyEclipse中Tomcat服務器的設置時 要將JVM設置為本機的JDK安裝路徑 而非JRE的路徑記住netstartmysql netstopmysql命令使用navicatelite創(chuàng)建用戶表 24 3 HTML網(wǎng)頁編程基礎 25 網(wǎng)頁包含有文本 圖形 超級鏈接以及其他信息元素的文件 可以通過Internet傳輸 用戶可以使用瀏覽器瀏覽網(wǎng)站是一個包括多個超級鏈接在一起的網(wǎng)頁集合主頁某個站點的起始網(wǎng)頁 包含必要的內(nèi)容和索引信息瀏覽器是一種用于搜索 查看和管理網(wǎng)絡上信息的一種帶圖形交互界面的應用軟件超鏈接不同網(wǎng)頁之間的連接關系地址 URL 標識Web上的頁面和資源 3 網(wǎng)頁編程基礎 HTML 26 瀏覽器 網(wǎng)站主頁 超鏈接 網(wǎng)頁 網(wǎng)頁 URL 27 網(wǎng)頁的本質(zhì) HTML語言編寫的文本 HTML用于創(chuàng)建網(wǎng)頁文檔 HTML文檔是使用HTML標記和元素創(chuàng)建的 此文件以擴展名 htm或 html保存在Web服務器上 3 網(wǎng)頁編程基礎 HTML 28 Web服務器軟件 瀏覽器 http請求 http響應 解釋 工作原理 訪問網(wǎng)頁的規(guī)則 HTTP協(xié)議 網(wǎng)頁開發(fā)工具 編輯生成 發(fā)布 3 網(wǎng)頁編程基礎 HTML Web程序 動態(tài)生成 29 網(wǎng)站 超鏈接 網(wǎng)頁 Web瀏覽器 網(wǎng)站開發(fā)工具 Web服務器 多媒體 主頁 通過http協(xié)議訪問 具有1個或多個 發(fā)布 具有 具有 是一種 HTML 源代碼是 構建 可視化編輯 生成 模型 3 網(wǎng)頁編程基礎 HTML Web程序 動態(tài)生成 發(fā)布 30 網(wǎng)頁開發(fā)工具的主要作用HTML文檔的可視化編輯生成HTML文檔發(fā)布到Web服務器常用開發(fā)工具FrontPageDreamWeaver 3 網(wǎng)頁編程基礎 HTML 31 HTMLHyperTextMarkupLanguage超文本標記語言用它編寫的文件 文檔 的擴展名是 html或 htm 它們是可供瀏覽器解釋瀏覽的文件格式HTML的基本形式內(nèi)容標記名往往成對出現(xiàn) 中間的內(nèi)容是標記的作用域 3 網(wǎng)頁編程基礎 HTML 32 常用標簽全局架構標簽 格式標簽 文本標簽 超鏈接標簽 圖像標簽 表單標簽 表格標簽 框架標簽 頭元素標簽 區(qū)域標簽 3 網(wǎng)頁編程基礎 HTML 33 用于Html文檔的最前邊 用來標識Html文檔的開始 放在Html文檔的最后邊 用來標識Html文檔的結束兩個標志必須一塊使用 3 網(wǎng)頁編程基礎 HTML 34 構成Html文檔的開頭部分在此標志對之間可以使用等標志對標志對之間的內(nèi)容是不會在瀏覽器的框內(nèi)顯示出來的 3 網(wǎng)頁編程基礎 HTML 35 是html文檔的主體部分在此標志對之間可包含 分段標記 標題標記 換行標記 水平分界標記 等它們所定義的文本 圖像等將會在瀏覽器的框內(nèi)顯示出來 3 網(wǎng)頁編程基礎 HTML 36 3 網(wǎng)頁編程基礎 HTML 實例用記事本構造最簡單的HTML文檔 37 常用的標記圖像標記超鏈接標記文本 3 網(wǎng)頁編程基礎 HTML 38 表單表單是用來收集訪問者信息的域集可實現(xiàn)網(wǎng)頁與瀏覽者的交互 達到收集瀏覽者信息的目的表單元素主要包括單行文本框文本域下拉框單選按鈕復選框 3 網(wǎng)頁編程基礎 HTML 39 表有以下部分組成標題行表頭單元格邊框cellspacing屬性 3 網(wǎng)頁編程基礎 HTML 40 CSS內(nèi)聯(lián)樣式表嵌入樣式表外聯(lián)樣式表導入樣式表請大家自學 3 網(wǎng)頁編程基礎 CSS 41 JavaScript由瀏覽器負責解釋和執(zhí)行腳本語言位置一般放在標記之間放在單獨的 js文件中作為某個標簽的事件屬性值或者超鏈接的href屬性值 3 網(wǎng)頁編程基礎 JavaScript 42 JavaScript常用內(nèi)置對象winodw對象window open test html width 390 height 5 toolbar no resizable no top 200 left 200 document對象包含當前文檔的信息write writeln 方法 向瀏覽器輸出內(nèi)容form對象表單對象 一個文檔中可以有多個表單 表單之間互不關聯(lián)document formName或document forms index 來獲得對form的引用得到from對象后 就可以獲得form中元素的引用 3 網(wǎng)頁編程基礎 JavaScript 43 JavaScript常用的方法 函數(shù) alertconfirmprompt 3 網(wǎng)頁編程基礎 JavaScript 44 JavaScript中的事件處理onLoad事件onFocus事件onBlur事件onClick事件onChange事件onSelect事件onSubmit事件 3 網(wǎng)頁編程基礎 JavaScript 45 3 網(wǎng)頁編程基礎 實例 HTML實例利用HTML構造用戶登錄界面使用DreamWeaver注意表格的使用 46 3 網(wǎng)頁編程基礎 實例 JavaScript實例登錄form中用戶名有默認值當用戶名文本框獲得焦點則將文本框中文字選中當點擊用戶名文本框 自動清除文本框中的值 47 3 網(wǎng)頁編程基礎 實例 48 3 網(wǎng)頁編程基礎 訓練 任務2用HTML構造登錄表單 并且利用JavaScript驗證表單 要求各項不能為空在MyEclipse中構建Web項目部署到Tomcat中課后任務 學習HTML學習Servlet的基本原理熟悉MyEclipse的使用嘗試構造出Web電子相冊的后臺管理端頁面原型根據(jù)需求進行數(shù)據(jù)庫設計 畫出E R模型 并在MySQL中建立表 49 50 51 4 Servlet基礎與應用 52 Servlet服務端應用小程序用Java編寫執(zhí)行過程與CGI腳本相似 但有以下優(yōu)勢多線程應用編譯的程序跨平臺性 4 Servlet的應用 基礎 53 Servlet的工作任務讀取客戶機發(fā)送的數(shù)據(jù)顯式數(shù)據(jù) 表單中輸入的數(shù)據(jù)隱式數(shù)據(jù) http請求header信息生成結果可能要與數(shù)據(jù)庫進行交流經(jīng)過計算后形成結果發(fā)送數(shù)據(jù)到客戶機顯式數(shù)據(jù) 包括html 二進制數(shù)據(jù)隱式數(shù)據(jù) http響應header信息 4 Servlet的應用 基礎 54 4 Servlet的應用 實例 實例 創(chuàng)建簡單的Servlet 利用MyEclipse生成一個Web項目在Web項目中創(chuàng)建一個簡單的Servlet程序提示 注意Get和Post在Web xml中配置Servlet映射 55 4 Servlet的應用 實例 創(chuàng)建Web項目 56 4 Servlet的應用 實例 輸入Web項目信息 57 4 Servlet的應用 實例 創(chuàng)建一個Servlet類名為TestServlet所在包為myServlets在Web xml中配置Servlet映射目的是隱藏Servlet的真正位置 58 這里的 是不能省略的 代表的含義是工程根目錄 59 4 Servlet的應用 實例 在MyEclipse中配置好Tomcat服務器注意JVM的配置 要選擇本機的Java安裝路徑下的完整JDK目錄部署 deploy 實際是將開發(fā)環(huán)境中的程序拷貝到服務器的Webapps目錄下啟動服務器 60 4 Servlet的應用 實例 運行 61 4 Servlet的應用 實例 實例 利用表單向Servlet提交數(shù)據(jù)構建一個HTML網(wǎng)頁 帶有form在form的action中設置要提交的servlet 此處路徑如果沒有 則表示為相對于該網(wǎng)頁的相對路徑如果有 則表示為http localhost 8080 根目錄 62 4 Servlet的應用 實例 創(chuàng)建UserManagerServlet 63 4 Servlet的應用 實例 關于JavaWeb項目中路徑的總結web xml的 表示的是http localhost 8080 工程名而HTML網(wǎng)頁 或JSP網(wǎng)頁 的form中的action屬性 如果加了 的時候表示絕對路徑http localhost 8080 而沒有加 表示的是相對路徑在Servlet中 跳轉時如果加了 的時候表示絕對路徑http localhost 8080 而沒有加 表示的是相對路徑 64 已經(jīng)加載了Servlet 調(diào)用service 方法 加載Servlet類 并創(chuàng)建新實例 調(diào)用init 方法初始化Servlet HTTP請求 是 HTTP響應 初始化 處理請求 否 利用一個線程調(diào)用service 方法 根據(jù)所接收到的http請求類型調(diào)用doGet doPost Servlet的工作方式 4 Servlet的應用 基礎 Servlet生命周期創(chuàng)建 New 初始化 Init 服務 Service 撤銷 Destory 65 HttpServlet類doGet GETdoGet HttpServletRequest HttpServletResponse doPost POSTdoPost HttpServletRequest HttpServletResponse Web容器收到一個請求時 調(diào)用HttpServlet類的公共的Service方法 再根據(jù)HTTP請求方法的類型 調(diào)用相應的doXXX 方法 4 Servlet的應用 基礎 66 GET與POST1 GET GET的參數(shù)不能超過255個字符 GET的參數(shù)用URL中的 開頭 GET servlet Query name tt age 2HTTP 1 02 POST POST請求后面跟著參數(shù) POST servlet QueryHTTP 1 0name ttAge 2 4 Servlet的應用 基礎 67 HttpServletRequest類Servlet能訪問的CGI變量ServletRequest參數(shù)和各種方法getInputStream getReader getParameter getHeader getCookies 4 Servlet的應用 基礎 68 HttpServletResposne類把MIME編碼的數(shù)據(jù)回送給客戶getOutputStream getWriter setHeader addCookie 4 Servlet的應用 基礎 69 Cookie 是一小段文本 通過JSP或Servlet 可以將Cookie保存在瀏覽器所在的客戶端的內(nèi)存或磁盤上 需要時可以通過程序讀出 要把Cookie發(fā)送到客戶端 Servlet先要調(diào)用newCookie name value cookie setXXX設置各種屬性response addCookie cookie 把cookie加入應答頭 要從客戶端讀入Cookie Servlet應該調(diào)用request getCookies 返回一個Cookie對象的數(shù)組 在大多數(shù)情況下 你只需要用循環(huán)訪問該數(shù)組的各個元素尋找指定名字的Cookie 然后對該Cookie調(diào)用getValue方法取得與指定名字關聯(lián)的值 4 Servlet的應用 基礎 70 Servlet的會話管理機制 根據(jù)設計 HTTP是一種無狀態(tài)的協(xié)議 它意味著Web應用并不了解有關同一用戶以前請求的信息 維持會話狀態(tài)信息的方法之一是使用Servlet容器提供的會話跟蹤功能 HttpSession接口提供了一種把對象保存到內(nèi)存 在同一用戶的后繼請求中提取這些對象的標準辦法 保存對象 setAttribute Stringname Objectvalue 提取對象 getAttribute Stringname 4 Servlet的應用 基礎 71 Servlet調(diào)用方法 在瀏覽器中輸入Servlet的URL通過HTML頁面調(diào)用Servlet get方式或者post方式從另一個Servlet中調(diào)用Servlet 4 Servlet的應用 基礎 72 在Servlet中跳轉到其他頁面方法一 使用HttpServletResponse的sendRedirect 方法在跳轉之前所存儲的request的屬性都會被清空地址欄會顯示出所跳轉到的新地址實現(xiàn)跳轉需要瀏覽器和服務器之間進行多次通信方法二 使用RequestDispatcher的forward 方法將Request中的屬性傳遞到所跳轉的新頁面跳轉時 不需要服務器與瀏覽器之間的額外通信瀏覽器地址欄不顯示實際的新頁面的URL 4 Servlet的應用 基礎 73 中文編碼在Servlet中 request setCharacterEncoding utf 8 設置Servlet從表單讀取數(shù)據(jù)的編碼格式解決讀取表單中中文參數(shù)的問題response setContentType text html charset utf 8 相當于設置Servlet返回的HTML的編碼解決向客戶端輸出中文的問題該語句要在PrintWriterout response getWriter 語句之前才能起作用 4 Servlet的應用 基礎 74 Servlet開發(fā) 4 Servlet的應用 基礎 75 J2EE應用程序目錄結構 4 Servlet的應用 基礎 76 實例 不帶數(shù)據(jù)庫的登錄程序構建login html構建用于登錄的servlet LoginCheck構建web xml中的servlet路徑映射在servlet中顯示登錄表單提交上來的用戶名和密碼注意編碼問題固定密碼的驗證邏輯登錄成功頁面跳轉 登錄失敗頁面跳轉利用session防止繞過登錄頁面直接進入 4 Servlet的應用 實例 77 任務3 不帶數(shù)據(jù)庫的登錄程序使用Servlet完成一個用戶登錄驗證的程序 無數(shù)據(jù)庫支持 若成功則導航到成功頁面 若失敗則導航到失敗頁面提示構建login html構建用于登錄的servlet構建web xml中的servlet路徑映射在servlet中顯示登錄表單提交上來的用戶名和密碼注意編碼問題固定密碼的驗證邏輯登錄成功頁面跳轉 登錄失敗頁面跳轉利用session防止繞過登錄頁面直接進入 4 Servlet的應用 任務 78 4 Servlet的應用 任務 79 4 Servlet的應用 任務 任務4 Web電子相冊系統(tǒng)的面向?qū)ο蠓治霭凑者吔?控制 實體的模式畫出分析類圖畫出系統(tǒng)中主要的活動流程 80 4 Servlet的應用 任務 開發(fā)過程 DougRosenbergandMattStephens UseCaseDrivenObjectModelingwithUML 81 4 Servlet的應用 任務 示例 登錄用例的分析類圖 前端控制器 應用控制器 82 4 Servlet的應用 任務 成功登錄的順序圖 83 5 JDBC基礎知識與應用 84 JDBC介紹 JDBC驅(qū)動分類 使用JDBC編程的步驟 實例 5 JDBC基礎知識與應用 85 JavaDataBaseConnectivity是一種可用于執(zhí)行SQL語句的JavaAPI 為不同的DBMS提供統(tǒng)一的數(shù)據(jù)庫編程接口 1 JDBC介紹 背景Java誕生后 沒有Java語言直接可使用的數(shù)據(jù)庫訪問的API在Java程序中嵌入C語言的ODBC函數(shù)調(diào)用 使得Java的優(yōu)秀特性無法發(fā)揮 平臺無關 面向?qū)ο?JDK1 1 java sql包 即JDBCAPI 成為Java語言的標準部件 5 JDBC基礎知識與應用 86 JDBC特點ForJavaSQL層API與數(shù)據(jù)庫無關的 統(tǒng)一的API 編寫一次 隨處運行 5 JDBC基礎知識與應用 87 分類Type1 橋驅(qū)動Type2 本地驅(qū)動Type3 基于中間件的驅(qū)動Type4 基于網(wǎng)絡協(xié)議的驅(qū)動注意 Type1 Type2需要在客戶端安裝代碼Type3 Type4是純Java驅(qū)動 2 JDBC驅(qū)動分類 5 JDBC基礎知識與應用 88 Type1即JDBC ODBC橋 提供了經(jīng)由一種或多種ODBC驅(qū)動進行訪問的JDBC接口 通常的DBMS都支持微軟提出的ODBC規(guī)范 因此該模式可以普遍使用 非常靈活 具有很好的代碼移植性 因為每次調(diào)用都要轉換成ODBC調(diào)用 所以這種模式與其他模式相比性能最差 Type2使用NativeAPI它將JDBC調(diào)用轉換為對數(shù)據(jù)庫 Oracle Sybase Informix DB2等 客戶端接口的調(diào)用 5 JDBC基礎知識與應用 89 Type3純Java驅(qū)動將JDBC調(diào)用轉換為中間網(wǎng)絡協(xié)議 然后轉換為DBMS協(xié)議中間網(wǎng)絡協(xié)議層起到一個讀取數(shù)據(jù)庫的中間件的作用 能夠連接許多類型的數(shù)據(jù)庫 因而是最靈活的JDBC模式 5 JDBC基礎知識與應用 90 5 JDBC基礎知識與應用 Type4純Java驅(qū)動一般是數(shù)據(jù)庫廠商才能實現(xiàn)直接調(diào)用DBMS 數(shù)據(jù)庫管理系統(tǒng) 使用的網(wǎng)絡協(xié)議 91 5 JDBC基礎知識與應用 92 Java應用程序 JDBCAPI JDBC ODBC橋 JDBC Native橋 JDBC Net JavaJDBC ODBC驅(qū)動 NativeAPI C 中間件服務器 數(shù)據(jù)庫 客戶端 93 步驟加載驅(qū)動程序DriverManager類獲取數(shù)據(jù)庫連接Connection類創(chuàng)建一個數(shù)據(jù)庫聲明Statement類執(zhí)行SQL語句 3 使用JDBC編程的步驟 5 JDBC基礎知識與應用 94 DriverManager Connection Statement ResultSet 數(shù)據(jù)庫 創(chuàng)建 創(chuàng)建 創(chuàng)建 建立連接 SQL語句 數(shù)據(jù) 5 JDBC基礎知識與應用 95 java sql包中的主要類DriverManager作用于用戶和驅(qū)動程序之間 它跟蹤可用的驅(qū)動程序 并在數(shù)據(jù)庫和相應驅(qū)動程序之間建立連接驅(qū)動加載方法 Class forName 類名 ConnectionConnectioncon DriverManager getConnection Stringurl Stringuser Stringpassword url jdbc subprotocol subname 5 JDBC基礎知識與應用 96 StatementTheobjectusedforexecutingastaticSQLstatementandreturningtheresultsitproducesResultSetAtableofdatarepresentingadatabaseresultset whichisusuallygeneratedbyexecutingastatementthatqueriesthedatabase 5 JDBC基礎知識與應用 97 加載驅(qū)動程序Class forName sun jdbc odbc JdbcOdbcDriver newInstance 獲取數(shù)據(jù)庫連接Connectioncon DriverManager getConnection jdbc odbc studs userID Password 創(chuàng)建一個數(shù)據(jù)庫聲明Statementstmt con createStatement 執(zhí)行SQL語句ResultSetrs stmt executeQuery select fromstutable 5 JDBC基礎知識與應用 98 ResultSet類移動next previous first last 取字段值ObjectgetObject 字段名 getInt 字段名 getFloat 字段名 getString 字段名 getDate 字段名 5 JDBC基礎知識與應用 99 5 JDBC基礎知識與應用 實例 實例訪問數(shù)據(jù)庫 取出所有數(shù)據(jù) 并顯示出所有記錄的某字段值例如 顯示出用戶表的所有用戶姓名利用PreparedStatement聯(lián)系訪問指定用戶 取出密碼提示注意相應數(shù)據(jù)庫的JDBC驅(qū)動是否配置好注意數(shù)據(jù)庫連接串的基本語法本例的SQL語句沒有參數(shù) 如果有參數(shù)怎么辦 數(shù)據(jù)訪問相關的Java語句必須放在try catch 中 異常處理本例無需編寫Web程序 只需編寫一個帶main函數(shù)的Java類即可 將結果寫在控制臺上即可 100 簡單實驗代碼 5 JDBC基礎知識與應用 實例 101 5 JDBC基礎知識與應用 實例 利用PreparedStatement聯(lián)系訪問指定用戶 取出密碼 102 5 JDBC基礎知識與應用 實例 實例利用Servlet實現(xiàn)帶數(shù)據(jù)庫的登錄將MySQL的JDBC驅(qū)動jar包文件放入web inf目錄下的lib目錄下 1 直接在Servlet中訪問數(shù)據(jù)庫 2 創(chuàng)建UserDAO類 構建isCheck 方法 在該方法中訪問數(shù)據(jù)庫并驗證用戶 103 5 JDBC基礎知識與應用 104 5 JDBC基礎知識與應用 實例 實例 Web電子相冊項目的數(shù)據(jù)庫設計E R實體聯(lián)系圖注意主鍵和外鍵 105 5 JDBC基礎知識與應用 實例 106 5 JDBC基礎知識與應用 實例 物理模型 107 5 JDBC基礎知識與應用 任務 任務4 帶數(shù)據(jù)庫的登錄程序Web電子相冊數(shù)據(jù)庫E R模型設計并在MySQL上構造物理數(shù)據(jù)表重構Web電子相冊管理員登錄功能 帶數(shù)據(jù)庫支持 在Servlet中直接訪問數(shù)據(jù)庫然后 將訪問User表的程序放入單獨的類提示在Eclipse中加入mySQL數(shù)據(jù)庫驅(qū)動 108 6 JavaBean與DAO模式 109 JavaBean與DAO JavaBean一個特殊的Java類沒有任何公共變量變量名首字母必須小寫 例如name通過getter setter方法來讀 寫變量的值 例如getName 實現(xiàn)serializable接口將對象的狀態(tài)保存在存儲媒體中以便可以在以后重新創(chuàng)建出完全相同的副本 按值將對象從一個應用程序域發(fā)送至另一個應用程序域用途 主要用于在頁面之間傳遞一個被封裝的數(shù)據(jù)對象 110 例子 User類 111 JavaBean與DAO JavaBean的范圍Page 該JavaBean只能在實例化它的頁面中使用 這種JavaBean被存儲在PageContext對象中Request 使用jsp include jsp forward RequestDispatcher的include 或forward 方法時 兩個JSP頁面或者Servlet頁面之間共享這個JavaBean 該JavaBean實例被存儲在ServletRequest對象中Session 這種JavaBean實例被存儲在HttpSession對象中 該JavaBean實例會在整個會話過程中存在 Application 這種JavaBean實例存儲到ServletContext中 該JavaBean可以被運行在應用服務器的相同生命周期中的任何對象 JSP或Servlet 調(diào)用 112 JavaBean與DAO DAO模式DataAccessObject用來抽象和封裝所有對數(shù)據(jù)源的訪問完全隱藏了數(shù)據(jù)源的實現(xiàn)細節(jié)當?shù)讓訑?shù)據(jù)源實現(xiàn)發(fā)生變化時 只要DAO對象向客戶提供的接口不變 就不會影響到客戶程序 113 JavaBean與DAO UserDAO類的結構 114 JavaBean與DAO 部分 115 JavaBean與DAO 數(shù)據(jù)庫操作獨立出來 116 JavaBean與DAO 117 JavaBean與DAO 將數(shù)據(jù)庫訪問連接參數(shù)放入config包中的db properties文件 db properties文件 118 JavaBean與DAO Bean的使用 119 JavaBean與DAO 任務5 分層架構的帶數(shù)據(jù)庫的登錄程序構建User類構建UserDAO類 在該類中構造isCheck Useruser 方法在Servlet中接收登錄界面提交的用戶名和密碼 構造User對象 構造UserDAO對象 調(diào)用isCheck方法 120 JavaBean與DAO 完成登錄工作的設計類 121 JavaBean與DAO 成功登錄的順序圖 122 JavaBean與DAO login jsp 123 JavaBean與DAO UserServlet類 UserManager doPost方法登錄部分關鍵代碼 124 JavaBean與DAO UserBiz類 isChecked 方法 125 JavaBean與DAO UserDAO類 isChecked 方法 126 JavaBean與DAO dao包和pojo包 127 7 JSP原理及應用 128 JSP JavaServerPages 1 基于JavaServlet技術 2 頁面包括靜態(tài)HTMLJSP標記腳本 129 JSP特點內(nèi)容的生成和顯示分離 JavaBeans 生成可重用的組件 JavaBeans 采用標記簡化頁面開發(fā)能提供所有Servlets功能健壯的存儲管理和安全性一次編寫 隨處運行JSP的平臺適應性更廣利用JDBC連接數(shù)據(jù)庫 130 JSP實現(xiàn)原理客戶對JSP的請求直接發(fā)送給JSP引擎JSP引擎接受到請求后 按照JSP源代碼所規(guī)定的內(nèi)容生成給客戶端的響應把響應傳遞給客戶端的瀏覽器 131 JSP與ServletJSP文檔在后臺會自動轉換為ServletJSP更簡捷 適合于生成大量的HTML 但與HTML標記混在一起Servlet適合于生成大量的二進制數(shù)據(jù) 訪問數(shù)據(jù)庫等工作 用它生成大量的html會很麻煩JSP與Servlet配合使用 132 jsp 133 JSP程序的基本結構 JSP頁面 Elements JSPComments TemplateData Directives Actions Scripting delarations Scriptlets expressions 134 JSPComments 注釋 第一種在結果html文檔中顯示第二種不在結果html文檔中顯示 TemplateData是不經(jīng)過轉換的文本一般是標準的HTML元素 135 Declarations 聲明 在JSP程序中聲明方法和全局變量形式可以一次聲明多個變量和方法以分號結尾 136 Scriplet 小腳本 包含一個有效的程序段Java代碼段例如 137 Expression 表達式 表示一個值在頁面動態(tài)生成時以字符串的形式插入到頁面中的相應位置 形式例如 138 Directives 指令 影響由JSP頁產(chǎn)生的Servlet的總體結構語法指令page指令屬性 import contentType language pageEncoding include指令 在轉換為servlet前插入 屬性 file作用 把其他的文件加入到當前的JSP文件中 例子 test jsp test include jsp 139 Actions 動作 jsp include 在頁面被請求時包含進一個文件 jsp forward 讓請求者可以向前到一個新的頁面 jsp useBean 找到或?qū)嵗粋€JavaBean jsp setProperty 設置一個JavaBean屬性 jsp getProperty 將JavaBean的屬性插入到輸出 jsp plugin 執(zhí)行一個Applet或Bean用OBJECT或EMBED標簽為Javaplugins生成特定的瀏覽器的代碼 140 include指令與include動作區(qū)別include指令 當被包含的文件內(nèi)容發(fā)生變化時 服務器可能監(jiān)測不到 此時服務器不會對它進行重新轉換和編譯 Include動作 在客戶端對JSP文件發(fā)出請求的時候?qū)募妮敵鰞?nèi)容包含進來 它總是會檢查被包含文件的變化 141 Haveaniceday Havealousyday 經(jīng)過轉譯后將會是如下形式 if Math random niceday else out println Havealousyday JSP被編譯為Servlet 142 JSP內(nèi)建對象requestresponseoutsessionpageContextapplicationconfigpage 143 request獲取請求的頭部信息getHeader Stringname 獲取客戶端傳送的數(shù)據(jù)getParameter Stringname 獲取客戶端host IP獲取服務器名字 144 response用于向客戶端發(fā)送數(shù)據(jù)addCookie Cookiecook setHeader Stringname Stringvalue sendRedirect out用來向客戶端輸出數(shù)據(jù)out print out println 145 session用來保存每一個用戶信息getAttribute Stringname setAttribute Stringname java lang Objectvalue removeAttribute Stringname application用來在多個程序中保存信息每個用戶都共用同一個application對象getAttribute Stringname setAttribute Stringname java lang Objectvalue 146 pageContext管理JSP中已經(jīng)命名對象的訪問config用來配置處理JSP程序的句柄Page 147 實例構造管理端界面利用include動作包含界面的上面頭部和下面尾部 148 構造后臺管理界面 admin jsp 頭部Top jsp 尾部foot jsp 導航條navibar jsp 149 admin jsp 150 top jspfoot jsp 151 navibar jsp 152 實例構造修改用戶密碼功能 153 admin jsp表現(xiàn) 154 modifyPass jsp表現(xiàn) 155 modifyPass jsp代碼 提交給對應的servlet并標明要做什么 利用session對象取出user對象中的name屬性 156 result jsp 用于顯示反饋結果 由Servlet中設置msg的值 157 UserServlet UserManager doPost 方法 158 UserBiz類 updatePassWord 方法 159 UserDAO類 updatePassWord 方法 160 任務6 1 利用JSP構造后臺管理頁面 利用jsp include包括頂部頁面top jsp navibar jsp 底部頁面foot jsp 2 利用Servlet JSP JavaBean實現(xiàn)多層結構下的 添加分類 功能 161 8 分層架構與MVC 162 Model1 163 Model2 MVC 模型 封裝了應用程序的數(shù)據(jù)結構和事務邏輯視圖 模型的外在表現(xiàn)控制器 對用戶的輸入進行相應處理并將模型和視圖聯(lián)系在一起 164 分層 165 修改密碼 ModifyPass jsp Form 提交給相應的Servlet View 166 在UserServlet中撰寫相應的處理代碼 control 167 添加分類 Class add jsp Form View 提交給相應的Servlet 168 在ClassServlet中撰寫相應的處理代碼 control 169 9 EL與JSTL 170 9 EL與JSTL EL ExpressionLanguage JSP2 0后增加的重要功能 要求Tomcat5 0以上訪問存儲對象對JavaBean簡化訪問對集合的簡化訪問簡單運算符條件輸出 varName 171 9 EL與JSTL varName 以此從PageContext HttpServletRequest HttpSession ServletContext中查找名字為varName的屬性所對應的值 firstVar secondVar thirdVar EL作用域 172 9 EL與JSTL EL訪問JavaBean beanName beanVar 例如 在Servlet中request setAttribute bookBean book 在jsp中 bookBean publisher publisherName 173 9 EL與JSTL EL訪問集合 collection index 例如 students 0 name 其中studnets是student對象的數(shù)組EL運算略 174 9 EL與JSTL JSTL JavaServerPagesStandardTagLibrary JSP標準標簽庫提供Web開發(fā)人員通用的標簽庫函數(shù) 用于取代在JSP頁面上直接寫Java代碼的做法標簽庫c 核心標簽庫fmt I18N標簽庫sql SQL標簽庫xml XML標簽庫fn 函數(shù)標簽庫 175 9 EL與JSTL 在JSP中顯示數(shù)據(jù)在JSP中定義變量并賦值用于移除指定范圍內(nèi)的某個變量用于捕獲被嵌套在其中的操作的異常對象 176 9 EL與JSTL 完成if功能3 var result 完成ifelse功能 177 9 EL與JSTL 標簽其他標簽庫略 178 9 EL與JSTL 實例 實例利用EL和JSTL構建表格顯示所有分類Jsp頁面 179 9 EL與JSTL 實例 pojo包的PhotoClass類 180 9 EL與JSTL 實例 PhotoClassDAO 181 9 EL與JSTL 實例 PhotoClassBiz 182 9 EL與JSTL 實例 PhotoClassServlet ClassManager 傳遞bean集合給 183 9 EL與JSTL 任務 任務7實現(xiàn)Web電子相冊 圖片分類管理 功能首先列出分類信息可以進行刪除和修改 184 9 EL與JSTL 任務 185 10 實用技術 186 10 實用技術 文件上傳 使用jspsmart組件完成上傳工作將對應的jar文件放入web inf lib目錄下步驟編寫上傳界面編寫后臺處理程序 187 10 實用技術 文件上傳 圖片上傳簡單例子通過jspSmartUpload上傳圖片 188 10 實用技術 文件上傳 上傳處理文件 189 任務8 1 實現(xiàn)Web電子相冊中的 圖片上傳 功能 2 實現(xiàn)Web電子相冊中的 圖片管理 功能 190 10 實用技術 文件上傳1 先上傳再增加圖片 圖片添加界面photo add jsp 圖片上傳界面upload jsp upimg jsp 191 10 實用技術 文件上傳1 將圖片地址傳回圖片添加界面 192 10 實用技術 文件上傳1 圖片上傳界面upload jsp中的主要代碼 193 10 實用技術 文件上傳1 后臺處理程序upimg jsp中的主要代碼 使用jspSmartUpload 194 10 實用技術 文件上傳2 上傳與增加圖片信息一起進行 使用commons fileupload類 選擇文件 文件并未上傳 圖片信息與上傳一同進行 圖片添加界面photo add1 jsp 195 10 實用技術 文件上傳2 上傳與增加圖片信息一起進行 需要兩個jar包支持 196 10 實用技術 文件上傳2 上傳與增加圖片信息一起進行 PhotoServelt PhotoManager 197 10 實用技術 文件上傳2 上傳與增加圖片信息一起進行 PhotoServelt PhotoManager 198 任務9圖片管理首先顯示圖片分類 相冊 然后選擇一個分類的圖片進行管理可以對圖片進行刪除和描述信息的編輯 199 10 實用技術 中文亂碼問題 字符編碼ASCII128個字符 面向使用英語的國家ISO 8859解決歐洲個國家的字符編碼問題GB2312 GBK GB18030漢字編碼Unicode使用雙字節(jié)表達每個字符的編碼 統(tǒng)一全球編碼UTF 8變長的編碼 對不同的Unicode可能采用不同的長度 從而減少存儲或傳輸?shù)臄?shù)據(jù)量 200 10 實用技術 中文亂碼問題 亂碼原因在JSP中pageEncoding是指JSP文件自身的編碼格式contentType的charset是指服務器發(fā)送給客戶端的內(nèi)容編碼如果pageEncoding存在 那么JSP頁面的字符編碼由pageEncoding決定 否則由contentType的charset決定 如果都不存在 則默認為ISO 8859 1在Web應用中 瀏覽器 Web服務器 Web應用程序和數(shù)據(jù)庫等各個部分都有可能使用不同的字符集 字符在不同字符集之間進行轉換時 就可能出現(xiàn)亂碼問題 201 10 實用技術 中文亂碼問題 解決方案使用過濾器解決比較方便過濾器當客戶請求某個html JSP Servlet之前 過濾器先 過濾 或者當服務器對客戶端進行響應之前 過濾器先 過濾 從一個頁面跳轉 forward 到其他頁面的時候在包含 include 其他內(nèi)容時在發(fā)生錯誤時作用對HttpServletRequest進行預處理 對HttpServletResponse進行后處理 202 10 實用技術 中文亂碼問題 創(chuàng)建一個過濾器的兩個步驟 創(chuàng)建Filter處理類在Web xml文件中配置Filter過濾器必須實現(xiàn)javax servlet Filter接口 接口3方法voidinit FilterConfigconfig 初始化voiddestroy 銷毀前voiddoFilter ServletRequestRequest ServletResponseresponse FilterChainchain 實現(xiàn)過濾功能 203 10 實用技術 中文亂碼問題 web xml 204 10 實用技術 登錄檢測 登錄檢測防止用戶在不登錄的情況下 直接進入管理頁面使用過濾器實現(xiàn) 205 10 實用技術 登錄檢測 web xml 206 10 實用技術 分頁顯示 分頁顯示的策略基于緩存 一次性地將所有的記錄取出來放到session中 優(yōu)點 除第一頁外 后續(xù)的頁面都能夠很快的訪問到所需數(shù)據(jù)缺點 第一頁顯示可能很慢 如果用戶多時 內(nèi)存開銷大基于查詢 根據(jù)需要從數(shù)據(jù)中取數(shù)據(jù)優(yōu)點 第一個頁面和后續(xù)頁面訪問時間差不多缺點 每次都要從數(shù)據(jù)庫中讀取數(shù)據(jù) 頻繁地訪問數(shù)據(jù)庫 207 10 實用技術 分頁顯示 步驟 1 構建Pager類 2 修改dao包中的類 讓相關方法返回Pager對象 3 修改biz包中的類 讓相關方法返回Pager對象 4 修改servlet類 將Pager類放入reqeust變量中 5 修改JSP頁面 208 10 實用技術 分頁顯示 Pager類 部分 209 10 實用技術 分頁顯示 PhotoClassDAO 210 10 實用技術 分頁顯示 PhotoClassBiz 211 10 實用技術 分頁顯示 PhotoClassServlet ClassManager 212 10 實用技術 分頁顯示 class manage jsp 213 10 實用技術 任務 任務10Web電子相冊中前臺圖片瀏覽Web電子相冊中后臺評論管理實現(xiàn)Web電子相冊中相應功能 例如圖片瀏覽 分類管理 評論管理等 的分頁顯示 選作任務 214 10 實用技術 任務 Photo類 215 10 實用技術 任務 PhotoDAO 216 10 實用技術 任務 PhotoBiz 217 10 實用技術 任務 PhotoServlet PhotoManager 218 10 實用技術 任務 main jsp主要代碼 219 10 實用技術 任務 index jsp 220 11 Ajax技術 221 11 Ajax簡介 AjaxAsynchronousJavascriptandXML2005 2 JesseJamesGarrett ANewApproachtoWebApplications 綜合運用JavaScript CSS DOM XMLHttpRequest XML等技術改善B S結構客戶端用戶體驗效果的方法稱為Ajax傳統(tǒng)Web應用的問題 傳統(tǒng)的Web應用允許用戶端填寫表單 form 當提交表單時就向Web服務器發(fā)送一個請求 服務器接收并處理傳來的表單 然后送回一個新的網(wǎng)頁 這個做法浪費了許多帶寬 因為在前后兩個頁面中的大部分HTML代碼往往是相同的 由于每次應用的交互都需要向服務器發(fā)送請求 應用的響應時間就依賴于服務器的響應時間 這導致了用戶界面的響應比本地應用慢得多 222 11 Ajax簡介 223 11 Ajax簡介 Ajax的核心是JavaScript對象XMLHttpRequest 該對象在InternetExplorer5中首次引入 它是一種支持異步請求的技術 簡而言之 XMLHttpRequest使您可以使用JavaScript向服務器提出請求并處理響應 而不阻塞用戶 224 11 Ajax簡介 XMLHttpRequestXMLHttpRequest對象在大部分瀏覽器上已經(jīng)實現(xiàn)而且擁有一個簡單的接口允許數(shù)據(jù)從客戶端傳遞到服務端 但并不會打斷用戶當前的操作 使用XMLHttpRequest傳送的數(shù)據(jù)可以是任何格式 雖然從名字上建議是XML格式的數(shù)據(jù) open 初始化HTTP請求參數(shù) 例如URL和HTTP方法 但是并不發(fā)送請求 send 發(fā)送HTTP請求 使用傳遞給open 方法的參數(shù) 以及傳遞給該方法的可選請求體 onreadystatechange事件用來定義XMLHttpRequest對象狀態(tài)改編事件發(fā)生時的監(jiān)聽器 它對應一個JavaScript函數(shù) 225 11 Ajax簡介 226 11 Ajax簡介 227 11 Ajax簡介 示例檢測用戶名是否存在 228 11 Ajax簡介 Reg html 229 11 Ajax簡介 Reg html 設置回調(diào)函數(shù) 230 11 Ajax簡介 CheckUserName jsp 231 11 Ajax簡介 調(diào)用servlet的版本 232 11 Ajax簡介 UserServlet UserManager 233 11 Ajax簡介 常用Ajax框架PrototypeDWRjQuery 234 任務11為Web電子相冊中 圖片分類信息 功能中添加查重功能可以不提交表單提示該分類是否已經(jīng)存在 選作內(nèi)容 235 任務12完成Web電子相冊的所有業(yè)務功能測試程序調(diào)試程序 236 實訓報告 實訓目的實訓的任務和要求實訓過程與內(nèi)容項目的需求分析項目的設計項目實現(xiàn)中的關鍵問題項目實現(xiàn)的效果實訓心得體會參考文獻 237 4 實訓報告 形式打印在A4紙上 8000字以上圖文并茂要當做鍛煉 自己完成提交時間2012年1月15日下午之前提交報告 紙質(zhì) 電子版 提交代碼 電子- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- JavaWeb實訓 JavaWeb 實訓 PPT 課件
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.820124.com/p-6578719.html